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 . . .
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
Low end capabilities
At the low end of the spectrum, some important capabilities have been
added that benefit embedded systems and dedicated intelligent devices .
. .
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?
So, should you download 2.4.0 and upgrade your desktop or laptop?
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.
Major restructuring
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