Linux Kernel 2.6 has been in stable release for months now, which is like dog’s years in kernel time. Kernel releases are exciting times for Linux geeks, because it’s just plain fun to be able to replace the kernel on a system, or have several different kernels installed, and choose among them as the whim strikes. Oh yes, you want to gain improved performance and functionality, too.
Of course us sober, conscientious admins evaluate software upgrades in terms of necessity, not in terms of fun. Let’s take a look at what’s new and improved in 2.6. Then in Part 2, we’ll look at how to safely install a new kernel for testing.
2.6 rocks — how’s that for an executive summary? This kernel is improved in every way — for everything from PDAs and other wee embedded devices, to desktops and workstations, to high-demand servers. Improved multimedia, networking, journaling and distributed filesystems, RAID, LVM (logical volume manager), more RAM, more users, more devices, and more speed in every way. While Linux has always had the broadest support for different hardware platforms, with this release it’s finally also a real honest-to-goodness enterprise operating system. Here are eight reasons why:
- 64-bit Computing
Both Red Hat and SuSE have had business-ready 64-bit distributions available since the middle of last year. These do not use the 2.6 kernel, but are highly customized 2.4.x kernels with pieces from 2.6. (The major Linux vendors will have full 2.6 kernel implementations available later this year.) When you put these packaged 2.6 implementations on an AMD Opteron system, which supports both 32- and 64-bit applications, you have yourself a kickbutt high-demand server or workstation. Fujitsu-Siemens, Sun, IBM, HP, and several other major vendors have jumped on the Opteron/Linux bus.
Itanium, Intel’s 64-bit x86 processor, has its strengths, but I favor the Opteron’s excellent native support for 32-bit applications. Itanium uses software emulation — the IA-32 execution layer — to run 32-bit programs.)
Earlier this week, Intel made a move to take on AMD head-on when it announced plans to release 64-bit extensions for its x86 processor family (Xeon and Pentium) by the end of the year. Xeon’s Nocona version will get the first crack at the extensions, which Intel commonly refers to as “CT,” or Clackamas Technology, beginning in the second quarter. The 64-bit Pentium extensions for “Prescott” P4s are expected to debut sometime midyear.
No, not Numa the lion, but Non-Uniform Memory Access. What this does is remove a major bottleneck in multi-processor systems, by creating more efficient memory usage. SMP (symmetric multi-processing) does OK up to 8-12 CPUs. The 2.6 kernel supports up to 64 CPUs, so NUMA support is a big plus. You can imagine the traffic jams from a batch of CPUs all fighting for access on a shared memory bus. NUMA acts like an air traffic controller at an insanely busy airport, keeping things moving and preventing collisions.
- Web Serving, File Sharing, and Databases
This is not your grampa’s kernel. 2.6 is fast, measuring as much as five times faster than the 2.4 kernel, for both Web servers and application servers. It’s also blazingly fast for both file servers (with Samba) and databases. Many tests and benchmarks have been done, see “Kernel comparison: Web serving on 2.4 and 2.6” in Resources.
- More Users Than You Have Ever Seen Before
The addressing space for unique users has gone to 32-bit, from 16-bit, so now you can support 4 billion unique users, instead of a measly 65,000.
- Hyper-Threading, or Fake CPUs
The Pentium 4 and Xeon CPUs do hyper-threading. Hyper-threading emulates multiple CPUs. The 2.6 kernel fully supports it, and unlike Windows 2000, it knows the difference between fake and real processors. So Windows 2000 wants additional CPU licenses for non-existent processors. I think charging per-CPU licenses is absurd in any case. (And so is charging client-access licenses, and depriving customers of “ownership,” while dodging responsibility or liability of any kind…) At any rate, 2.6 takes full advantage of the P4 architecture’s hyperthreading capabilities.
- Bigger and Bigger
PIDs (process IDs) have been boosted from 32,000 to 1 billion. Filesystems, even on 32-bit processors, have a theoretical upper limit of 16 terabytes, up from 4 terabytes. Another nice boost for 32-bit systems is support for 64 GB of RAM, up from 4 gigabytes. Device support has increased tremendously (the /dev directory). In the 2.4 kernel, devices were limited to 255 major numbers, and 255 minor numbers — in effect, roughly 65,000 total devices. The new kernel supports 4,095 major numbers, and more than one million subdevices.
Sound and video are traditional Points of Pain in Linux. Traditionally, on all platforms not just Linux, sound and video drivers introduce instability and other bad behaviors. 2.6 has fully integrated and improved the ALSA (Advanced Linux Sound Architecture). It works harmoniously with multiple processors, and promises to be “thread safe,” which means it won’t trample all over other processes. It supports USB audio, and all kind of audio-nerd things, like full-duplex playback and recording, and multiple sound cards on a single system.
For video-nerds, 2.6 incorporates DVB (Digital Video Broadcasting) support, which means you can build your own Tivo or ReplayTV-type device. Imagine- owning one of these without spyware!
- Other Goodies
- User-Mode Linux, for running multiple Linux virtual machines. User-Mode Linux is great for testing buggy kernels and apps safely, testing all manner of network configurations on a single box, virtual hosting- it’s a Linux lab in a box.
- Support for mounting Novell shares
- ACLs (access control lists)
- Power management is reported to be much better. It had nowhere to go but up.
Linux Kernel 2.6 boasts a lot more great new features, which are listed in the “OSDL 2.6 Press Release” (see below).
Do I Upgrade?
Short answer: Don’t be silly. Like all major kernel releases, 2.6 is mostly backwards-compatible, but there are some applications that will not work with the new kernel, without tweaking and patching. The wise admin tests it thoroughly first. One way is to install it on any machine that has the applications you’ll be running on it, right alongside the existing kernel, then select the one you want at boot. Part 2 will tell how to do this.