Kernel 2.6 features

It was January 2001, almost 5 years ago when the previous Linux operating system kernel 2.4 was released, with kernel support for ISA Plug-and-Play, USB, PC Card. But last December the new Linux kernel 2.6 was released and we must say there are a lot of great new features in it.

In this article we give an overview of the most important new features and give you some useful links where you can find the info how to upgrade your kernel from 2.4 to 2.6

The new Kernel 2.6 features

To name every new feature in detail this article has to be about 10.000 words so we stick to an overview of the most important enhancements and new features.

Hyperthreading

A major hardware advancement supported under Linux 2.6 is the support for hyper threading. This technology is currently built into modern Pentium 4 800 MHZ processors. It allows a single physical processor to act as two processors. Some current applications already can use this technology and show a better performance.

Also important to mention in the 2.6 kernel’s improved support for hyper threading is that the scheduler recognizes and optimizes processor loads across both real and virtual processors within a machine. In the former versions of the Linux kernel, it was possible to overwork a single processor.

Also there is other new Intel hardware features like Intel’s PAE (“Physical Address Extension”) and improvement of IRQ balancing.

Better support for embedded systems,

Linux is used for many embedded systems like PDA’s

In the new kernel much of the uCLinux project is now embedded in the mainstream kernel. There is support for new generation processors that are used for this embedded systems like the, Motorola’s embedded m68k processors, Hitachi ‘s H8/300 series and the NEC v850 processor

Increased support for Multi processor systems

Another fundamental change in Linux 2.6 Kernel is Linux’s new support for NUMA server. This makes the new Linux 2.6 kernel a more effective kernel on larger and larger servers. NUMA (“Non-Uniform Memory Access”) this is a gigantic improvement in comparison to the SMP technology and is provides more efficiency on multi processor systems.

Linux Hardware and Network Scalability

The scalability has improved enormously, here are some figures:

  • the number of unique users and groups on a Linux system has grown from 65,000 to over 4 billion from 16 bit to 32 bit
  • The number of PIDs (Process IDs) has grown from 32,000 to 1 billion
  • Support for file systems up to 16TB on common hardware
  • nodes were limited to 255 “major” devices and 255 “minor” devices of that type The new kernel supports 4095 major device types and a more than a million sub devices per type

A summery of the other Kernel improvements

  • The Linux 2.6 kernel is finally preemptible.
  • Full PnP BIOS support

Input / Output Support

  • New support for USB 2.0 devices
  • Support for wireless devices, has been merged into a single “wireless” subsystem and API
  • Linux support for Bluetooth devices
  • major update for IDE/ATA and SCSI subsystem
  • new support has been added for high-speed Se ria l ATA (S-ATA) devices
  • Improved File system support for extended attributes and POSIX-style access controls.
  • full support for the new (on Linux) XFS filesystem
  • improved (and rewritten) support for the NTFS filesystem
  • Better support for in and output devices like mice, keyboard, toutchscreen, joystick and gamepads
  • New media and audio support ALSA (the “Advanced Linux Sound Architecture) the replacement of the old OSS “Open Sound System”
  • first built-in support for Digital Video Broadcasting (DVB) hardware

Software

  • New support for the IPsec protocols
  • Improved support for multicast networking
  • Supports the new and not widely adopted NFSv4 protocol
  • Many improvements to Windows-style network filesystems

Upgrading and installing the Kernel

Upgrading the kernel is a task that can be different on many levels depending on your system and your configuration. We looked for some quality info that’s available on the web and

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 recomment 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.