Click Here!

To print: Click here or Select File and then Print from your browser's menu
	--------------------------------------------------------------
	This story was printed from Tech Update,
	located at http://techupdate.zdnet.com. 
	--------------------------------------------------------------
	
Linux 2.4 unmasked
By Jerry Epplin, Linux
January 10, 2001 12:47 PM PT

Most Linux users have heard by now of the release of version 2.4 of the kernel, an event sure to trigger a flood of new versions of all of the major Linux distributions.

Actually, to the hard core Linux user, the release of 2.4 as a "stable" kernel has little practical significance. After all, numerous 2.4 "test" releases have been usable for most purposes for months while obscure bugs were being tracked down; and there are sure to be more minor bugs found in the 2.4 tree over time.

In the closed-source world, releases are a big deal because they are seen very seldom and usually contain major feature additions. By contrast, an open-source software release is essentially a milestone -- a declaration that what was already available is now stable.

Thus, it's amusing to read uninformed opinions about how 2.4 was "vaporware" and "behind schedule." In reality, the latest Linux is always constantly available! Get this: open-source projects just don't have formal schedules in the sense that closed, commercial projects do.

Still, the occasion of the release of 2.4 seems a good time to summarize the improvements that have been made in Linux since the release of 2.2.

What's in it for me?

For the average desktop or laptop Linux user, the features added by 2.4 are modest. For example . . .

  • USB -- Linux now has support for USB, enabling use of a wide variety of newer mice, keyboards, printers, and other peripheral devices.
  • PCMCIA -- PCMCIA devices are now supported directly within the kernel; previously they were supported by an external package.
  • ISA PnP -- ISA bus plug-and-play ("PnP") functionality is now supported by the kernel -- just in time for ISA itself to disappear from everyone's desktop computer!
So, should you download 2.4.0 and upgrade your desktop or laptop?

There's probably no point, unless you have a specific need for one of its new features. Performance and size are roughly a wash with 2.2 -- a fact which is in itself impressive, considering the new capabilities that have been added.

You may wish to wait until your favorite distribution is released with a 2.4 kernel, which is likely to happen soon. Plus, the new distributions will probably include some useful new non-kernel features and programs that make use of 2.4's capabilities.

So what's all the Linux 2.4 buzz really about?

Some of the main feature additions to Linux involve support for a vastly wider diversity of platforms. Consequently, the release of 2.4 signifies an astoundingly quick maturation of Linux.

Just a few short years ago, Linux was considered a PC operating system, mainly usable on x86 processors -- with fairly crude support for a few other architectures, such as Alpha and Sparc. With the release of 2.4, Linux has demonstrated its viability on an extremely diverse variety of platforms -- from handheld computers and other embedded devices at the low end, to mainframes and even multi-processor supercomputers at the high end. The official Linux kernel now has support for an impressive set of desktop and server 32- and 64-bit processor architectures besides the x86 -- Alpha, Sparc, MIPS, SuperH, PowerPC, ARM, and others.

Perhaps most impressive, is the support for Intel's IA-64 server-oriented architecture (info) and for IBM's S/390 mainframe (info). Notably, the Linux IA-64 port appears to be well ahead of Microsoft's port of Windows to IA-64. And the Linux S/390 IBM mainframe port is nothing short of a testimonial to the flexibility of an operating system that most people think of only as a "competitor to Windows."

In addition, numerous less mainstream CPUs and hardware platforms are supported by unofficial Linux kernels (such as ports for some Linux handhelds and the uClinux project). Many of these ports can be expected to be merged into the official kernel as they mature. Importantly, it tends to be these lesser known processors that form the fabric of myriad future non-desktop "embedded devices" and pervasive computing systems.

Stunning diversity

From an industry point of view, this spread of Linux to diverse architectures is stunning. Never before has an operating system spread so quickly to so many architectures.

Windows took years to be ported to processors other than Intel x86. And its support for non-x86 architectures has actually waned in recent years. Unix became available on many platforms, but in the process became so fragmented that it could hardly be considered a single OS any longer. A number of specialized embedded operating systems have spread to many architectures; but they offer limited scalability and fewer features relative to Linux.

Linux, on the other hand, has diversified rapidly without fragmenting -- meanwhile adding the features needed by modern, interconnected computer systems of every conceivable size, shape, and purpose.

How did all this happen so fast?

Not bad for a bunch of software anarchists working overnight on caffeine, you say?

Several factors account for this success, many of which stem from the open source (GPL) software model used in developing Linux.

The most obvious cause for the spread of Linux to new platforms is the crowd of microprocessor and computer manufacturers who have jumped onto the Linux bandwagon in the last two years. These include many of the leaders in the computer industry: IBM, Intel, Motorola, AMD, Hitachi, Toshiba, National Semiconductor, STMicroelectronics, Cirrus Logic -- and don't forget Linus Torvalds' current employer, startup chipmaker Transmeta.

Why support Linux on their hardware? Because they, like the rest of us, can essentially own the OS source code, which gives them complete control over the process and the result. They don't need to ask anyone's permission, sign any NDAs, or pay anyone for the privilege of porting Linux to their hardware. When finished, they are free to sell the operating system or, more commonly, give it away with their hardware.

By contrast, porting a proprietary OS is much messier -- and riskier. The hardware manufacturer and the proprietary OS vendor each has differing -- and sometimes conflicting -- agendas and priorities. These must be continually negotiated and reconciled. A CPU manufacturer can't even be sure that the OS developer will remain committed to their port in the face of ever-changing corporate priorities (ask Motorola about Microsoft's Windows NT support for PowerPC!).

No such danger exists with Linux. Originally, this was simply because it was controlled by a group of volunteers with few or no corporate loyalties. The "non-corporate" culture of Linux kernel development is still an important factor. Watch the Linux kernel mailing list for a while, and you'll see what happens to anyone who is perceived as representing a "corporate agenda."

Expanding applicability

A more recent factor keeping Linux development free of corporate agendas is the very breadth of applicability of Linux that I mentioned earlier. After all, it's challenging enough to write an operating system that's scalable from handhelds to mainframes. Doing so while advancing some hidden non-technical agenda is multiply so. Kernel developers have therefore developed a habit of focusing on what's important to the OS, and have scant patience for non-technical issues.

The corporations who hope to benefit from porting Linux to their hardware therefore have come to realize that their contributions to Linux will be incorporated into the standard kernel based solely on their technical merit. They also know no one else will succeed at slipping something in that undercuts their efforts. In short, they can be sure that only technical hurdles stand in the way of a successful port of Linux to their hardware.

The result of this "virtuous cycle" is an operating system that, with version 2.4, boasts an impressive new set of features for everything from low end to high end platforms.

High end system features
  • The Logical Volume Manager has been added. This allows for flexible configuration of disks and other media; allowing, for example, spreading a volume over multiple disks. This is important for handling large database applications.

  • Similarly, raw device I/O, without caching, is now supported. Some database management systems prefer to perform their own caching rather than leaving it to the operating system, since they can make use of knowledge of application behavior that an OS alone does not have.

  • The number of supported simultaneous processes, which had previously been limited to 4090, is now limited only by the amount of RAM in the system. This factor is important for web servers and other transaction processing systems.

  • Large memory (up to 64 GB) and terabyte-sized files are now supported.

  • Also, improved multiprocessor support allows Linux to get better performance from high end processing hardware.
On the other hand, not yet integrated into the current standard Linux kernel are journaling file systems, which provide fault tolerance when a failure occurs and the system cannot be powered down properly. One, ReiserFS, seems likely to be included soon and is already provided as part of SuSE's Linux distribution.

Low end capabilities

At the low end of the spectrum, some important capabilities have been added that benefit embedded systems and dedicated intelligent devices . . .
  • Support for Memory Technology Devices, allows ROM and Flash memory based devices to be accessed in the same way as disks. This is necessary for appliance-like operation of devices and diskless embedded systems, and for high reliability in critical systems.

  • Similarly, cramfs provides a compressed read-only file system, and ramfs is a RAM-based file system -- both ideal for ROM or Flash memory based applications.

  • More network support had also been added, including support for ARCnet, a venerable (and reliable) network popular in industrial environments.

  • Also, support is now included for Intelligent Input/Output (I2O) devices, which is becoming increasingly important for higher-end embedded systems.
Major restructuring

From a developer's perspective, one of the most significant improvements with Linux 2.4 is an intangible: a major overall restructuring of the Linux source code which makes it more modular, configurable, and easier to modify. In fact, reading the Linux 2.4 source code is now a pleasure -- well, at least it is for programmers!

Whereas Linux 2.2 was quite difficult (downright painful, really!) to follow, everything in Linux 2.4 is now structured in logical ways. The result is that a reasonably capable programmer can now read, understand, and customize the kernel -- something only the most dedicated specialists could do before.

Embedded: the next Linux frontier

The improved structure and modularity of its source code is going to be crucial to the success of Linux in the Embedded Market, which is home to over 90 percent of the microprocessors minted each year. The Embedded Market is widely expected to represent the next big conquest of Linux, and will become a major battleground among market leaders Microsoft and Wind River, plus a handful of Embedded Linux and proprietary OS vendors.

In embedded apps, unneeded functionality must be trimmed out in order to achieve price/performance goals, and support for unusual requirements and custom functionality must be added. Consequently, the most configurable, flexible, and well supported OS wins.

With the release of kernel 2.4, Linux has now attained a level of modularity, configurability, and accessibility that truly has the potential to transform it from a position of new challenger to one of dominance in the highly prized Embedded Market. Consequently, you can expect to see a growing number of high profile -- and high volume -- Linux-based devices emerging shortly, in applications ranging from cell phones and PDAs, to set-top boxes and home gateways, to high end systems used in telecommunications and Internet infrastructure.

Gazing into a crystal ball

All this explains why you should be interested in the development of Linux, even if all you ask from your operating system is that it run the applications you use for work or play.

Much discussion about Linux focuses on comparing its features with those of Windows, or BeOS, or Unix, or OS X. This is important because the purpose of an OS is, after all, to run your programs efficiently and usably. Today, Linux competes quite favorably from that perspective -- with its principal limitation being that of application software.

However, it's even more important to consider what the world will look like five years from now, when applications for embedded intelligence and connectivity have migrated well beyond the desktop and server realms, into virtually every nook and cranny of our lives. Some have envisioned literally billions of embedded intelligent, interconnected devices -- everywhere!

With that in mind, I'd like to pose this question: Which operating systems are more likely to improve at the quickest pace over the next five years? Proprietary ones, controlled by corporate entities with murky, complex, and self-centered motivations? Or, those whose design and design process are open to all?



Author's bio: Jerry Epplin has written embedded software for the past fifteen years, primarily for medical devices. He can be reached at jerry@linuxdevices.com.



Related stories:
Wonderful World of Linux 2.4
ZDNet interviews Linus about his post-2.4 release celebration
"And oh, btw . . ." (2.4.0 kernel is out!)
uClinux 2.4 kernel now available

Talk back! Do you have questions or comments on this article? talkback here