Latest Linux Kernel Is A One-Stop Solution

March 29, 2004
Incorporating uCLinux plus high-end features expands the range of projects suitable for Linux.

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
Low End
  • Integration of MMU-less uCLinux support and added processor support
  • High End
  • NUMA (non-uniform memory access)
  • 64-bit processor support
  • 64-processor limit
  • Internal Enhancements
  • NPTL (Native POSIX Thread Library)
  • Maximum number of devices now 4095
  • Intel Hyperthreading support
  • Subarchitecture support
  • Headless version now a standard option
  • Binary modules cannot overload system function calls
  • User-mode virtualization for Linux-on-Linux execution environments
  • Security system modularized
  • Intel Physical Address Extension support pushes paged memory limit to 64 Gbytes on 32-bit x86 systems
  • File System Improvements
  • 16-Tbyte file system limit
  • Support for InterMezzo distributed file system
  • Support for XFS, CIFS, AFS, NFSv4
  • New NTFS driver with read/write support
  • Real-Time Improvements
  • Kernel can now be interrupted
  • Choice of schedulers
  • New schedulers: anticipatory I/O, deadline I/O
  • Peripherals
  • Unified Device Model
  • Improved wireless device support
  • Serial ATA device support
  • Advanced Linux Sound Architecture (ALSA)
  • Networking
  • Native IPsec support
  • AFS and NFSv4 support
  • Comments

    To join the conversation, and become an exclusive member of Electronic Design, create an account today!