The Linux revolution continues with the arrival of the 2.2 kernel. New features, ranging from support for desktop environments to advanced functionality for high-end servers, position Linux to make a huge impact in 1999.
The Linux 2.2 kernel arrived on January 25, 1999, and with it arrived the latest
revolution in Linux-based computing. New features, ranging from better support for desktop
environments to advanced functionality for high-end servers, position Linux to make a huge impact
for both personal and corporate users in the coming year. And while the 2.2 version of the Linux
kernel is certainly a milestone in the continuing development of the system, a host of other
developments in the Linux community coincide with the release:
* Commercial support from a large array of hardware vendors, including Compaq, Dell,
Hewlett-Packard, IBM, and Silicon Graphics
* New Linux versions of database servers
* Desktop GUI environments, and productivity applications
* An increasing awareness of the potential for Linux for business and enterprise
computing
In this article, we’ll look at these major new developments in the Linux world, examine the new
kernel functionality in 2.2 itself, and check out the latest in business software releases,
including the new wave of desktop application environments — GNOME and KDE.
The Linux 2.2 Kernel
The kernel is the core of the Linux operating system, and often what is referred to when one
speaks about “Linux” itself. As the low-level software that controls application access to system
resources such as memory, peripheral devices, networks, and disk, the Linux kernel is responsible
for much of the hardware support and performance features of the Linux operating system. In the
earliest days of Linux development — back in 1991 — the kernel supported only the Intel 80386
processor, along with a simple console device, simple IDE hard drives, and the serial port. Today,
the range of supported hardware is enormous, and includes high-end multiprocessors, multiple CPU
architectures (including the SPARC, Alpha, PowerPC, and others), advanced scientific devices, RAID
disk arrays, and of course the wide array of PC-based video, storage, multimedia and other
peripherals that are commonplace in the desktop milieu.
Since the Linux kernel 1.0 release in March 1994, the kernel development model has proceeded in
two concurrent stages. The even-numbered releases (such as 2.2.x) are maintained for users requiring
a “stable” system. Any patches made to these releases are usually only made for important bug fixes
or to add new, well-tested features. At the same time, the odd-numbered releases (in this case,
2.3.x) proceed at a lightning pace — with major new features, code rewrites, bug fixes, and other
developments being tested out and honed to perfection by daring users and developers across the
Internet. A new even-numbered release is only made when the latest “development” release is
considered to be rock-solid and dependable for those users who require stability. Hence, the release
of kernel version 2.2 represents a major step forward in the Linux world — one in which the large
number of new features which have been worked on in the 2.1.x development kernels are ready for
prime time.
2.2 On the Desktop…
For desktop users, Linux 2.2 boasts an immense array of new supported hardware — so much, in
fact, that it’s impossible to list everything here. In addition, many drivers in earlier kernels
have been revised to fix bugs or performance problems. These are some of the most important new
hardware features in Linux 2.2:
The IDE disk driver has been changed to allow it to be loaded as a kernel module, rather than
requiring that it be built into the kernel itself. This is great for Plug-and-Play IDE devices, and
reduces the kernel size; if the IDE device is not used often, it doesn’t have to be loaded. Support
has been added for parallel port IDE devices, and additional drivers for specific devices are in the
pipeline. The SCSI system has also undergone many improvements, including drivers for popular SCSI
chipsets that were lacking in previous kernels. PCMCIA support continues to be provided by the
kernel-external “PCMCIA Card Services” package provided with all major Linux distributions.
The CD-ROM system has been redesigned in recognition of the ATAPI CD-ROM standard, which is
almost universally supported by CD-ROM manufacturers — as a result Linux CD-ROM support is more
comprehensive. Other removable devices — such as Iomega’s ZIP drive — are now well-supported in
Linux 2.2. Various DVD-ROM drives are also supported in Linux 2.2, though file systems allowing
direct access to the DVD contents are not yet finished.
The kernel’s sound system has been redesigned, allowing it to be loaded as a kernel module,
unifying it with the rest of the kernel build and configuration process. As with previous kernels,
Linux 2.2 has a great deal of soundcard hardware support — in addition to expanded driver
functionality, the redesigned sound system will simplify configuration and management of sound
devices. Linux 2.2 also contains the “Video4Linux” suite of drivers, which provide access to
framegrabbers, FM radio cards, teletext, and related devices through a single API.
Another interesting development in 2.2 is frame-buffer console support, which is new for the
Intel x86 architecture (although previously used in several non-Intel ports). Previously the kernel
provided only a text console, while user
applications like the X Window System server were needed to drive advanced graphics cards. Now the
Linux kernel supports a range of graphics cards directly. This is a move towards a unified
kernel-centric video subsystem for Linux which should simplify video access for various applications
(including games, “SVGAlib” applications, and X Windows). As an added bonus, if Linux 2.2 is
configured to use the frame-buffer console rather than text mode, Tux the Penguin, the Linux mascot,
will be displayed on the console at boot time. This is, obviously, a key new 2.2 development!
2.2 On the Server…
Another area where Linux 2.2 will really stand out is in supporting enterprise server
applications, including Internet services (such as WWW, FTP, mail, and news), databases, network
management, routing, and firewalling. The 2.2 kernel contains a great deal of hardware support,
performance enhancements, and other features for these applications. With Linux becoming a major
player in the business and enterprise application arena (more on this below), the 2.2 kernel
features couldn’t be more timely.
Several of the core kernel subsystems — such as virtual memory and disk I/O — have been
improved
to support demanding, high-performance applications such as large-scale Web and mail servers. The
virtual memory system has undergone various performance improvements
(including optimizations for swapfile usage), and the filesystem layer includes optimizations such
as better caching for filenames.
Linux 2.2 now directly supports RAID disk configurations — arrays of hard disks used for
high-performance, fault-tolerant storage. The kernel implements both so-called “Software RAID” 0, 1,
4, and 5 modes, as well as hardware RAID controllers.
Linux support for multiprocessors has also been greatly improved in 2.2,both in terms of
functionality and performance. There is no longer a single kernel-wide spinlock for all processors.
Rather, individual subsystems in the kernel are locked in order to make them multiprocessor-safe.
The result is higher performance, as multiple processors can concurrently execute in kernel mode.
Linux 2.2 supports up to 16 processors in one system. In addition, most Linux distributions have
adopted the latest GNU libc, which contains POSIX 1003.1c threads compliant with API for
multithreading (known as “Linux Threads”). As a result, building multithreaded applications under
Linux (which take advantage of multiple CPU’s) is much easier.
Linux 2.2 contains an all-new network firewalling system, called “IP Firewalling Chains”. Along
with the ipchains administrative tool, this package allows you to implement a detailed
packet-filtering policy using a Linux machine as a secure gateway. IP Chains also supports IP
masquerading and proxying, allowing machines within a private subnet to have packets automatically
renamed and forwarded to the public Internet by a gateway machine. This is a vast improvement over
the original Linux IPv4 firewalling code, which had a number of significant limitations.
NFS (Sun’s Network Filesystem) support has improved in Linux 2.2, including in-kernel NFS server
code which, while still under development,should be significantly faster than the previous
user-level NFS server code. In addition, the older AMD (automount daemon) code is being phased out
in favor of the improved Autofs suite, resulting in better performance for automated remote
filesystem mounts.
Traditionally, Linux has boasted some of the best network performance in the industry, with a
highly-tuned TCP/IP stack capable of squeezing the maximum bandwidth possible out of the wire. Linux
2.2 includes drivers for a number of high-performance network interfaces, including the Packet
Engines G-NIC, Alteon AceNIC, and 3Com 3C985 PCI Gigabit Ethernet adapters. This work has been done
in conjunction with the Beowulf development effort, which strives to develop Linux-based software
for high-performance computation on workstation clusters. The Linux 2.2 networking system also
includes Quality of Service support, allowing applications to request different transfer rates from
the network interface. This code also permits bandwidth consumption limits to be enforced. All of
these features are vital if Linux is to be used in a high performance environment for scientific
computing or enterprise services.
Some of the Latest Commercial Software Releases for
Linux
* IBM has released a beta Linux version of its DB2 database server, available for free download
from their website (http//:www.ibm.com). This beta release does not support clustering, or several
of the higher-end features found in other versions of DB2, but it does exploit multiprocessors. IBM
has also announced that they will provide a Linux version of the popular AFS network filesystem.
* Informix has entered an alliance with Red Hat and S.u.S.E. to provide a Linux version of the
Informix Dynamic Server, which is bundled with S.u.S.E. 6.0 and available for download from Red Hat
with a 30-day free trial. After that, a single-user license is $99 for 99 days.
* Sybase has released a free trial version of the Sybase ASE Database SQL server, which is
included with the Caldera OpenLinux v1.3 distribution.
* The Interbase (formerly Borland) SQL Server has been released for Linux, and a free trial
download is available from their website at http//www.interbase.com.
* Caldera has released NetWare for Linux 1.0, allowing Linux servers to host NetWare file,
print, and directory services, and share data with Novell NetWare-based servers. It’s compatible
with NetWare 4.10b and NetWare clients for Windows 3.1/95/98, DOS, Linux, Macintosh, and UNIXWare.
* Star Division (http//:www.stardivision.com) has released the Star Office v5.0 office
productivity suite for Linux (also available for Windows 98/NT and other UNIX systems). This is more
or less a clone of Microsoft Office, including a word processor, spreadsheet, HTML editor,
presentation manager, and other tools. It is capable of reading file formats from a wide range of
similar applications (including Microsoft Office), and is available for download for a 30-day free
trial.
* And, last but not least, Corel has ported WordPerfect 8 for Linux, which includes a word
processor, spreadsheet, presentation software, personal information manager, and other applications.
A single-user license is $99.
|
The Linux Business
Software Revolution
A growing number of major players in the commercial application space are backing Linux,
offering both new products and commercial support for the operating system. Whereas the lack of
business software packages was once a barrier to Linux’s entry into the corporate environment, this
is certainly no longer the case: leading ISVs are realizing the importance of Linux to the future of
corporate computing, and are acting accordingly by moving their major products over to Linux.
Several software vendors — such as Oracle and Informix — are entering into partnerships with major
Linux distributors (such as Red Hat, Caldera, and S.u.S.E.) to enable compatibility of their
products with popular Linux configurations.
Hardware vendors are entering into the Linux arena as well. Both Hewlett-Packard and Silicon
Graphics have announced that they will provide support for Linux on their hardware systems, even
going so far as to preload Linux if requested by corporate customers. HP will assist Linux
developers in producing a version that runs on the next-generation Intel/HP Merced processor.
1999 could be the year in which Linux significantly impacts the world of corporate computing.
When Oracle released a free trial download of the Oracle 8 database package for Linux, the response
was overwhelming –there were over 10,000 downloads of the software from their website in the first
two weeks. This enthusiasm is becoming apparent industry-wide — and the best evidence for it is the
growing number of commercial software products for Linux.
At this point it might be necessary to dispel a popular myth. Linux is, itself, an open source
system — meaning that all its operating system code, libraries, compilers, and applications are
developed openly, with all source code being made freely available on the Internet. Releasing source
code in this way is the key to the Linux development process: it allows anyone to get involved, fix
bugs, implement new features, and learn how the system works. Another important aspect of this is
that nobody really “owns” Linux — application developers are not at the mercy of the economic needs
of a large corporation that controls the entire operating system API (as is the case with
Microsoft).
The fact that Linux itself is open source does not mean that applications developed for Linux
need to be open source. Any modifications or enhancements to the Linux kernel (and much of the core
system components, such as libraries and administration utilities) must have source code released,
but the same does not apply to self-contained application packages or kernel modules that do not
modify the kernel itself. As a result, ISVs are coming out in force to support commercial
non-open-source Linux applications and hardware drivers. While there is a great benefit to open
source development in general, it is not the only viable software development model, and Linux users
understand this.
It is becoming increasingly apparent that Linux presents a true alternative to Windows NT and
other UNIX-based systems for corporate computing. Considering the low cost of Linux software, as
well as the excellent support, high reliability, rapid bugfixes via the Internet, and the oncoming
wave of business application packages, coupling Linux with inexpensive PC hardware may be the best
route for corporate users to take.
Linux Gets y
The success of Linux really stems from its place on the desktop, offering a low-cost, complete
UNIX environment capable of running even in low-end PCs and laptops. Back in the days when Windows
3.1 was the best system offered by Microsoft, Linux users were exploiting full multitasking, 32-bit
protected virtual memory, and an advanced GUI environment in the form of the X Window System. Today,
of course, Microsoft has caught up on the desktop GUI side — although Windows 98 is still fraught
with bugs and instabilities due to its technically inferior design. And Windows NT is not yet a
viable platform for desktop users, especially on low-end systems.
The traditional complaints about UNIX systems are that they’re too difficult for “normal users”
to use, don’t offer seamless GUI environments, and lack desktop productivity applications. All of
this is changing with Linux, and the force is coming from two primary sources: the release
of commercial productivity applications (described above), and various projects working to build a
next-generation desktop user interface. The two most important projects
in this area are GNOME and KDE.
While they differ in a number of significant ways, GNOME and KDE have similar goals in mind: To
produce an advanced desktop GUI for Linux, as well as the toolkits and utilities needed to build
applications for that GUI. Both systems are developing an object-oriented, component-based GUI layer
on top of the X Window System. While the X Window System provides its own component application
toolkit (the “Xt” toolkit and the Athena Widget Set, among others), this interface is often
considered to be too low-level for serious application development. Likewise, X does not itself
provide language bindings other than C or C++, lacks the ability to allow applications to easily
share data (such as pasting a spreadsheet document into a word processor), and requires developers
to write a great deal of system interoperability functions into each application separately.
Applications written for the low-level X APIs do not necessarily share a common look and feel, and
have limited mechanisms to communicate with one another.
On the other hand, GNOME and KDE propose a component-based application development environment
which handles a large number of common application tasks internal to the libraries. For example,
both support the notion of “themes” — look-and-feel plug-ins which affect the graphic design and
behavior of GUI components (such as windows,buttons, and menus) universally for all applications on
the desktop. For example, a “steel” theme renders all desktop components in a metallic look. Each
application need not be written to support themes directly — the toolkit manages this.
Figures 1 and 2 show screen-shots of both GNOME and KDE. Both systems support a similar widget
set, but are highly configurable; dropping in a new “theme” under GNOME, for example, can render the
desktop with an entirely different look.
Likewise, GNOME and KDE applications can be written to expose internal functionality to other
applications, similar in nature to the use of COM in Microsoft’s WIN32 API. The idea is that a
function provided by one application — such as “render a graph from a spreadsheet” — can be used
by another application, either for sharing of information or integration of application
functionality. In order to support inter-application communication, the toolkit must provide some
means of wrapping application functions in
an externally-accessible unit known as a component. Applications then communicate by remotely
accessing the components of other applications through the toolkit.
The KDE Project’s desktop environment (http//:www.kde.org) includes a file manager, control
panel, window manager, and other utilities one would expect in a modern desktop environment. It
employs the Qt toolkit, which has recently been released under an open source license (the so-called
“QPL”). KDE has become a popular add-on to many Linux distributions, and the latest versions are
bundled with CD-ROMs from Red Hat and other distributors.
Likewise, GNOME (http//:www.gnome.org) includes similar features to KDE, using the GTK+ GUI
toolkit instead of Qt. GTK+ itself originated as the GIMP Toolkit, used by the GIMPgraphics
manipulation program — an open source alternative to Adobe PhotoShop included in most Linux
distributions. GNOME also includes support for themes and drag-and-drop functionality between
applications, and uses the DocBook SGML format for documentation, which can produce both Web and
paper-based formats from a single source file. GNOME also uses an open source implementation of the
CORBA object communication protocols to provide cross-application component access.
GNOME is very strongly an all-open source project, whereas KDE originally was not, due to the
licensing of Qt. Now that Qt has been released as open source, it remains to be seen what will
happen to the efforts. A large number of volunteers have contributed to both projects, and while the
goals are similar, the software packages themselves are not compatible. Part of the success or
failure of either project may result in a difference of philosophy: developers from the all-open
source community tend to work more closely with GNOME rather than KDE, while the KDE software is
more mature and may attract a different set of programmers to its cause. The best way to evaluate
these systems right now is to explore the websites, download the software, and try them
yourself.
Regardless, it’s clear that both GNOME and KDE are important steps towards making Linux more
accessible to desktop users. Just as importantly, the advanced application-construction toolkits
provided by these two systems will make it much easier for developers of both open source and
commercial software to base projects on Linux. Both GTK+ and Qt have been lauded as greatly
simplifying GUI development over the X Window System, and more graphical applications — with better
interfaces than previous-generation applications — are being released for Linux daily.
As is usually the case in the Linux community, two seemingly conflicted efforts to build the
same kind of system is a Good Thing — as a result the best features tend to survive, and the rest
are relegated to the history books. Because of the strength of both development efforts, it seems
very likely that at least one very good desktop environment will stay with us for the foreseeable
future.
The advent of Linux 2.2 is the beginning of a new era for Linux computing. The overwhelming
support from commercial software and hardware vendors cannot be ignored, nor can the ability of the
open source community to continue advancing the state of this operating system. We are starting to
see a real push for large-scale Linux deployment in corporate computing, both for server and desktop
use. The features provided by Linux 2.2 and the increased availability of commercial software
products bolsters the idea that Linux is changing the face of PC operating systems.
As Linus Torvalds put it, the goal is “World domination. Fast.” That day might be coming sooner
than anyone thought.
Matt Welsh is a graduate student at UC Berkeley. He is the author of Running Linux,
published by O’Reilly & Associates and can be reached at
[email protected].