With more hype and fanfare from the media than from the Linux community or
its tor- chbearers, the new Linux kernel, kernel 2.4, was released on January 4,
2001. The original commitment was to have the release by December 2000, but the
kernel was not quite ready for that. Many have criticized the delay, but
fortunately, the open-source philosophy prevailed–if it isn’t ready, don’t
release it.
Despite the delays, the bugs, and everything else that goes with a new
release, kernel 2.4 is finally out. So, what is the kernel, why is it so
important, and what’s new in version 2.4?
The kernel is the heart (or if you prefer, the brain) of any operating
system. It’s the most important component of the operating system, and for
most operating systems, this is something users will never tinker with. In the
case of Linux, however, the kernel can be fully customized to suit the
requirements of the job the particular machine is intended for. Needless to say,
kernel upgrades are not as frequent as upgrades of operating systems themselves.
For example, most Linux distributions are in versions six and seven, while the
kernel itself is only in version 2.4.
Describing the features and enhancements of any kernel version can be a bit
difficult. One of the main features or enhancements claimed for Linux kernel 2.4
is an improved infrastructure. What this means is that many of the components
that make up the kernel are now more solid and robust. As a result, Linux
servers running kernel 2.4 will scale much better. A simple example is in memory
management. After the changes that have been made in this area, the new kernel
can support up to 64 GB of RAM. Another example is the limitation to file sizes.
Earlier, the file size had a maximum limit of 2 GB, while in the new version,
files can apparently run into terabytes.
According to several experts, unlike the changes between kernel 2.2 and 2.0
or 1.0, kernel 2.4 is not much of a change from kernel 2.2. However, the basic
intention never was to take a big leap forward, but to build on what 2.2
achieved; improve it, and make it easier for the desktop user as well. So, many
of the enhancements are directly aimed at the desktop user. But to suggest that
kernel 2.4 is just Linux for the ‘desktop’ would be unfair. Several
improvements have been made for the server too.
Since I’ve neither had the new kernel for too long nor had a chance to play
around with the pre-releases, I haven’t explored the enhancements fully yet.
Here, I’ll give an overview of the major changes in the new kernel.
For the desktop user, the most notable improvement is support for a multitude
of devices, like printers, digital cameras, scanners, keyboards, mice, network
cards, modems, Zip drives, and others that plug into the USB. You read that
right. The new kernel has complete support for USB and USB devices. Another
significant addition, not for the desktop but for their close cousins–the
laptops, is PCMCIA support. Direct support for PCMCIA devices in the kernel
means an end to problems that users had configuring PCMCIA devices on notebooks.
Finally, even though ISA devices are fading away, making way for PCI devices,
ISA plug-n-play support has improved drastically in the new kernel.
At the server end, the most significant changes are improvements that will
let Linux take better advantage of systems with multiple processors. SMP and
scalability are going to be important for Linux to run on powerful servers. The
Linux kernel now supports the IA64 server architecture, and also has support for
other heavyweights like the IBM S/390.
Some of the new features deserve special mention. Remember, how last year the
single biggest problem you had with installing Linux was getting X Window to run
with your SiS card. Support for that is now built-in at the kernel level. This
year, the biggest problem was how to get the i810 motherboard to work. Good news
again. In the kernel, support is built-in for the i810 as well, with both sound
and graphics well supported. It works like a charm.
Another very significant change in the kernel is in networking. It now
directly supports Network Address Translation (NAT) and Masquerading. Though
older tools like ipfwadm and ipchains will still work (for the sake of backward
compatibility), the new stuff is much better, with noticeably improved
performance, more security and easier manageability. Therefore, Linux boxes that
are being used as Internet gateways could do with a kernel upgrade.
So is the kernel 2.4 all-perfect? Like we noted in the beginning, it’s
still version 2.4.0, which means that a version 2.4.1 will come out soon. That
apart, a few critical things are still missing. One promise that was not kept
was a rewrite of the SCSI code.
Another big problem is the lack of a journaling file system. Although there’s
support for Reiser FS, the original item is still not there. Work is in progress
in this area and we should see this happen soon. Finally, despite all the
plug-n-play, one thing that got missed out is support for all winmodems
(software modems that run under Windows). Several winmodems are supported now,
and the lack of support for the remaining cannot be blamed entirely on the
kernel, with no real standards for winmodems and not enough manufacturers being
ready to provide the code. A few projects are independently working on this, but
support at the kernel level would be great.
I can go on forever and can keep listing new or improved features, but I know
you’re waiting for the big question–should I grab it and install it. I would
suggest that you definitely get it and install it, but on test systems, and not
on production servers yet. Wait to see if there are any brown paper bag releases
like last time. If you want to be more cautious, wait for your favorite
distribution to come out with 2.4 as part of the package. Till then, experiment
to get a feel of how it is.
Kishore Bhargava is a technology
consultant with Linkaxis Technologies