The Internet's Formative Years: 1972–1975
Briefly, I turn away from the on-going development
of UNIX and C because, between 1972 and 1975, advances were being made in
other areas. These advances would have strong bearing on how and why UNIX
was chosen as the Internet's operating system.
The year was 1972. ARPANET had some 40 hosts. (In today's
terms, that is smaller than many local area networks, or LANs.) It was in that year that Ray Tomlinson, a
member of Bolt, Beranek, and Newman, Inc., forever changed Internet
communication. Tomlinson created electronic mail.
Tomlinson's invention was probably the single most
important computer innovation of the decade. Email allowed simple,
efficient, and inexpensive communication. This naturally led to an open
exchange of ideas and interstate collaboration between folks researching
different technologies. Because many recipients could be added to an email
message, these ideas were more rapidly implemented. From that point on, the
Net was alive.
Another key invention emerged in 1974: Vinton Cerf and
Robert Khan invented the Transmission Control Protocol (TCP). This protocol
was a new means of moving data across the Network bit by bit and then later
assembling these fragments at the other end.
Note
TCP is the primary protocol used on the Internet today. It
was developed in the early 1970s and was ultimately integrated into
Berkeley Software Distribution UNIX. It has since
become an Internet standard. Today, almost all computers connected to the
Internet run some form of TCP.
By 1975, ARPANET was a fully functional network. The
groundwork had been done, and it was time for the U.S. government to claim its prize. In that year, control of ARPANET was given to an
organization then known as the United States Defense Communications Agency.
(This organization would later become the Defense Information Systems
Agency.)
What remained was to choose the official operating system
for ARPANET. The final choice was UNIX. The reasons that UNIX was chosen
over other operating systems were complex. In the next section, I discuss
those reasons at length.
UNIX Comes of Age
Between 1974 and 1980, UNIX source code was distributed to universities throughout the country. This,
more than any other thing, contributed to the success of UNIX.
First, the research and academic communities took an
immediate liking to UNIX. Hence, it was used in many educational exercises.
This had a direct effect on the commercial world. As explained by Mike
Loukides, an editor for O'Reilly & Associates and
a UNIX guru:
Schools were turning out loads of very competent computer
users (and systems programmers) who already knew UNIX. You could therefore
"buy" a ready-made programming staff. You didn't have to train
them on the intricacies of some unknown operating system.
Also, the source was free to universities and therefore,
UNIX was open for development by students. This openness quickly led to
UNIX being ported to other machines, which only increased the UNIX user
base.
Note
Because UNIX source is widely known and available, more
flaws in the system security structure are also known. This is in sharp
contrast to proprietary systems. Proprietary software manufacturers refuse
to disclose their source except to very select recipients, leaving many
questions about their security as yet unanswered.
UNIX continued to gain popularity and in 1978, AT&T
decided to commercialize the operating system and demand licensing fees
(after all, they had obviously created a winning product). This caused a
major shift in the computing community. As a result, in a stunning move to
establish creative independence, the University of California at Berkeley created its own version of UNIX. The Berkeley distribution was extremely
influential, being the basis for many modern forms of
commercial UNIX.
So,in brief,UNIX was chosen for several reasons,including
the following:
·
UNIX was a developing standard.
·
UNIX was an open system.
·
UNIX source code was publicly available for scrutiny.
·
UNIX had powerful networking features.
UNIX and the Internet Evolve Together
Once UNIX was chosen as the Internet's operating system, advances in UNIX were incorporated into
the Internet's design. Thus, from 1975 onward, UNIX and the Internet
evolved together. And, along that road, many large software and hardware
manufacturers released their own versions of UNIX. The most popular
versions are listed in Table B.1.
Table
B.1. Commercial Versions of UNIX and Their Manufacturers
|
|
UNIX
Version
|
Software
Company
|
|
SunOS &
Solaris
|
Sun
Microsystems
|
|
HP-UX
|
Hewlett-Packard
|
|
AIX
|
IBM
|
|
Digital
UNIX
|
Compaq
|
|
Linux
|
Open
Source—Multiple Distributors
|
Many of these UNIX flavors run on high-performance
machines called workstations. Workstations
differ from PC machines in several ways. First, workstations contain superior hardware and are therefore more expensive. This
is due in part to the limited number of workstations built. In contrast,
PCs are mass produced, and manufacturers constantly look for ways to cut
costs. A consumer buying a new PC motherboard therefore has a much greater
chance of receiving faulty hardware. Moreover, workstations are typically
more technologically advanced than PCs. For example, onboard sound,
Ethernet, and SCSI were standard features of workstations in 1989. In fact,
onboard ISDN was integrated not long after ISDN was developed.
Linux is an interesting version of UNIX. It was designed
to run on PC hardware and is freely available. This combination, plus the
reliability of Linux, has made it
an important platform for Internet servers.
Note
Technological advantages of workstations aren't always
immediately apparent, either. Often, the power of a workstation is under
the hood, obscured from view. For example, many workstations have extremely
high throughput, which translates to blinding speeds over network
connections and superb graphics performance. In fact, SGI and Sun now make
machines that have absurd throughput, measuring hundreds of gigabytes per
second.
High-end performance comes at a terrific price. In the
past, workstations would set you back five, or even six, figures.
Naturally, for average users, these machines are cost prohibitive. In
contrast, PC hardware and software are cheap, easily obtainable, simple to configure, and widely distributed. However,
over the past few years, workstations have dropped greatly in price and now
are just slightly more expensive than PCs.
However, we are only concerned with UNIX as it relates to
the Internet. As you might guess, that relationship is strong. Because the U.S. government's Internet development was implemented on the UNIX platform, UNIX contains
the very building blocks of the Net. No other operating system had ever
been so expressly designed for use with the Internet.
Let's have a
brief look at UNIX before continuing.
The Basic Characteristics of UNIX
Modern UNIX runs on disparate hardware, including
IBM-compatibles and Macintoshes. Installation differs
little from installation of other operating systems. Most vendors provide CD-ROM
media. On workstations, installation is performed by booting from a CD-ROM.
You are usually given a series of options and the remainder of the
installation is automatic. On other hardware platforms, a boot disk that
loads a small installation routine into memory generally accompanies the
CD-ROM.
Starting a UNIX system is also similar to booting other
systems. The boot routine takes quick diagnostics of all existing hardware
devices, checks the memory, and starts vital system processes. In UNIX,
some common system processes started at boot and
include the following:
·
Electronic mail services
·
General network services
·
Logging and system administration services
After the system boots, a login prompt appears. Here, you
provide your username and password. When login is complete, you are dropped
into a shell environment.
Note
A shell is an environment in which commands can be typed
and executed. A shell interpreter then translates those commands to machine
language for processing. In MSDOS, for example, the shell is COMMAND.COM. The user interfaces
with the shell by typing commands (for example, the
command DIR to list
directories). In this respect, at least in appearance, basic UNIX
marginally resembles MS-DOS. All commands are entered using the shell.
Output of commands appears on the monitor unless you specify otherwise.
Navigation of directories is accomplished in a similar
fashion to navigation of a DOS system. DOS users can easily navigate a UNIX system using the conversion information
in Table B.2. The UNIX commands listed here
operate identically or very similarly to their DOS counterparts.
Table
B.2. Command Conversion Table: UNIX to DOS
|
|
DOS
Command
|
UNIX
Equivalent
|
|
cd \ <directory>
|
cd
/<directory>
|
|
dir
|
ls -l
|
|
dir \ directory
|
ls /directory
|
|
dir /w
|
ls
|
|
chkdsk drive
|
fsck drive/partition
|
|
copy filename1
filename2
|
cp filenme1
filename2
|
|
edit filename
|
vi filename
|
|
fc filename1
filename2
|
diff filename1
filename2
|
|
find text_string
|
grep text_string
|
|
format drive
|
format
drive/partition
|
|
mem/c|more
|
more /proc/meminfo
|
|
move filenme1
filename2
|
mv filename1
filename2
|
|
sort filename
|
sort filename
|
|
type filename|more
|
more filename
|
|
help
<command>
|
man <command>
|
To learn more about basic UNIX
commands, go to http://www.geek-girl.com/Unixhelp/. This
archive is a comprehensive collection of information about UNIX. Or for
good printed documentation, I recommend UNIX Unleashed (ISBN
0-672-31411-8), a title that provides many helpful tips and tricks on using this popular operating system.
What Kinds of Applications Run on UNIX?
UNIX runs many different applications. Some are
high-performance programs used in scientific research and artificial
intelligence. However, not all UNIX applications are so specialized.
Popular, commercial applications also run in UNIX, including Adobe PhotoShop,
Corel WordPerfect, and other products commonly associated with PCs.
In all, modern UNIX is like any other platform. Window
systems tend to come with suites of applications integrated into the
package. These include file managers, text editors, mail tools, clocks,
calendars, calculators, and the usual fare.
A rich collection of multimedia software can be used with
UNIX, including movie players, audio CD utilities, recording facilities for
digital sound, two-way camera systems, multimedia mail, and other fun
things. Basically, just about anything you can think of has been written
for UNIX.
UNIX in Relation to Internet Security
UNIX security is a complex field. It has been said that UNIX is at odds with itself,
because the same advantages that make UNIX a superb server platform also
make it vulnerable to attack. UNIX was designed as the ultimate networked
operating system, providing you with the ability to execute almost any
application remotely and transparently. (For example, UNIX enables you to
perform tasks on one machine from another, even though those boxes are
located thousands of miles apart.) As such, by default, UNIX remote
services will accept connections from anywhere in the world.
Moreover, UNIX is an open system, and its code is publicly
available. So, just as researchers can look at UNIX code and find
weaknesses so can computer criminals, crackers, and other malcontents.
However, UNIX is a mature operating system and over the years, many
advances have been made in UNIX security. Some of these advances (many of
which were implemented early in the operating system's history) include the
following:
·
Encrypted passwords
·
Strong file and directory-access control
·
System-level authentication procedures
·
Sophisticated logging facilities
UNIX is therefore used in many environments that demand
security. Hundreds of programs are available to tune up the security of a
UNIX system. Many of these tools are freely available on the Internet. Such
tools can be classified into three
basic categories:
·
Security-audit tools
·
System-logging tools
·
Intrusion-detection tools
·
Encryption tools
Security-audit tools are programs that automatically
detect holes within systems. These check for known vulnerabilities and
common misconfigurations that can lead to security breaches. Such tools are
designed for wide-scale network auditing and, therefore, can be used to
check many machines on a given network (thousands, if you want). These
tools are advantageous because they automate base-line security
assessments. However, these tools are also liabilities, because they
provide powerful capabilities to crackers who can obtain them just as
easily.
System-logging tools record the activities of users and
system messages. These logs are recorded to plain text files or files that
automatically organize themselves into one or more database formats.
Logging tools are a staple resource in any UNIX security toolbox. Often,
the logs generated by such utilities form the basis of evidence to build a
case against a cracker. However, deep logging of the system can be costly
in terms of disk space and
bandwidth.
Intrusion-detection tools are programs that automatically
detect patterns that suggest an intrusion is under way. In some respects,
intrusion detection tools can be viewed as intelligent logging utilities.
The difference is that the logs are generated, analyzed, and acted upon in
real-time.
Lastly, encryption tools allow data to be encrypted. The
data might be encrypted on the hard drive so others can not read it. Data
being sent across the Internet can also be encrypted, so that people cannot
intercept and read the transmission.
Despite these superb tools, however, UNIX security is
difficult to achieve. UNIX is a large and complicated operating system and
hiring true UNIX security experts can be costly. For although these people
aren't particularly rare, most of them already occupy key positions in
firms throughout the nation. As a result, consulting in this area has
become a lucrative business.
|