UpFront

diff -u: What's New in Kernel Development

Zack Brown

Issue #149, September 2006

“The kernel has one mission in life, and one mission only. Guess what that is? It's to be the buffer between user space and shared resources. That's it. NOTHING ELSE MATTERS.”—Linus Torvalds

Greg Kroah-Hartman has produced a shiny new device driver developer's kit, which he hopes will rival those available for other operating systems. Distributed as a GPLed CD image, the kit contains a variety of source code and documentation, including a full copy of the third edition of Linux Device Drivers. Future versions will add a searchable index of all included docs. There also is talk of incorporating the kernel news sections from lwn.net into the mix. A lot of kernel folks are interested in seeing this kit grow into something very powerful, and many of them have offered ideas and suggestions. Undoubtedly, this project will accrue large numbers of contributors and fill what has been a very large gap.

Chris Wedgwood ran into a problem when attempting to unmark a few features as “experimental” recently. The whole point of tagging a feature experimental is, on the one hand, to protect users from inadvertently using dangerous, unfinished features, and on the other hand, it is to allow them to experiment with those features if they so choose. But with no clear definition of when something should or should not be considered experimental, kernel folks have been marking their projects as experimental under all kinds of different circumstances. The result of this was that so much completely usable code had been marked experimental, many users just had to enable experimental by default in all their builds, thus defeating the whole point of the feature. Typically what would happen now is that folks would argue over which definition of experimental would be most appropriate as the official definition. After a lengthy, bitter debate, Linus Torvalds would come up with something that puts a whole different face on the problem, and this would be refined in practice over months and years. Will that happen in this case? Perhaps, but we just don't know.

Linux has apparently been out of compliance with POSIX hostname lengths, and Randy Dunlap sent in a patch to correct this by raising the hard-coded limit from 64 characters to 255, not counting the terminating null. Although Linus Torvalds always has insisted that POSIX should not be blindly complied with, and that Linux should first of all do the right thing regardless of official standards, it does seem as though the hostname issue was a genuine oversight, and Randy's patch will go into the 2.6.17 kernel.

The current limit of five nested symbolic links also is likely to be raised to nine for the 2.6.17 release. Alexander Viro had alerted folks back in February 2006 that he would do this, and he submitted a patch to accomplish it when the subject came up again more recently. Andrew Morton gave his reluctant approval to this, pointing out that this would not be a backward-compatible change. Any application extended to rely on having more than five nested links would be unable to run on older kernels with the smaller limit. Given that it really was high time the five-nest limit was raised, however, Andrew affirmed that 2.6.17 would be the right time to do it. And, as some folks pointed out during the discussion, distributions like Red Hat had raised the limit to nine some time ago on their own.

Jared Hulbert has been working on a filesystem targeted at embedded devices, specifically phones. AXFS is short for Advanced XIP Filesystem, and XIP is short for eXecute In Place. AXFS launches and runs programs directly from their non-volatile storage location, instead of first loading them into RAM. There are several benefits to this, and some developers, such as Mark Lord, already have expressed serious interest in using AXFS on real-live systems. One benefit of AXFS is that program initiation may be faster without the overhead of copying the program code to RAM. Another benefit derives from the fact that RAM-based systems typically store their programs compressed in Flash. On execution, the programs are uncompressed before being copied to RAM. With AXFS, programs would be stored uncompressed, requiring more Flash for storage, but would do away with RAM entirely, which could lower the overall cost of producing the device. AXFS is not yet ready for prime time, as Jared has been quick to point out. His main purpose in sharing his work so far has been to get opinions and guidance from the kernel folks.

Driving to Domination

Doc Searls

Issue #149, September 2006

Linux is a tortoise to the proprietary OS hares of the world. We all know how the story goes, and we've watched it play out in servers and embedded devices. (Still waiting on cell phones, but the turtle is gaining there too.)

Desktops and laptops are another matter. In no race has the going been slower for the tortoise, or its ultimate victory more inevitable, than in the race to make personal computers ready to drive any device that comes along. Lack of device drivers has always been blamed for slowing Linux's march to world domination in desktops and laptops.

But Linux will win that one too. Why? Because Linux likes its drivers in the kernel tree. There's no need to annoy the hacker and confuse the user with a CD full of binary code and promotional lockware. Instead, you write an LKM. Here's how the HOWTO (www.tldp.org/HOWTO/Module-HOWTO/x68.html) explains it:

Some people think of LKMs as outside of the kernel. They speak of LKMs communicating with the kernel. This is a mistake; LKMs (when loaded) are very much part of the kernel. The correct term for the part of the kernel that is bound into the image that you boot, i.e., all of the kernel except the LKMs, is “base kernel”; LKMs communicate with the base kernel....

There is a tendency to think of LKMs like user-space programs. They do share a lot of their properties, but LKMs definitely are not user-space programs. They are part of the kernel.

The HOWTO goes on to explain the many advantages of LKMs. Some big hardware vendors have discovered those advantages too. At the Linux Desktop Summit earlier this year, HP showed off how well its printers “just work” with a Linux box.

Ah, but what if you're not HP? What's to stop you from developing a device driver of your own?

Not much anymore. Greg Kroah-Hartman, Linux kernel subsystem maintainer, author of the LKM HOWTO and co-author of Linux Device Drivers, 3rd edition (O'Reilly, 2005), released a Device Driver Kit at FreedomHEC. “Have you felt left out of the crowd when looking at the 36 CD-ROM package of documentation and example source code that other operating systems provide for their developers? Well feel ashamed no longer!” he wrote. His version, in the Linux tradition, is comparatively minimal: one CD image with what Greg says is “everything that a Linux device driver author would need in order to create Linux drivers”. That includes a full copy of Greg's Linux Device Drivers book and pre-built copies of all in-kernel docbook documentation. “It even has a copy of the Linux source code that you can directly build external kernel modules against”, Greg adds. The kit is based on the 2.6.16.18 kernel release.

Anybody can download a copy for free here: www.kernel.org/pub/linux/kernel/people/gregkh/ddk.

Google Earth Now Supports Penguins

Doc Searls

Issue #149, September 2006

In his CES keynote in January 2006, Google cofounder Larry Page gave the consumer electronics industry some well-deserved heat for producing exclusive, incompatible and non-interoperable gear. Also, at the same show, Google promoted a package of software products that ran only on Windows. In the Q&A, I pointed out this irony and asked what Google would do to fix its own platform-exclusivity problems. Larry admitted that this was “a problem”, and said they were working on fixing it.

We reported on one result—Picasa for Linux—last month. This month, we can report that Google Earth is also available for Linux as well. The first iteration, just released at this writing (in May 2006), is Google Earth 4 beta, also released simultaneously on Windows XP and Mac OS X.

Unlike Picasa's Linux implementation, which was built with Wine, Google Earth for Linux is a native application, built with the Qt development kit. It requires 2.4 or later kernel versions, and it has been tested on modern versions of Ubuntu, SUSE, Fedora Core, Linspire, Gentoo, Debian and Red Hat. Download the free application at earth.google.com.

LJ Index, September 2006

Doc Searls

Issue #149, September 2006

1. Number of hours per day wasted on misuse of office technology by the average British worker: 1.17

2. Number of British office hours wasted per day by communications technologies not being used to good effect: 1.63

3. Number of British office worker minutes per day spent chasing responses to urgent e-mails: 42

4. Minimum Linux percentage of Dell enterprise hardware sales: 25

5. Minimum number of UNIX-to-Linux migrations managed by Dell Service: 500

6. Minimum percentage of Red Hat service calls to Dell handled without involving Red Hat: 90

7. Thousands of desktops migrated to Linux (SUSE, KDE) by the Regional Tax Office in Lower Saxony, Germany: 12

8. Peak number of desktops migrated per day by the Lower Saxony tax office: 300

9. Minimum number of desktops switched to Linux in Schwäbish Hall, Germany: 400

10. Number of desktops planned for switching to Linux in Mannheim, Germany: 3,700

11. Number of servers planned for switching to Linux in Mannheim: 110

12. Percentage of local German authorities using open-source software: 90

13. Millions of Internet users in India in 2005: 38.5 million

14. Thousands of Internet cafés in India: 105

15. Millions of US households promised connection by symmetrical fiber-based 45MB/s broadband by 2006: 86

16. Billions of dollars collected by carriers in higher phone rates and tax perks, toward promised fiber broadband deployment: 200

17. Number of operating local or regional fiber-to-the-home deployments in the US, as of April 2006: 936

18. Millions of US homes served by those deployments as of April 2006: 4

19. Number of non-RBOC (phone company) fiber-to-the-home deployments: 580

20. Number of RBOC (phone company) fiber-to-the-home deployments: 376

1–3: ntl Incorporated

4–6: CNet

7–12: ZDNet UK

13: Hindustan Times via NeonCarrot.co.uk

14: ConSu, Nov 2005, via NeonCarrot.co.uk

15, 16: TeleTruth.org

17–20: RVAllc.com and broadbandproperties.com

Park Freely

Doc Searls

Issue #149, September 2006

When GoDaddy.com moved 4.5 million domain names from Apache to Microsoft's IIS on Windows 2003 (and paid to by Microsoft, reports said), it caused a 5% sever share drop for Apache on the next month's Netcraft report. In response, Bruce Perens created OpenSourceParking.com, a no-cost parking lot for undeveloped domain names. In addition to helping restore Apache's pre-eminent position (which has been between 65% and 70% for a while now), it helps Linux as well by telling Netcraft that all the parked sites are running Apache on Linux. Also, revenue from advertising on the parked domains will fund efforts on behalf of open-source and free software.

To park your undeveloped domain there, set your domain servers to ns1.opensourceparking.com and ns2.opensourceparking.com. DNS operators can set their undeveloped domain names to be a CNAME of opensourceparking.com. Domain resellers not tempted by Microsoft candy can set parking site names to opensourceparking.com.

They Said It

The core fallacy of the idea of progress is the notion that it is possible to optimize everything at once.

Premature optimization is the root of all evil.

I don't know the key to success, but the key to failure is trying to please everybody.

In short order, the $100 Laptop will debut in the developing world—running on the aforementioned free operating system, Linux. WiMaxx networks will blanket this world, just as cell networks now blanket Kenya and other parts of Africa. (Almost everyone I run across in Kenya has a cell phone—including people who live in Kibera, the largest slum in East Africa.) The developing world will be connected at a level unimaginable two years ago. Millions of new voices will join the conversation. Issues and problems will be revealed, discussed and solved in those very conversations.

Governments will fall, corruption be revealed, new ideas explode and lives be radically changed as the Generous Web weaves its magic throughout the planet.

If you repeal the DMCA and the EUCD, makers of competing MP3 players will reverse-engineer FairPlay and add the capability to play iTunes songs. No further government oversight will be required. But if you pass additional regulations, we'll have to come back in another decade to figure out how to deal with the unintended consequences of those regulations.