|
Oak Park Computer Club: Articles |
Mostly written by me,
mostly for the OPCC.
Comments
welcome!
|
Author's note: this article is based on a presentation to the
Oak Park
Computer Club. Most members are over retirement age and all
members are users of Microsoft
Windows,
hence the tone and perspective of this article. Also see my
article Alternative_OS.
This article is not intended to "convert" anyone from being a user of Microsoft Windows to being a Linux user overnight. I strongly doubt that most of the readers of this article will be Linux users within the next two to three years, although after that all bets are off. In fact, I am still a Windows user about 10% of the time -- and I am still working hard to learn Linux as quickly as possible.
Since Microsoft has said (both in public and in private) that they view Linux as a competitive threat, it's useful to know about it from that standpoint as well. With local, state, and national governments around the world looking at Linux and open source software as an alternative to proprietary software and file formats (including, but not limited to, Microsoft), this struggle may come to affect us all, directly or indirectly.
Nor is this article intended to
teach you Linux. Instead, this
article is intended as an introduction to a wider world of
computing. An analogy: if you have driven a Chevy all
your life but
have never driven a Ford, how do you know that driving a Ford
might not suit you better--or at least make you aware of what you
are missing?
A
comparison to a car is a useful analogy, because we can take it
further (no pun intended). If the kernel,
the heart of the operating system, is the engine and the
computer hardware is the chassis,
then the BIOS is the transmission,
and the programs built around the k ernel to form the operating system
as a whole comprise suspension,
steering, brake, shifter, and
accelerator.
GNU/Linux is an operating system (OS). Windows 98 and Windows XP are also OSs. The term Linux by itself is, technically, in reference to just the kernel--and just as the nature of an automobile is determined by more than just the engine, so there is more to GNU/Linux than just the kernel--but to make things simpler, we will use the term "Linux" to mean the whole operating system package, sometimes referred to as a distribution or distro for short.
Just as Fords, Chevys, Chryslers, and Toyotas can share the same roads, so a diversity of operating systems should be able to share the so-called "Information Superhighway". This is not entirely true at the present time, as many web sites are not only "optimized" for Internet Explorer--they will only properly function when accessed with IE as the browser. If we liken Microsoft to GM, say, Apple to Ford, and Linux to Chrysler it's possible to say that the "driving experience" differs one from another, though the variation between the computer operating environments is greater than for cars. It's actually more like one brand of car has a steering wheel and another steers with a joystick; they are both practical means to the end of steering the car, but the experience will be noticeably different from the driver's seat.
This is certainly not an insurmountable problem. To continue with our car analogy (hey, I was raised in Detroit--I can't help it), you can think of the graphical user interface (GUI) on a computer to be like a set of wheels; different cars have differently styled-and-sized wheels, but they are all made from the same materials and all serve the same purpose.
To
change the analogy, we can also refer to "genetic diversity". The
fact
that Windows dominates the desktop is, in some ways,
dangerous. The recent experiences with the SQL
Slammer
and
MSBlaster worms and the SoBig,
MyDoom, NetSky,
and Bagle viruses show how
reliance on one operating
system can lead to trouble--if not for the fact that Windows server
software installations actually represent a minority of the web
servers on the Internet,
the
damage might have been much greater in these cases (Unix and its
descendants--Linux,
Solaris, and BSD--are actually the majority). Think of all
the attacks that
Windows is subject to--admittedly, a small part of this is due to the
fact that
Windows
is the dominant operating system on the desktop, a bigger target--it is
clear that there
are serious structural shortcomings in Windows that make it
more vulnerable to attack. Much of that vunerabilty lies in its
history.
A (Very) Brief History of Modern Computing
MS-DOS
(and, by extension, Windows through the Me version) had its
roots in CP/M, was single-user
(at a time), and had no network
support at the most basic level. Windows NT
(which
includes
Windows 2000 and Windows XP) is better, but still has
some inherited vulnerabilities, as well as some new ones.
Programmers
and managers involved in the development of what became Windows version
4 (Windows 95/98/Me) have admitted in print that no consideration of any kind was given to
security. One piece of evidence to this was that the
original 1995 edition of Bill Gates' book The Road Ahead
did not once mention the Internet--he added a chapter in the next
edition and bought back every first-edition copy he could find.
On the
other hand, Linux was modeled on UNIX--which, even by that time, had
over 15 years of
multi-user network experience behind it--so it had networking and
security built right into the kernel.
A
little history might illuminate the reasons for these
differences. I'm
not going to go into too much
detail--I'm saving that for a
later series of articles--but it will help in the understanding of
why this matters.
Multics
(Multiplexed Information and Computing Service) was a multi-user
operating system jointly developed by the Massachusetts Institute
of Technology (MIT), General Electric, and Bell
Telephone Labs starting in 1965. Funded by the U.S.
government,
the project did not go well. Bell Labs dropped out in 1969 and GE
sold their computer operation to Honeywell a year later.
At
most there were about 150 Multics installations, all on
multi-million-dollar mainframe computers. The last Multics system
went dark in 2000.
The
Bell Labs developers applied what they had learned to a simpler
system, which became known as Unix; in fact, the
original
application was as a word-processing system within the lab
itself. Unix
ran on early Digital
Equipment Corporation (DEC)
PDP-series computers (what we would now call minicomputers)
such as the PDP-11.
While still expensive, they were at
least
two orders of magnitude less costly than the Multics machines. ARPANet,
the predecessor to the Internet, was first
implemented on Unix machines, so networking was important early on.
Then
came the dawn of personal computers. In 1976, the Altair 8800
microcomputer system was introduced. A couple of programmers by
the
name of Bill Gates and Paul Allen
developed what later became
Microsoft BASIC on a DEC PDP-10 running an
emulator (and, allegedly,
by dumpster-diving
DEC's BASIC code). At
about the same time, Gary Kildall of Digital
Research
developed the CP/M operating system using the same emulator
software. Three years later, QDOS (Quick and
Dirty
Operating
System) was developed as a clone of CP/M for the 16-bit i8086
processor family later used in the IBM Personal Computer and
its clones (the 8086 and its successors right through the Pentium
4 are now usually referred to generically as x86). Microsoft bought the
rights and QDOS became MS-DOS 1.0. MS-DOS
2.0 and later borrowed heavily from Unix -- but at the core it was
still QDOS.
The
mid-1980s saw the rise of graphical user interfaces including the Apple
LISA and Macintosh,
GEM (Graphical
Environment Manager), and
Visi-On.
This spurred Bill Gates to press his team into
the
development of Microsoft Windows. At about the same time, a
network-oriented GUI interface layer called the X window system
was
developed for Unix. It's important to note that the X window
system is not
the
actual user interface, but the set of "hooks" that enable a
GUI to properly access system resources either locally or across a
network.
By
the late 1980s, the IBM PC and its clones were firmly entrenched--but
none of them were powerful enough to run Unix (at the time, the one
personal computer
to run a "real" Unix was the non-PC-clone Amiga 3000UX).
Student time
on
university time-share systems was available, but in order to teach
operating system design at the kernel level, one-on-one human-machine
interaction was required. A Dutch professor developed MINIX
(MINi unIX) so students could work on a "live" PC system at
the kernel level.
At
about the same time, the Free
Software
Foundation was
founded. Its main project was GNU (GNU's Not Unix), a
suite of tools
and utilities that were Unix-compatible, but no PC could run them at
the time. Another part of this project was the GNU General
Public
License (GPL) which set the terms under which GNU (and other
programs since) could be distributed. Thus, the stage was set.
In
1991, Linus
Torvalds, a young Finnish computer-science
student, started playing with MINIX. He had seen Unix and the
multi-tasking Amiga OS and wanted to do something similar
for the x86
systems. He posted a note on a Usenet newsgroup and
soon
had
a team of volunteers working to enhance his new kernel. The MINIX
code was soon replaced, and the project had a name: Linux
(Linus' Unix). Soon, most GNU software was compiled for the Linux
kernel and a true operating system was born.
At
about the same time X windows, too, was cloned. A GPL'ed version,
eventually called xFree86,
was soon ported to (adapted
to run on) Linux. By 1994, the project had reached critical
mass. Soon,
commercial versions of Linux appeared, the best-known of which
these days is Red Hat.
Linux was not (and is not) the only Unix descendant on the market. BSD (the Berkeley Standard Distribution) was also making headway in 1995 when it hit a major bump in the road; AT&T sued the developers for program code infringement, since they held the intellectual property rights from Bell Labs. AT&T lost the suit big-time, but momentum was lost to Linux. BSD is still widely used on servers because it is considered to be somewhat more secure than Linux, but the gap is narrowing. The current Apple Macintosh OSX operating system is based on Darwin, a version of BSD.
One
drawback to the "free" nature of Linux is that, unlike
Windows, there is no one group or organization that controls anything
beyond the kernel itself. Thus, the Linux OS has multiple
versions
available--each distribution slightly different from the others.
One
major point of variation is in the desktop environment; I mentioned
earlier that the X window system
is an interface layer, not a desktop GUI itself. There are
actually
several desktop managers available--the two best known are KDE
(the K Desktop Environment, currently version 3.3)
and GNOME (the GNU
Network Object Model Environment,
currently version 2.6). Of the two, KDE is slightly more
popular--but this fragmentation is one of the hurdles that Linux
must overcome to gain greater acceptance by individual desktop
users.
Another
hurdle is the variety of distributions available--the
aforementioned Red Hat being one,
SUSE (now owned by Novell) being
another, and
Mandrake
yet a third. These are commercial distros, with
packages
available for prices ranging from $30 to over $100. This pays for
media, documentation, and support--but they also have
freely-available versions of essentially the same thing, with little
or no direct support (this is where mailing lists, forums, and
newsgroups come in handy). There are also several truly free
distributions, the
best-known of which are Debian
and Slackware.
There are also a number of
distributions based on Debian, including the commercial distributions
Xandros and Lindows
(now referred to as Linspire), as well as Knoppix, a free
CD-bootable version of Linux--and then there are the distributions
that require the user to compile the code themselves, Linux from
Scratch and Gentoo
being two examples.
The upside to this is amazing flexibility. There is a Linux distribution put together by the Chinese government (Red Flag Linux). There's a distribution for an Arabic audience (Haydar Linux). There are multiple versions based on Knoppix, including the education-oriented Freeduc and Tux4Kids, as well as one devoted to medical research software. This is all made easier by the fact that there is substantial user-level public information available on how to create such discs.
Of
course, Microsoft is not standing still while all this is going on,
though their traditional strategies for dealing with competition do
not work very well in this case, partly because there is no one
competitor to deal with. FUD (fear, uncertainty, doubt)
and
embrace and extend (adopting industry standards, then
modifying them to make them proprietary) just don't work as well
these days as they used to, partly because these tactics were outed
in late 1998; a series of leaked Microsoft internal memos now
referred to as the Halloween
Documents outlined the threat to
MS posed by Linux and open source software and possible
responses. More
recently, MS executives have been fighting the rising tide of
open source adoption in schools and government; in the spring of 2003,
Microsoft President
and CEO Steve Ballmer took a trip to Munich, Germany in an
attempt to prevent the city government there from adopting open
source for their municipal computer network; in spite of quoting a
lower price than the competition, he failed. Legislators in
Texas,
Oregon, and elsewhere have discussed this issue, with well-paid
lobbyists from
Microsoft arguing against it. With the present state of the
economy,
some schools feel that it makes more sense to use money that
would otherwise be paid for proprietary-software
licenses to instead keep
teachers from being laid off.
No
matter how these issues play out, they will definitely affect all
computer users, no matter what kind of software you use. That's
why
I feel that it is important to be aware of how we got here and have
some idea of where we might be going.
Last revised: 19-September-2004.
Copyright
© 2004
Michael
Rudas. All rights reserved.
The opinions expressed in
this article are not necessarily those of the other members of the
Oak Park Computer Club.
All
trademarks are the property of
their respective owners. This article was created using the EditPad
Classic text editor and Mozilla
Composer HTML editor, both
free. Permission is hereby granted to publish this article in an
unmodified form, except for formatting (contact me for changes or
updated versions). Technical questions and help requests can be
directed to my tech-support mailbox, the link to which can be found on
my site.