|
|
Written by Jason Kroll (hyena@ssc.com) of Linux Journal.
What is Linux?
Linux, properly known as GNU/Linux, is a free, UNIX-like operating system,
developed originally for home
PCs, but which now runs on a variety of platforms including PowerPC, Macintosh,
Amiga, Atari, DEC
Alpha, Sun Sparc, ARM, and many others. Linux aims for POSIX compliancy to
maintain maximum
compatibility with other UNIX-like systems. With millions of users worldwide,
Linux is probably the most
popular UNIX-like OS in the world.
The Linux System
The central nervous system of Linux is the kernel, the operating system code
which runs the whole
computer. The kernel is under constant development and is always available in
both the latest stable
release and the latest experimental release. Progress on development is very
fast, and the recent
2.2-series kernels are simply amazing on all counts. The kernel design is
modular, so that the actual OS
code is very small yet able to load whatever functionality it needs when it
needs it, and then free the
memory afterwards. Because of this, the kernel remains small and fast yet highly
extensible, in
comparison to other operating systems which slow down the computer and waste
memory by loading
everything all the time, whether you need it or not.
Linux systems excel in many areas, ranging from end user concerns such as
stability, speed, and ease of
use, to serious concerns such as development and networking. Nowadays, Linux
even offers a variety of
commercial productivity packages and office suites which can import and export
files from other platforms,
including Windows and MacOS.
Stability
Linux has long been praised for its stability--Linux boxes are known for running
months or even years at a
time without crashing, freezing, or having to be rebooted. Linux users sometimes
poke fun at other, less
stable operating systems, by way of screensavers like BSOD (Blue Screen of
Death, which displays crash
screens from various other platforms) and games like XBill (where an evil virus
masquerading as a popular
operating system is causing machines to catch on fire).
Linux is Y2K-compliant, because it stores the date in a different way from other
computers (its trouble date
is 2038, by which time a small modification to the kernel should have solved the
problem). Also, because it
is extremely secure compared to other platforms, viruses for Linux essentially
do not exist.
Speed
Linux machines are also known to be extremely fast, because the operating system
is very efficient at
managing resources such as memory, CPU power, and disk space. More of the Web
than one might
expect is actually powered by old 486 boxes running Linux and the Apache web
server, while NASA,
Scandia, Fermilabs and others have built very powerful yet inexpensive
supercomputers by creating
clusters of Linux boxes running in parallel.
Graphical Interface
As for an intuitive graphical interface, Linux has at least a dozen different
highly configurable graphical
interfaces (known as window managers) which run on top of
XFree86, a free
implementation of the X
Window System. The most popular window managers at the moment are
KDE (the K
Desktop
Environment) and GNOME
(the GNU Network Object Model Environment). These offer
the point-and-click,
drag-and-drop functionality associated with other user-friendly environments
(for example, Macintosh), but
are extremely flexible and can take on a number of different looks and feels. If
you want a Linux box
running KDE to look just like a Mac, Windows, BeOS, or NextStep machine, you can
do it with a few
mouse clicks. Today, even complex tasks like system administration, package
installation, upgrading, and
network configuration can all be done very easily through graphical programs.
Programs that work with one
window manager nearly always work with all the others.
Software Development
Programmers often find that the Linux development environment is second to
none--a good thing for end
users who depend on these software developers to provide free software. Nearly
all development software
for Linux is free and covered under the GNU Public License, which guarantees
that it will always remain
free. Linux systems come standard with C and C++ compilers and an assembler, and
often include
Pascal, FORTRAN, and BASIC implementations as well. In addition, modern
languages like Perl and
Python and classic languages like LISP are all available, fully functional and
completely free. In addition,
the source code for nearly any Linux program is freely available (and often
included by default). This not
only means that bugs are discovered and corrected almost immediately, but
development of software
proceeds at a much faster pace than one finds even at extremely successful
commercial software houses.
This phenomenon is called Open Source and is the subject of much discussion and
amazement in the
business world, the computer world, and the press.
Networking
Networking comes naturally to Linux. After all, Linux is based on UNIX, where
computer networking more or
less developed. Probably all networking protocols in use on the internet are
native to UNIX and/or Linux, so
one can expect that UNIX and Linux would network better than any other
platforms. Setting up a network
on a Linux machine is surprisingly simple, because Linux handles most of the
work; you just have to give it
the correct addresses. Linux is made for networking. A large part of the Web is
running on Linux boxes,
especially because of the Apache Web Server which dramatically defeated its
commercial competitors,
proving the effectiveness and viability of the Open Source approach.
Productivity
Productivity software availability has exploded in recent years, and commercial
developers have been
producing excellent software for the Linux platform. Netscape Navigator and
Communicator are freely
available (with some licensing restrictions) as well as Word Perfect 8.0 and a
host of others, which often
come standard on Linux distributions. Today, it has become hard to keep track of
all the spreadsheets,
databases, and word processors. Many distributors package commercial software
with their distributions,
and many commercial producers offer free downloads, so even if a package has the
polished quality of a
professional production, you might not have to pay for it. Linux productivity
packages can usually read and
write files from productivity packages on other platforms; Linux has always
strived for compatibility and
openness. In fact, Linux is perfectly happy to coexist on the same machine as
other operating systems.
For example, you could install Linux, Windows, BeOS, and OS/2 all on one system!
This makes it
possible for new Linux users to see if they like Linux without erasing their old
OS or having to buy another
computer.
What software is available for Linux?
Linux's Open Source approach to software development has produced thousands of
pieces of software of
all varieties, which are constantly being improved. Almost all Linux software is
completely free along with
the source code, and there are many excellent archives of Linux software as well
as GNU software and
other UNIX-compatible software. If you can imagine it, it probably exists.
Applications
Whatever you want to do with your Linux system, the software for it is probably
already available, free of
charge. From household appliance control to World Wide Web tools, Linux has a
lot to offer. One
accomplishment which the free software community is particularly fond of is the
GIMP, the GNU Image
Manipulation Program, similar to Photoshop but highly extensible, completely
free, and guaranteed to stay
that way. Linux also has audio applications galore from players and recorders to
mod trackers, drum
machines, synthesizers, and synthesis languages. You can even use Linux for ham
radio and video
applications. Practicality-minded people will have no trouble making their way
to the productivity, office, and
financial packages, while computer artists will find numerous packages in
addition to the flagship GIMP
with which to work. Even sinister people like spies and secret agents can
satisfy themselves with free
encryption software.
Development Software
Peredheadaps one reason why there is so much software available for Linux is that it
is such an ideal
development platform. C, C++, and an assembler come by default on all real
distributions. Combined with
editors like emacs and vi, and virtual consoles, software development is quite
convenient. However, Linux
has all sorts of other languages available, including Ada, APL, BASIC, Dylan,
Eiffel, Euler, Forth, Fortran,
GOMscript, INTERCAL, LISP, Logo, Mercury, Modula, Oberon, Objective C, Pascal,
Perl, Prolog, Python,
Rexx, Sather, SIMULA, Tcl/Tk, and several more. These are available free of
charge, of course.
Programmers also have a choice between using gcc and egcs, the GNU C Compiler
and the Experimental
GNU Compiler System, the latter of which has become quite popular due to its
features, flexibility, and
functionality. Linux is a platform for developers.
Games
Linux has loads of games--the Linux Game Tome lists over 230 entries. Linux
games have a charm all their
own, though recently developers have turned their attention to producing slick,
commercial 3-D games. A
growing awareness of the Linux community has inspired many software publishers
to begin porting their
games to Linux, so we can look forward to many top-quality commercial programs
in the near future. Free
Linux games, however, are often of very high quality and most entertaining. As
many Linux programmers
come from other platforms, there are many ports and recreations of classic
computer games. Fans of
traditional board games such as chess and Go will find excellent interfaces for
playing on-line, and even
strong computer opponents (although admittedly the freely available chess
software is much stronger,
relatively speaking, than the Go software).
Emulation, combined with the speed of modern hardware, makes available literally
thousands of computer
games, from early games on home computers (like the Commodore 64 and Amiga) to
coin-operated
arcades. Although recently the IDSA has taken action to destroy retro-gaming and
emulation in general,
emulators remain legal and freely available, while software is never difficult
to find.
Scientific Software
UNIX was originally used by scientists and is often their preferred OS, so there
is a wealth of scientific
software available for Linux, including the TeX and LaTeX scientific typesetting
packages. There are
scientific applications for astronomy, biology, cartography, chemistry,
laboratory work, mathematics,
graphing and visualization, among others. In conjunction with the numerous
scientific and mathematical
languages available, Linux is quite at home in scientific applications and is
often used by laboratories. Any
issue of Linux Journal should contain at least one article about Linux showing
up in a scientific situation.
System Software
UNIX is an operating system for mainframes and supercomputers, so it stands to
reason that there would
be a lot of system-related software available. Since Linux is based on UNIX and
very much compatible with
it, there is also an abundance of system software for Linux. System software
includes things from
daemons (programs that run in the background) to networking (since networking is
an integral part of the
system, and not an external add-on) to file systems, hardware support,
emulation, benchmark testings,
and generic file utilities. Linux supports parallel processing (which is why it
is often used to make
supercomputers) and RAID (Redundant Array of Independent Disks), and has
resources for managing all
sorts of hardware issues which would not usually come up for home users but are
very important for
mainframes and supercomputers, including power management,
multi-user/multi-group system
administration, backup, and systems diagnostics.
Utilities
Utilities are probably familiar to users of normal home computers. Utilities are
used for things such as disk
and file manipulation, terminal customization, compression, archiving,
scripting, and other small but
important things that keep a home computer running at its best. Linux also has
files, disks, terminals,
compressions, archives, and scripts, so it also has file utilities. These are
not as serious as "system
software" but are quite useful. Linux has command-line and even graphic
interfaces for all sorts of disk and
file operations, from converting sound and audio formats to compressing,
archiving, and encrypting files.
What is GNU?
GNU
is a recursive acronym for GNU's Not Unix, a project started by Richard
Stallman, the world's leading
advocate and creator of free software. The GNU project forms the basis for most
of the important programs
which the Linux kernel depends on. One way of looking at GNU's contribution is
that GNU had produced a
massive suite of software which lacked a kernel, and Linux provided that kernel.
While this is an
oversimplification, the fact remains that the GNU software and libraries compile
and run the kernel.
Although GNU began in 1983, its roots go back to 1973 when Stallman, then at
MIT, enjoyed the freedom
and cooperation afforded by open exchange of software and source code. However,
proprietary software
ultimately destroyed cooperation between programmers and severely damaged the
production of quality
software (hence Microsoft products). In an effort to save software, Stallman
left MIT and set about creating
the first major GNU undertakings, the GNU C Compiler and GNU Emacs. Although he
was often dismissed
as crazy, gcc and emacs have become the compiler and editor of choice throughout
much of the software
world. Without these early steps, Linux probably would not exist and the Open
Source phenomenon might
not have been (re)discovered for a very long time.
Today, the scope of GNU is enormous and the project makes everything from chess
software and
interfaces to compilers and interpreters. There are countless packages now and
even GNU's website
cannot keep track of all of them. In addition, GNU created the process of
'copy-lefting', which guarantees
that free software must remain free forever, and that any software which uses
any piece of the GPL (GNU
Public License) source code will also become free. This keeps source code
floating around, and created
the open source phenomenon long before anyone caught on and gave it a name.
What are the Origins of Linux?
Linux is the brainchild of hacker extraordinaire Linus Torvalds. It began as a
project while Linus was a
21-year-old student at the University of Helsinki. He had wanted to implement an
improved (free) Minix for
his x86 PC. On October 5th of 1991, he posted the following message to
comp.os.minix:
``Do you pine for the nice days of Minix-1.1, when men were men and wrote
their own device
drivers? Are you without a nice project and just dying to cut your teeth
on a OS you can try to
modify for your needs? Are you finding it frustrating when everything
works on Minix? No more
all-nighters to get a nifty program working? Then this post might be just
for you.
As I mentioned a month ago, I'm working on a free version of a
Minix-lookalike for AT-386
computers. It has finally reached the stage where it's even usable (though
may not be
depending on what you want), and I am willing to put out the sources for
wider distribution. It
is just version 0.02...but I've successfully run bash, gcc, gnu-make,
gnu-sed, compress, etc.
under it.''
Apparently someone was interested, because shortly thereafter, there were more
developers than Linus
even knew about. Today, with a firm base of at least 10 million users worldwide,
Linux is growing
exponentially as programmers, enthusiasts, and end users exchange thoughts,
implement ideas,
contribute code, and cooperate in the phenomenon known as Open Source to produce
the operating
system known as Linux.

Written by Jason Kroll (hyena@ssc.com) in June 1999, last update July 28,
1999
|
|