![]()
Linux Inside: Linux 2.4 and KDE 2.0
by Gene Wilburn
(The Computer Paper, April 2000. Copyright © Wilburn Communications Ltd. All rights reserved)
After the rather lengthy development time between Linux 2.0 and 2.2, Linus Torvalds promised shorter development cycles between major kernel releases. True to his word, Linux 2.4 is almost upon us. Just as Linux 2.2 introduced major improvements over 2.0, 2.4 promises even greater steps forward for the Linux operating system.
First a word about release numbering. Linux kernel releases come in two types of series--even-numbered and odd-numbered. The odd-numbered series, such as 2.3 and subseries releases such as 2.3.34, are called developer, or experimental, releases. They are works-in-progress--the construction site for the next general release.
Experimental releases are hid behind a wall of secrecy in the corporate world, but Linux is open source and even the latest experimental kernels are available to everyone who wants to try them out--anyone willing to put up with bugs and other deficiencies. Nobody runs these releases on "production" machines--workstations or servers that have to stay up and running to perform critical functions. Many Linux vets run experimental releases in a separate partition to keep abreast of new developments, or to contribute feedback to the kernel development team.
Once an experimental release has been declared stable, and the kernel development team has met its major goals, some touchups and cleanup are done to the release and it is introduced as a stable even-series release, ready for general use. This does not mean, of course, that every single bug has been spotted and removed, but the obvious ones have been excised.
The 2.3 experimental series is almost nearing its end. From this will emerge, very soon now, the 2.4 general series. As bugs are spotted and upgrades are made to the general release, it will evolve with subreleases--such as 2.4.1, 2.4.6, 2.4.11--you've seen the drill.
And as soon as 2.4 general series is released, a new 2.5 experimental series will begin. Thus the Linux kernel keeps evolving.
Bear in mind that Linux kernel numbering usually bears no relationship to the numbering schemes used by Linux packagers. Red Hat Linux 6.1, for instance, is based on the Linux 2.2 kernel. Hence it is incorrect to talk about Linux 6.1 when you actually mean Red Hat 6.1.
Now, on to the new features of Linux 2.4. As always, with these kernel updates, my special thanks go to Joe Pranevich. Joe has become the community spokesperson for kernel development news. Here are some of the highlights documented in Joe's latest kernel report (http://linuxtoday.com/stories/15936.html).
Enterprise Enhancements
Although it doesn't affect home users, there were some restrictions in Linux 2.2 that have hindered the incorporation of Linux into enterprise (read "big business") systems. Previous versions of Linux restricted the number of simultaneously executing processes as well as the number of unique users on a system. Linux 2.4 provides a scalable, configurable process limit and increases the maximum number of users to approximately 4.2 million. This, along with improvements in the Linux scheduler efficiency, allows Linux to better handle large numbers of concurrent processes, such as you would get when running a large-scale database doing large numbers of online transactions.
Likewise, on a machine that can handle it, Linux 2.4 can utilize more than 4Gb of RAM, more than 16 ethernet cards, more than 10 IDE controllers, and multiple IO-APICs (Advanced Programmable Interrupt Controllers). As always, the number of supported hardware device drivers has increased significantly from previous releases.
On the multiple-CPU side of things, the Linux 2.4 subsystems have been optimized for 8 or more processors. Look out NT or 2000 or whatever your name is this week--the new kid on the block is on a tear.
If you're looking ahead towards deployment of the Intel "Merced" IA64, 64-bit processor, rest assured that Linux 2.4 will be one of the first operating systems available for the new chip. Intel itself has been using Linux for testing the processor, and the kernel development team is already familiar with the 64-bit architectures of the Compaq Alpha and Sun Sparc64 processors.
And, of course, Linux will be supported by the new Crusoe chipset from Transmeta. After all, Linus Torvalds works there. Linux on the Crusoe has already been publicly demonstrated.
Plug'n'Play, USB, Firewire Support
Linux 2.4 offers improved support for Plug'n'Play devices. Previous releases supported PnP devices through a user-mode utility, but Linux 2.4 allows these devices to be used during the boot process and configuration of the devices is now done automatically. The new kernel also supports I20 (Intelligent Input/Ouput), a superset of PCI. With these two changes, Linux 2.4 supports many additional pieces of PC hardware.
The long-awaited support for USB (Universal Serial Bus) has arrived. Linux support for USB devices is still in its early stages, but a large number of USB devices, including keyboards, mice and speakers, is supported in the 2.4 kernel. USB support will continue to improve and evolve during the development cycle of 2.4.
Equally important to power users, Firewire support has been added to the kernel. Firewire, which is steadily growing in populariy, is an option for many high-bandwidth devices.
Other Improvements
On a small, experimental scale, support is being developed for "WinModems" or "softmodems". It will be awhile yet before this comes to fruition, but the hooks have been planted in the kernel.
Parallel-port and infrared support have been improved in the 2.4 kernel. Enhanced parallel support using UDMA, for faster I/O, is now supported.
Support for speech synthesizer cards, which began in some later editions of the 2.2 kernel, has been enhanced. Likewise, there is additional support for sound, TV and radio cards.
Linux 2.4 offers a significant new feature for those who run Web servers on Linux. A new kernel web daemon (khttpd) can process HTTP requests without having to communicate with any servers, such as Apache. It is not designed to replace Apache, but to provide extremely rapid delivery of static web pages. This will make Linux-powered Web sites even snappier than they already are.
When will all this be available? The kernel development team doesn't release to even numbers until they think everything is ready--there are no artificial marketing deadlines to meet--so expect it when it arrives. The signs indicate a potential release by spring. By the time this column hits print, release should be immiment if it hasn't already happened. It usually takes the packagers a few months to incorporate the new kernel in their distributions. Unfortunately it looks as if Debian GNU/Linux will only just be getting around to releasing the 2.2 kernel by the time 2.4 is ready. You'll need to use one of the commercial distributions such as Red Hat, SuSE, or Caldera to get an early look at Linux 2.4.
Here comes KDE2
Even as the Linux kernel development team is readying Linux 2.4 for release, the KDE development team will soon be releasing KDE 2.0. KDE2 promises to make the well-received K Desktop Environment even more useable than it is today.
The KDE2 browser, for instance, will get full Java and JavaScript support. Already popular as an alternative Web browser, Java support will take the excellent KDE browser a significant step forward.
While KDE 1.1.2 introduced some ability to use themes using a theme manager, KDE2 will be totally customizable. From minimalist to Gothic, you can make KDE2 look any way you like, and there are already themes available.
KDE2 still uses CORBA (Common Object Request Broker Architecture) for distributed objects, but the development team has found CORBA to be overkill for many of KDE's functions. For lighter-weight objects, it has created KParts and DCOP. KParts is used in KOffice for embedding application windows into each other, such as embedding a spreadsheet window from Kspread into a word processor window in Kword.
DCOP (Desktop Communication Protocol, pronounced Dee-Cop) will be used to manage object messaging communications. It's the new traffic cop for directing messaging traffic behind the scenes.
In the Unix tradition, KDE uses plain text for all its configuration files. This frequently creates unpleasant lags in launching programs. To work around this problem, KDE2 introduces KSycoca, the KDE system configuration cache. The configuration files are compiled into a fast-loading cache binary. Unlike Windows registry files, however, the binary files are secondary. If there's a problem, KSycoca simply empties its cache and recompiles the plain-text configuration files.
KOffice, a full open-source office suite in a development stage, is progressing steadily and parts of it will be released with KDE2. The component parts include all the parts in the "original" KOffice: KWord, KSpread, KPresenter, KIllustrator, KChart and KFormula. Two new applications join the suite: KImageShop, a fully-featured competitor to the GIMP, and KDatabase, a front end aimed at making database applications more accessible. The team is currently working on Word97 import filters for KWord.
KDevelop, the KDE IDE (Integrated Development Environment), is nearing readiness. It currently has support for Objective-C and a class tree view.
The KDE documentation team is switching from the obsolescent LinuxDOC SGML system to the industry-standard DocBook DTD SGML/XML used by many publishers.
Additional details about KDE2 are available on the KDE Web site at www.kde.org.
Gene Wilburn (gene@wilburn.ca) is a Toronto-based IT specialist, musician and writer who operates a small farm of Linux servers.
-30-