Focus: Kernel Internals
Expecting a thick magazine called Linux Journal to be all about Linux is like expecting a thick magazine called Martha Stewart Living to be all about Martha Stewart. No, wait, bad example. But you get the idea. Linux, which is a kernel written to comply with the POSIX standard, is a commodity piece of software. (By the way, LJ is two-thirds the size of Martha Stewart Living with one-tenth the staff. We don't have to cook a bunch of new recipes, but on the other hand, Martha doesn't have to lay out %{$_} Perl code.)
So, since Linux itself just sits there and works—how boring—we generally fill out the magazine with articles on web servers, development tools and other fun stuff that runs on top of Linux—and, not surprisingly, on other commodity POSIX-compliant kernels too. We could cut out “Kernel Korner” and a few other things here and there, and sell the same content as “POSIX Journal”.
But just because something is a commodity doesn't mean that it's not newsworthy. After all, pork bellies are a commodity, and they make the Farm Report every day. So it's Special Kernel Issue time.
Clay Claiborne, a Linux consultant in Los Angeles, had some Digital UNIX (or whatever they're calling it these days) drives that a client wanted Linux to read. It wasn't as simple as just compiling in support for UFS, but thanks to freely available code and documentation, and the developers who know how to apply it, it wasn't impossible either. His step-by-step journey into the process of adding support for a new/old file system is on page 94. Even if you just use ext2fs, it's a great read to help you understand the free software troubleshooting process.
You might have heard that the SuSE distribution now includes Linux with ReiserFS support. We like ReiserFS so far because its journaling feature means that you can just turn your Linux box off and reboot without a time-consuming fsck. But what really makes ReiserFS different from old-school UNIX file systems and from Linux's standard ext2fs? Chris Mason explains b-trees and just what happens when ReiserFS saves your data from an untimely crash, on page 118.
Where the Internet is concerned, things used to be pretty clear—routers just do routing, and hosts just originate and accept connections. But with the rise of load balancers, firewalls (whatever those are; firewall-mongers use the word to mean whatever they're selling) and network address translation, the world of machines through which Internet traffic passes is becoming a strange bestiary indeed.
Nenad Corbic and David Mandelstam write about WANPIPE, the Linux driver software for sangoma PCI WAN adapters with which you can create your own strange beast of an Internet appliance—a frame-relay box for the remote office, a box that connects straight to the T1 line without a CSU/DSU, whatever you need. There are a lot of security, performance, and other problems to be solved on the Internet and WANPIPE (page 100) is part of your toolkit for attacking them.
What's the first kernel to offer a standard API for voice over IP? Linux, of course. Greg Herlein explains what's behind /dev/phoneN and how software like ohphone can use it to make phone calls anywhere at no charge—except of course your local Internet connection—on page 108. And yes, you can plug a real phone into it.
Finally, what do all these kernel projects have in common? Freedom, of course. Centrally planned proprietary software, our society's biggest example of Stalinism in action, is being replaced with a free-market system. This is good.
Every so often, though, people try to sell proprietary components for a working free system, claiming some performance advantage. But this impolite and destructive practice is worse than just not being “down with the revolution”. If we replace bureaucratic Big Software with a feudal system in which local software warlords each try to gain some advantage over the others, we'll find it difficult or impossible to do the kinds of projects covered in this issue.
I'm not talking philosophy or hypothetical here—do a web search for the name of any non-GPL Linux kernel module and get a bushel of archived list messages asking for help when the proprietary module throws some other module's glasses on the ground, stomps on them, then tells it to get out of town and sets the kernel on fire.
We're in the early stages of replacing top-down Stalinist software with a functioning free society, and thanks to politeness and common sense we're doing a pretty good job of avoiding the detour through feudalism. In the long run, freedom works both morally and economically. This issue's kernel development success stories show just how useful a commodity our favorite kernel can be.
—Don Marti, Technical Editor