The release of the 2.4 kernel marked Linux as an operating system ready for the enterprise. Three years and the next major revision later, the 2.6 kernel strengthens and expands on the merits of its predecessor with deep subsystem overhauls that yield improved scalability, performance and responsiveness across the full range of systems on which Linux runs.
The 2.6 kernel became available in December and can be downloaded for free at kernel.org. Most users, however, will want to hold off on running it until their chosen Linux distributor comes out with a release that includes the new kernel.
Fedora Core, Red Hat Inc.s community-supported Linux distribution, is slated to be among the first major Linux distributions to ship with the 2.6 kernel. Fedora Core 2 is scheduled for release April 19, and the first test release of Fedora Core 2 is currently available for download at fedora.redhat.com.
A similar community-supported release of MandrakeSoft SAs Mandrake Linux 10.0, also based on the 2.6 kernel, is set for release this month. An official version is expected to follow in April or May.
As for 2.6-based enterprise releases, Novell Inc.s SuSE Linux will likely be first with its SuSE Linux Enterprise Server 9, set to ship in the late spring or early summer, and Red Hat has announced that Red Hat Enterprise Linux 4 will include the new kernel and will ship in the fall.
Under the Hood
Under the Hood
The Linux 2.6 kernel includes a new, anticipatory scheduler for I/O operations. The scheduler boosts system responsiveness in the presence of streaming write operations by pausing briefly after read operations before proceeding to write operations (in anticipation of further reads). In eWEEK Labs tests, bringing up a new terminal window while a system was writing heavily was significantly faster with the anticipatory scheduler than with the default I/O scheduler in the 2.4 kernel.
The new I/O scheduler will pay dividends to desktop users through improved responsiveness, as well as through various server tasks, such as Web servers carrying out large numbers of read operations.
In some situations, such as with certain database workloads, the new anticipatory behavior may yield slightly slower performance. In such cases, administrators may opt to use a separate I/O scheduler within the 2.6 kernel, called the deadline scheduler, by passing the command “elevator=deadline” at boot.
WEB RESOURCES
|
The 2.6 kernel boasts an improved threading model, which includes support for NPTL (Native POSIX Thread Library). NPTL delivers performance gains for heavily threaded applications, including Java virtual machines. NPTL has been known to break compatibility with some applications. However, NPTLs compatibility problems had been mitigated at the time Red Hat began shipping NPTL in Red Hat Linux 9 last spring.
Linux 2.6 includes a new process scheduler, which is the part of the kernel that divides the processors time among running programs. The new scheduler, called the O(1) scheduler, increases scalability on multiprocessor systems by improving the algorithm with which the kernel conducts its process scheduling (and does so without reducing performance on single-processor systems).
Certain Linux distributions run the XFree86 graphics server with a boosted priority level, which, combined with the new process scheduler, can result in jerkiness and otherwise poor user-interface performance. Users can overcome this problem by returning the X server priority to 0, a configuration that Linux distributors will likely perform by default when they ship their distributions.
Linux 2.6 comes with new support for NUMA (Non-Uniform Memory Access), an architecture on which massive multiprocessor systems, such as Silicon Graphics Inc.s Altix 3000, are built. NUMA systems address memory bus bottlenecks with multiple memory buses. The result: For a given processor, some memory is closer—and faster to access—than other memory. In 2.6, Linux is aware of these relationships, and the kernel can optimize use of such a systems resources.
NUMA support in Linux gives companies running the operating system the option of moving up to higher-capacity hardware without requiring them to add a new platform into their administration mix.
The virtual memory subsystem in Linux 2.6 has also been reworked to improve scalability. Some of the changes required to support NUMA, for example, come from the new Linux virtual memory system.
Also new in 2.6 is support for symmetric multithreading. Symmetric multithreading is known in Intel Corp.s processors as Hyper-Threading, which enables a single Pentium 4 or Xeon to appear as two processors. The scalability and multithreading improvements in 2.6 that boost performance on symmetric multiprocessing systems will also benefit systems with symmetric multithreading chips.
At this point, however, the 2.6 kernel cant tell the difference between separate virtual and physical processors, an awareness that would provide better load balancing on systems with symmetric multithreading chips. It would be better, for example, if the kernel spread a load between two physically separate processors instead of between two virtual processors on the same chip. Work has been done to address this issue, but its not yet part of the official kernel.
In any case, Intel is building Hyper-Threading into more of its processors, and better support for this capability in Linux will help companies get the most out of their hardware. Similar technology, in which single chips function as multiple virtual processors, is appearing in other processors, such as multicore chips from Sun Microsystems Inc., so symmetric multithreading support will have applicability beyond Intels products.
Next page: Pre-emptive measures.
Pre
-Emptive Measures”>
Pre-Emptive Measures
Another major change in Linux 2.6 is that the kernel is now pre-emptible, which means that tasks running in the kernel can be interrupted by other tasks. This capability benefits embedded implementations of Linux because it enables the kernel to behave more like a real-time operating system. This modification also benefits desktop Linux users, as it can make the system feel more responsive to mouse clicks and other user actions.
Linux 2.6 includes support for access control lists through extended file system attributes, a feature that previously required applying patches to the kernel. There are plenty of potentially interesting uses for these extended attributes within Linux, but until applications begin taking specific advantage of them, this support will most directly benefit companies interoperating through Samba with Microsoft Corp.s Windows systems with NTFS.
Linux now includes JFS (journaling file system) and XFS (extended file system) support, and the ext3 file system that comes with 2.6 has indexed directory support that can deliver considerable speed gains for directories with large numbers of files. The 2.6 kernel also includes an improved NTFS driver, although write support for NTFS is still considered experimental.
WHEN TO EXPECT 2.6 IN YOUR DISTRO While its possible to upgrade any Linux system to the latest kernel release, most enterprise customers will want to wait until their Linux distributions are updated with the 2.6 kernel. Following is the schedule for the major distros:
|
The newest version of Linux sees the merge of the uClinux project into the kernel. This code targets embedded devices that lack a memory management unit, bringing support for processors such as Hitachi Ltd.s H8/300, NEC Corp.s v850 and Motorola Inc.s m68k into the mainstream development effort.
In addition to the architectures supported by the uClinux merge, the 2.6 kernel has added support for Advanced Micro Devices Inc.s x86-64 and IBMs ppc64 architectures, as well as for User-Mode Linux. The latter allows users to run Linux in a virtual machine within a Linux system, which can be useful for kernel testing and for segregating server tasks into their own virtual machines for security reasons.
Linux 2.6 can handle a variety of new hardware, including serial ATA drives and USB (Universal Serial Bus) 2.0 devices. Linux 2.6 also ships with support for Bluetooth and has improved support for IrDA.
Linux 2.6 sports a new sound system, ALSA (Advanced Linux Sound Architecture), which widens sound device support and improves performance compared with the previous sound system. ALSA has been a popular add-on for Linux for some time now, but one that required kernel patching.
Along similar lines, 2.6 includes Video for Linux 2, a second-generation video capture and overlay API within Linux that comes into play with devices such as video capture cards.
Linux 2.6s boosted support for peripheral hardware and multimedia devices should be of particular benefit for desktop Linux users.
Also new in Linux 2.6 is a cleaned-up kernel configuration and compilation process, which includes GTK (The GIMP Toolkit) and the Qt-based version of the graphical kernel configuration utility. Both make it much easier to select what to compile into the kernel.
Senior Analyst Jason Brooks can be reached at jason_brooks@ziffdavis.com.