It was in January 2001, almost five years ago, when the previous Linux operating system kernel 2.4 was released. At that time, the version introduced kernel support for ISA Plug-and-Play, USB, and PC Card technologies. Since then, the Linux community has continued to evolve rapidly. However, in December last year, the new Linux kernel 2.6 was released — and it brings a wealth of impressive new features and improvements.
In this article, we’ll provide an overview of the most important new features in Linux 2.6. Additionally, we’ll share some useful links where you can find detailed information on how to upgrade your system from kernel 2.4 to 2.6.
The New Linux Kernel 2.6 Features
Listing every new feature in detail would require an article of more than 10,000 words; therefore, in this section, we’ll instead summarize the most significant enhancements and new capabilities.
Hyperthreading
One of the major hardware advancements supported by the Linux 2.6 kernel is hyperthreading. Specifically, this technology—available in modern Pentium 4 800 MHz processors—allows a single physical CPU to function as two logical processors. As a result, certain applications can already take advantage of this capability to deliver significantly improved performance.
Moreover, the 2.6 kernel’s enhanced support for hyperthreading ensures that the scheduler can accurately detect and optimize processor loads across both physical and virtual CPUs within the system. Previously, in earlier kernel versions, a single processor could become overloaded — an issue that is now effectively resolved.
In addition, Linux 2.6 introduces support for new Intel hardware features, such as Intel’s Physical Address Extension (PAE), and includes improved IRQ balancing to further enhance system efficiency and stability.
Better Support for Embedded Systems
Linux is widely used in many embedded systems, such as PDAs. With the release of the new kernel, much of the uClinux project has been incorporated directly into the main kernel source. This integration not only simplifies development but also enhances compatibility across a broader range of embedded devices.
Furthermore, Linux 2.6 now supports next-generation processors used in embedded systems, including Motorola’s m68k processors, Hitachi’s H8/300 series, and the NEC v850 processor. Consequently, developers working with embedded hardware can expect better performance, stability, and scalability across diverse architectures.
Increased Support for Multiprocessor Systems
Another major improvement in the Linux 2.6 kernel is the introduction of NUMA (Non-Uniform Memory Access) server support. As a result, the new kernel becomes significantly more efficient on large multiprocessor servers. In essence, NUMA represents a substantial advancement over SMP (Symmetric Multiprocessing), offering enhanced performance, scalability, and resource management on high-end systems. Consequently, organizations running enterprise-grade or compute-intensive applications can expect better overall system throughput and responsiveness.
Linux Hardware and Network Scalability
Scalability has seen a dramatic boost in Linux 2.6. Here are some key improvements:
-
The number of unique users and groups supported has increased from 65,000 to over 4 billion (16-bit to 32-bit).
-
The number of Process IDs (PIDs) has grown from 32,000 to 1 billion.
-
File system support now extends up to 16TB on standard hardware.
-
The limit of major and minor devices has expanded from 255 each to 4095 major devices and over a million sub-devices per type.
Summary of Other Kernel Improvements
-
The Linux 2.6 kernel is now preemptible.
-
Full PnP BIOS support has been added.
Input / Output Enhancements
-
New support for USB 2.0 devices.
-
Integrated wireless device support with a unified subsystem and API.
-
Built-in Bluetooth device support.
-
Major updates to IDE/ATA and SCSI subsystems.
-
Added support for high-speed Serial ATA (SATA) devices.
-
Improved file system support for extended attributes and POSIX-style access controls.
-
Full support for the XFS file system.
-
Rewritten and improved NTFS file system support.
-
Enhanced compatibility for input/output devices such as mice, keyboards, touchscreens, joysticks, and gamepads.
-
New media and audio support through ALSA (Advanced Linux Sound Architecture) — replacing the older OSS (Open Sound System).
-
First built-in support for Digital Video Broadcasting (DVB) hardware.
Software Improvements
-
New support for IPsec protocols.
-
Enhanced multicast networking.
-
Support for the newer NFSv4 protocol.
-
Numerous improvements to Windows-style network file systems.
Upgrading and Installing the Kernel
Upgrading the Linux kernel can vary significantly depending on your specific system and configuration. Therefore, it’s essential to follow clear and verified steps to ensure a smooth transition. To help with this process, we’ve gathered several reliable online sources that provide detailed, step-by-step instructions on how to safely and effectively upgrade your kernel from version 2.4 to 2.6. By following these guides, you can minimize potential issues and take full advantage of the new features and performance improvements introduced in Linux 2.6.
Prepare yourself
- We advice to read the recommended documentation when you are upgrading and installing the new kernel.
- If you have a older kernel installed at this moment than the 2.4 kernel (2.0 or 2.2) first upgrade your kernel to the 2.4 kernel
- If you are not comfortable to compile and install a Linux kernel read the info in this howto: http://www.linux.org/docs/ldp/howto/Kernel-HOWTO/
- Read for changes and hard and software requirements for upgrading to the Kernel 2.6 http://lxr.linux.no/source/Documentation/Changes?v=2.6.0
- s Read for changes and hard and software requirements for upgrading to the Kernel 2.4 http://lxr.linux.no/source/Documentation/Changes?v=2.4.22
Get the kernel
To download the kernel Go to: http://kernel.org/mirrors/ and choose your mirror. Go to the directory: /pub/linux/kernel/v2.6/
Download the .tar.gz or .tar.bz. Optionally get the signatures and verify them.
Unpack to /usr/src and enter the linux-2.6.0-test? directory.
Software requirements
To know everything about the software requirements you need to install the kernel read http://lxr.linux.no/source/Documentation/Changes?v=2.6.0
IMPORTANT NOTE: you need a more recent version of module-init-tools than described in the file: (install version 0.9.13)
module-init-tools 0.9.13 # depmod -V
Basic tools:
Gnu C
Gnu make
binutils
util-linux
procps
2.95.3
3.78
2.12
2.10o
2.0.9
# gcc -version
# make -version
# ld -v
# fdformat -version
# ps –version
Choose for your filesystem(s):
e2fsprogs
jfsutils
reiserfsprogs
xfsprogs
1.29
1.0.1
4 3.6.3
2.1.0
# tune2fs
# fsck.jfs -V
# reiserfsck -V 2>&1|grep reiserfsprogs
# xfs_db -V
Optional:
pcmcia-cs
quota-tools
PPP
isdn4k-utils
nfs-utils
oprofile
3.1.21
3.09
2.4.0
3.1pre1
1.0.5
0.5.3
# cardmgr -V
# quota -V
# pppd –version
# isdnctrl 2>&1|grep version
# showmount –version
# oprofiled –version
You can get the packages from the location described in Documentation/Changes: e.g. http://lxr.linux.no/source/Documentation/Changes?v=2.6.0
The module-init-tools you can get from: http://www.at.kernel.org/ (use 0.9.13, don’t use 0.9.14-pre)
The corresponding modutils you can get from: http://www.kernel.org/pub/linux/utils/kernel/modutils/v2.4/ (use 2.4.21 or any later version)
Configure your kernel
To configure:
make config/oldconfig make menuconfig make xconfig (uses QT not TK) make gconfig (used GTK)
Important note: don’t forget:
CONFIG_VGA_CONSOLE=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_INPUT=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
Further problems are discussed in the FAQ http://armin.emx.at/kernel_2.6/kernel_2.6_faq.html go and look before building.
The configuration is saved in the .config file. To check for features just: e.g. ‘ grep CONSOLE .config ‘
I recommend to start a new .config and NOT to copy your old 2.4 .config to the distribution dir!
Build the kernel
‘ make help ‘ gives you the (new) options. Basically ‘ make all ‘ will do everything.
Install the kernel/modules
To install the modules:
make modules_install
cp arch/(YOUR ARCH)/boot/bzImage /boot/vmlinuz-2.6.0-testX cp System.map /boot/System.map-2.6.0-testX
Now you have to update lilo/grub/chos …
Now you can reboot
In conclusion
We can not guarantee a flawless installation. Further we advice strongly to read the documentation we recommended mentioned above. For the rest we wish you success with upgrading your kernel.
-
Next Post
Disk Quota Management