Linux 2.6 seriously impacts the system and embedded spaces with a wide range of improvements at both ends of the spectrum. It eliminates the need for various Linux configurations, providing an incredible upgrade path within a single architecture. As with most Linux kernel upgrades, its features existed for quite a while as patches to prior Linux systems. For example, the Native POSIX Thread Library (NPTL) has been available on 2.4 kernels from many sources.
At the low end, Linux 2.6 merges in uCLinux, the MMU-less Linux implementation. This is significant because it keeps MMU-less improvements in sync with the rest of the system. In the past, a new kernel was merged into the uCLinux project. Such a change makes one Linux suitable for systems from small microcontrollers through 64 64-bit processor systems.
NUMA (non-uniform memory access) support pops up at the high end. NUMA is becoming more common as systems move past the quad-processor SMP architectures. Large systems also will benefit from higher limits, allowing a 16-Tbyte file system or a maximum of 4095 devices.
Embedded developers will appreciate timing-related improvements. The kernel can now be interrupted. In fact, this has actually been a key selling point for many embedded Linux implementations for quite some time. Vendors of these products still have an edge, because the 2.6 kernel still isn't a hard real-time operating system. Instead, it's more suitable for many embedded applications in its standard form.
The kernel now supports different task schedulers. Two new schedulers were added, including an anticipatory I/O and a deadline I/O scheduler. High-end systems will benefit from the former, while the latter will be of interest to many embedded developers.
Add-on modules have more restrictions, preventing modules from hooking in or overloading system functions. This places a better wall between GNU GPL-based (General Public License) Linux and proprietary, non-GPL supplied modules.
The latest release has several peripheral-related enhancements, like a new unified device model that should simplify system configuration and device driver development. Wireless support is now under a single subsystem with a common application programming interface (API). Native support for Bluetooth was added, along with Serial ATA (SATA) storage device support. The Advanced Linux Sound Architecture (ALSA) is now integrated into the kernel, too.
On the network side, Linux continues to incorporate more file systems and protocols. Native IPsec support will be very interesting to developers who have had to rely on proprietary packages in the past. Support for the Andrew File System (AFS) and the latest Network File System (NFS) will help developers working on higher-end systems. Multicast support is improved, and Linux now handles the SSM Source Specific Multicast (SSM) protocols.
Programmers will appreciate some useful additions. The ability to run Linux as a Linux task lets developers test using a single system. It also can be used for security analysis and profiling. Another little tidbit is the kernel's ability to maintain configuration information about itself. This can come in handy when performing remote administration and updates.
Linux 2.6 includes a host of other improvements (see the table). Complete details, including source code, can be found on the Linux Kernel Archives Web site.
Linux Kernel Archiveswww.kernel.orgLINUX 2.6 ADDITIONS |
Low End |
High End |
Internal Enhancements |
File System Improvements |
Real-Time Improvements |
Peripherals |
Networking |