Taking a break from our graphics excitement last week with the release of AMD's 8.42.3 Display Driver, we have finished our largest (and most time consuming) Linux performance comparison to date. We have taken the last 12 major kernel releases, from Linux 2.6.12 to Linux 2.6.23, built them from source and set out on a benchmarking escapade. This testing also includes the Linux 2.6.24-rc1 kernel. From these benchmarks you can see how the Linux kernel performance has matured over the past two and a half years.
First off, the hardware we had used for this large kernel round-up was the same as what we had used in our Linux For Older PC Hardware article where we had compared the performance of Fedora 7, Mandriva 2008 Beta 1, and SimplyMEPIS 7. The hardware consisted of an Intel Pentium 4 1.6GHz "Northwood" processor, 2 x 512MB of DDR-400 memory, Western Digital 80GB 8MB cache ATA-100 hard drive, and an ASUS P4SGX-MX motherboard. The P4SGX-MX uses the SiS 650GX + 962L Chipset and has onboard SiS Real 256 graphics. We had intentionally used this older test system as the hardware was compatible with the Linux 2.6.12 kernel and performance changes in the Linux kernel are more easily detectable (well, compared to our dual quad-core benchmarking). For all the kernel releases tested -- Linux 2.6.12, 2.6.13, 2.6.14, 2.6.15, 2.6.16, 2.6.17, 2.6.18, 2.6.19, 2.6.20, 2.6.22, 2.6.23, and 2.6.24-rc1 kernels -- we had compiled them from source. The Linux 2.6.21 kernel was not tested as it had serious stability issues with this hardware. This system was running Fedora Core 4 with GCC 4.0.0 and X.Org 6.8.2. The same standard kernel configuration was used except for the obvious changes where needed.
Briefly recapping some of the major changes to the Linux kernel, the Linux 2.6.12 kernel was released in June of 2005 and introduced support for page-out throttling, cpusets, a multi-level security implementation for SELinux, device mapper multi-path support, log-level boot option, and I/O barrier support for Serial ATA devices were among the changes. Shipping a little over two months after the release of the Linux 2.6.12 kernel was Linux 2.6.13. This kernel introduced support for execute-in-place, i386 CPU hot-plugging, inotify, improved CFQ I/O scheduler, kexec, kdump, and the DRM driver for VIA Unichrome chipsets.