UpFront

diff -u: What's New in Kernel Development

Zack Brown

Issue #188, December 2009

The big kernel lock (BKL) is being removed from ReiserFS. In fact, so much work is going into that removal, the Reiser people had to create a new git tree just to handle it. Frederic Weisbecker has been submitting patches from that tree to the main kernel repository. As it turns out, it's not necessary to do overly much testing of patches going into the kernel. It's expected that on their way through the linux-next tree and into the distributions, they'll receive a far wider range of testing than people could do on their own.

John Hawley has revised the code that produces all the content on the kernel.org Web site. He'd been hearing a lot of complaints that the -mm tree and the linux-next tree were not linked from the home page, while old 2.2 kernels still were being shown. John's changes have eliminated the links to 2.2 kernels and added a link to the linux-next tree. At Andrew Morton's urging, the -mm tree was left out, because his ultimate goal with that tree is to move all of its patches into linux-next and discontinue maintenance of -mm entirely. This change actually was more difficult than you might expect, because the code had all previously been written with a certain development cycle in mind, and that development cycle no longer existed. To fix the page, John essentially had to toss all the old code and rewrite it from scratch.

The ARM mailing lists no longer will be maintained by Russell King. He got fed up with people complaining about the requirement that no one could post who was not a member of a given list. One day, he just turned off all the lists, prompting harsh criticism from folks like David S. Miller, Alan Cox and Theodore Y. Tso. Pavel Machek created equivalent mailing lists on the vger server, and David Woodhouse set up his own set of mailing lists on infradead.org. The result was a lot of confusion, as users didn't know to which mailing lists to post. Ultimately, it'll all get sorted out, but Russell probably should have announced a search for a new mailing-list maintainer and had an orderly transfer of power. He possibly was just too stressed out by the conflict to do that.

Zachary Amsden made an attempt to write code supporting a userspace block device. He called it aBUSE, intending it to take its place next to FUSE (Filesystem in USErspace) and CUSE (Character device in USErspace). But, as Alan Cox pointed out, Zachary's code was a little too similar to NBD (Network Block Device). So even though aBUSE was a bit simpler than NBD, Zachary ultimately decided that the benefit wasn't worth creating something that was just so similar. But, he left the aBUSE patches in the e-mail archive for people to pick up if they are interested in it in the future.

Jonathan Cameron is pushing to get IIO (industrial input/output) included in the official sources. IIO is a subsystem for controlling hardware sensors like gyroscopes and light sensors. It looks like Greg Kroah-Hartman is letting the code go into -staging in the main tree, but he wants to see a detailed to-do list, explaining all the steps to get from -staging to the main kernel.

DRM-Free MP3s on Linux, Sweet!

Shawn Powers

Issue #188, December 2009

iTunes is touting its DRM-free music as revolutionary and bold. Although I applaud Apple for offering music that isn't crippled, there still is the problem of actually purchasing the songs. Sure Windows and Macintosh users are able to enjoy the “luxury” of buying music from the iTunes Store, but those of us running Linux can only watch from the sidelines.

Thankfully, Amazon has been selling DRM-free MP3 files for quite some time in its digital store. The songs are available for download using a standard Web browser, and because they're MP3 files, they're playable anywhere. Fortunately, we're even able to buy full albums, thanks to Amazon offering its download software for Windows, Macintosh and Linux! Whether you prefer to buy one song at a time or collect the whole set and buy full albums, Amazon's native Linux downloader can help you spend money. Now, if only Amazon would remove the DRM from Kindle books.

Way to go Amazon! A native Linux client for downloading albums.

Real Work on Virtual Terminals

Joey Bernard

Issue #188, December 2009

Screen is very good at multiplexing a terminal and running several login sessions over a single terminal connection. If you are SSHing into a server, screen is your best choice, allowing you to run multiple applications easily over that one connection. But, what if you are sitting down at your desktop or laptop? By using the tools mentioned here, you don't need to limit yourself to using a single virtual terminal anymore.

By default, most distributions are set up to activate six virtual terminals. This is done through the /etc/default/console-setup file. The number of virtual terminals initially activated can be set by editing the following line:

ACTIVE_CONSOLES="/dev/tty[1-6]"

Change the value to the number of virtual terminals you'd like to have on bootup. Your system may have the /etc/inittab file instead, which contains a series of commands to initialize those six terminals.

You can switch between the different virtual terminals with the Alt-F1 to Alt-F6 keys. Or, you simply can type chvt N on the command line to change to the virtual console number N.

You aren't limited to using only the virtual terminals created on bootup. You can use commands to create, destroy and interact with virtual terminals on the fly. First, you may need to know which terminal you are on. The fgconsole command gives you that information by printing out the number of the current console, and typing fgconsole --next-available will tell you the next available console number.

To open a new console, simply type the command open bash.

You can replace bash with any other command you want to execute on the newly opened virtual terminal. If you don't give a command to open, a bash shell is started. By default, your program will run, and the output will be written on the newly created terminal without actually switching there. If you want to switch to the new terminal automatically, simply add the command-line option -s to the open command.

You also may experience the error “Unable to open /dev/ttyN: Permission denied”, depending on your machine's level of security. If you get that error, you simply need to run the command with sudo appended to the front, so you have root privileges. But, then the newly created bash shell will be run as root. If you want to run the given command as yourself, use the command-line option -u. This tells open to figure out who the current user is and to run the command given to open as that user.

You can find out which users are logged in to various virtual terminals by using the command who. This tells the user names, their virtual terminal and when they logged in.

You can send a message to other users with the command write. If they are logged in to more than one virtual terminal, write defaults to sending the message to the virtual terminal with the lowest idle time. Or, you can send the message to a particular virtual terminal by executing write username ttyN.

Everything you write will be mirrored on the remote virtual terminal. When you are done, press Ctrl-d. If you don't want to receive messages from other users, you can turn off reception with mesg n. Doing so blocks all users (except the superuser) from being able to send you messages. When you are ready to receive messages again, simply type mesg y.

If you want to send a message to everyone at once, use the command wall.

Now, how do you work with your consoles? You can clear output two ways. The first, with the command clear, simply clears away the currently displayed output. But, you still can scroll backward and see the previously displayed output. If you also want to clear that history, use the command clear_console.

If you want to record what you are doing at the terminal, use the command script. All of the output printed on your terminal is copied into a file. The default filename is typescript, but you can change it by adding a filename to the end of the command. Once you execute the script command, everything else that is displayed on your terminal also will be copied out to this file. When you're done, simply press Ctrl-d. You now have a full transcript of what just appeared on your terminal.

When you are done with your virtual terminals, shut them down by using the command deallocvt. If you simply execute deallocvt, it will deallocate all of the unused virtual terminals. If you want to deallocate a particular virtual terminal, execute deallocate N, where N is the virtual terminal to deallocate. Now you are ready to play with the virtual terminals on your desktop.

Awesome Product, Painful Name

Shawn Powers

Issue #188, December 2009

ASUS recently announced what looks to be the nicest, most affordable eBook reader on the market today. With dual color screens, wireless network access and even a Webcam, the ASUS eBook reader looks particularly sexy with its sub-$200 price tag. I just hope it's not another product in a line of technology with a few too many Es in the name. The name eee-Book makes me throw up a little. If the price remains that low and the features that high, however, I might be willing to forgive a name that has become cliché.

The eee-Book concept photo looks a bit more like a sideways laptop than a book, but we love the dual touchscreens in full color.

Non-Linux FOSS

Mitch Frazier

Issue #188, December 2009

Explore2fs is a filesystem tool for Windows systems. It allows you to read and explore ext2/ext3 filesystems on your Windows computers. Explore2fs can come in quite handy when you need a file off an external USB drive that was created on a Linux system or if your Linux system has died and you need to move the drive to a Windows system to access it.

Explore2fs is written in Delphi Pascal, and it works on all modern versions of Windows and a few not-so-modern ones like Windows 95 and Windows 98. Explore2fs is a read-only tool. It does not allow you to modify your ext2/ext3 partitions; it allows only viewing and extracting data from them. For write capabilities, you probably should look at one of the available Installable File System (IFS) drivers that has ext2/ext3 support or possibly the “new” version of Explore2fs.

The new version of Explore2fs is still in beta, and it has a new name, Virtual Volumes. It really is only loosely a new version of Explore2fs and more of a rewrite and a rethink of Explore2fs. As mentioned, it's still in beta, so be careful using it.

Virtual Volumes aims to support read and write access to ext2/ext3 volumes as well as some LVM2 volumes. It also provides reading and writing of RAID volumes and VMware disks. In addition, it supports read and write access via SFTP and read access to ReiserFS partitions.

The Explore2fs .exe and source can be downloaded from www.chrysocome.net/explore2fs. The project, like many open-source projects, can be helped along by donations and by providing feedback to the author.

Explore2fs Interface (from www.chrysocome.net/explore2fs)

LJ Index, December 2009

1. Percent of users using Firefox (2.0, 3.0 and 3.5): 32

2. Percent of users using Internet Explorer (6.0, 7.0 and 8.0): 52

3. Percent of users using Chrome 2.0: 3

4. Percent of users using Windows: 86

5. Percent of users using Mac OS X: 7

6. Percent of users using Linux: 2

7. Percent of users using 1024x768 screen resolution: 31

8. Percent of users using 1280x800 screen resolution: 20

9. Percent of users using 1280x1024 screen resolution: 12

10. Percent of users using 1440x900 screen resolution: 9

11. Percent of users using 1680x1050 screen resolution: 6

12. Percent of users using 800x600 screen resolution: 5

13. Percent of users in the United States: 29

14. Percent of users in the United Kingdom: 5

15. Percent of users in Brazil: 4

16. Percent of users in India: 2

17. 1999 projection of 2001 Itanium sales ($billions/year): 35

18. 2009 Itanium sales ($billions/year): 2

19. US National Debt as of 09/08/09, 08:12:03am MST: $11,805,700,226,557.40

20. Change in the debt since last month's column: $209,747,044,879.10

1–16: W3Counter Global Web Stats

17, 18: Sun, IDC

19: www.brillig.com/debt_clock

20: Math

When Cacti Are Too Prickly

Shawn Powers

Issue #188, December 2009

I'm a clock watcher. I'm a tachometer hound. I'm a speedometer freak. And, as cool as that might seem, more than anything, I love graphs. One of the problems with setting up good SNMP graphs is that not only do they require a server on which to run, but also those servers often are difficult to configure. Programs like Cacti offer incredible features, but for home use, they're usually not worth the effort to configure.

That's where odmon.com comes in. Odmon offers a free service that queries your SNMP devices and hosts Cacti graphs for your local devices. Setup couldn't be easier, and odmon even offers “wizards” to help configure your home router. Part of the process is opening your firewall to its servers, but because you need to provide only read access, and you can limit access to its specific IP address, the security is tolerable—at least for me on my home system.

To set up your free odmon account, go to www.odmon.com. You can be a bandwidth watcher like me in no time!

Odmon offers a wide variety of graphs and the ability to publish them publicly or privately.

They Said It

People don't change their minds. They die, and are replaced by people with different opinions.

—Arturo Albergati

No man who ever held the office of President would congratulate a friend on obtaining it.

—John Adams

Success is getting what you want, happiness is wanting what you get.

—Charles Kettering

It is as ridiculous for a nation to say to its citizens, “You must consume less because we are short of money”, as it would be for an airline to say, “Our planes are flying, but we cannot take you because we are short of tickets.”

—Sheldon Emry

Community Events at LinuxJournal.com

Katherine Druckman

Issue #188, December 2009

The Linux Journal staff had a pretty great summer this year. Shawn Powers and I enjoyed both OSCON and the San Jose weather tremendously. Shawn and Jill Franklin had a great time at the inaugural LinuxCon in Portland, and you may have been lucky enough to catch Shawn's keynote at Ohio LinuxFest. Meanwhile, I cavorted around Paris with the coolest Web people in the world at DrupalCon Paris. We love going to events and meeting people, learning something new and maybe having a beer or five. Although we don't make it to all of them, we have a list of the best conferences and events in the open-source world listed at www.linuxjournal.com/events. If you want the heads-up on what's going on and where you should be, make sure you check that page! We hope to see you there, so be sure to say hi. If you'd like to know where we'll be in the future, follow us on Twitter or Identica at twitter.com/linuxjournal or identi.ca/linuxjournal, and get the inside scoop.