The state of the open source nation
It’s now five years since this column changed its title to Open Source, before which it had been restricted to Unix server software. We changed it because so much of the open-source Unix software we covered was also available for Windows and the Mac, and a broader remit seemed more sensible.
Over those five years, open-source software has gone from geeky to mainstream, so that now almost every device from the desktop computer to the server to the mobile phone runs some open-source components. Where we once discussed Linux kernels and Apache web servers, we now examine applications.
Open-source software has gone from geeky to mainstream
However, most of those original open-source system software projects continue, and it’s worth catching up to see where they’re heading.
Linux epitomises open-source philosophy, with a devoted following that provides strong competition to commercial operating systems. It’s actually the kernel of several successful operating systems, providing all the boring services such as device and memory management, while the UI parts with which people interact are packaged into named operating systems such as Red Hat, SUSE, Ubuntu and the rest.
The Linux kernel is truly open source in that it isn’t owned by any single company and has a large community of users who contribute code changes, ranging from lone developers through university research departments to huge organisations such as Google. Every level of contribution is a gain for the community.
Over these five years, the Linux kernel has had to adapt itself to both an increase and a decrease in machine power. Desktop machines are more powerful than ever, with multiple, multicore CPUs, but at the other end netbooks employ tiny, low-power CPUs similar to those used in mobile phones.
A more complex architecture has been developed where the kernel distinguishes between “sockets” and “cores” to manage collections of processes and threads efficiently, and a lot of recent Linux kernel effort went into schedulers (the Completely Fair Scheduler) and low-level memory page management. The kernel has much the same problem it did five years ago; namely, supply of device drivers (particularly for wireless devices), although more of the large manufacturers now support Linux in devices aimed at the server market.
The next big change in Linux will be to its file systems. We’ve heaped much praise on Sun’s ZFS file system in these pages, but while it’s had some success it hasn’t really spread beyond Sun’s own Solaris operating system. It made a brief appearance in Apple’s OS X but now it seems to have disappeared again, probably due to a legal dispute.
However, Linux is on the way to acquiring a similar file system called Btrfs (pronounced “Butter F S” or “B-tree F S”). In a typical chain of coincidences, Btrfs was originally contributed by Oracle, which now owns Sun and hence ZFS.
Btrfs has many of the features of ZFS, and in particular removes the layering found in other file systems, making it far easier to manage. Its “copy on write” architecture means that file system snapshots are in effect free, with a very low overheard, while its underlying disk format employs checksums to ensure all data is stored consistently, removing the need to check file integrity after a crash that other file systems suffer. Btrfs is already available in some Linux distros, and it works.