P1: JDW
UNIX WL040/Bidgoli-Vol III-Ch-41 August 13, 2003 17:26 Char Count= 0
HOW TORECOGNIZE AUNIXSYSTEMWHENYOUSEEONE 499Stallman’s view a four-letter word in its commercial in-
carnation and licensing practice. Under Stallman’s GNU
“Copyleft” license, users can do just about anything they
want with the source code, except prohibit its further dis-
tribution in source code form. It was called a Copyleft
license because it did the opposite of the usual Copyright:
It limitednotthe redistribution of the code, but rather, any
restriction of its redistribution. The GNU Copyleft license
makes the code and the license inseparable and therefore
free.
The FSF has put out under the GNU license a prodi-
gious amount of software and has actually made the open
source movement what it is today. These GNU offerings
include compilers, shells, games, debuggers, and a host of
others. The GNU Copyleft license has also been incorpo-
rated by other efforts as well, making a wide range of free
software available for a variety of Unix platforms, com-
mercial and free.
The commercialization of Unix is also what prompted
people like Andy Tanenbaum to develop Minix, a free ver-
sion of Unix, written from scratch without a single line
of AT&T code. It is also what sparked a young student in
Helsinki, Finland, Linus Torvalds, to write his own Unix-
like kernel dubbed Linux in 1990. The ubiquitous success
of Linux has been nothing short of astounding. Linux,
however, stands within the tradition of open-source phi-
losophy, not as its instigator but rather just another par-
ticipant in a long lineage. The open source of the original
Unix and the subsequent movements that sprang up as a
result of its commercialization are the true instigators of
the open source movement.HOW TO RECOGNIZE A UNIX
SYSTEM WHEN YOU SEE ONE
What Is a Unix System?
A Unix system is an operating system that is made up of
two environments, one, called the “kernel” and the other
called the “user environment.” The kernel provides low-
level support for the user environment and interfaces the
user environment with the physical hardware of the com-
puter. Unix users operate within the user environment
level and the kernel provides constant support for a user’s
commands by providing services that may be executed
on behalf of a given user’s request. Unix users interact
with the computer through communication with a pro-
gram known as a “command shell.” It is the shell that
most users associate with Unix.Files and Directories
A Unix system provides users with the ability to store in-
formation on a disk, which provides for long-term stor-
age capabilities. Data are stored in files, and files may be
stored within directories, which are essentially composite
abstractions for storing and arranging files into related or
logical groups. That is to say, I might wish to store my
personal files in a “personal” directory, my financial files
in a directory called “money,” and my work files in an-
other directory called “work.” In reality, however, direc-
tories are just files like almost everything else on a Unix
system.Files and directories provide Unix users with an easy
way to name and arrange data that they (or the programs
they run) need to save. Files are physically stored as a
series (sometimes called a “stream”) of bytes. Directo-
ries are named files that collect or organize other files.
Files are stored on disks that are formatted as file systems.
Both files and directories may be moved from one location
(in a hierarchy) to another, renamed (in Unix, “moving” a
file from one name to another). They may also be deleted
and modified.
The Unix file is an abstraction that allows a user to put
a name on information that he or she may wish to ac-
cess again later. All the details of the physical location of
the file on the file system on the physical disk, and other
pieces of information necessary to the storage of that in-
formation, are hidden from the user (but always accessi-
ble to the curious) by the Unix file abstraction. Thus, users
can create files by naming them and also open files, read
and write data to them, and close them when they are
finished.System Users
Files do not exist on the system accidentally. They are
owned and created by users of the system. Unix systems
have users that operate in the user environment. Users
have numbers associated with them known as “userids.”
Each user also has a “username,” which is associated with
their particular userid. The username is the name under
which the user accesses the system. Users also have pass-
words that identify them as legitimate users of the system.
A user can use her userid and password to gain access to
the system by “logging on” to the system. All passwords
are stored on the system in an encrypted form, never in
plain text. No one can “see” your unencrypted password,
even a system administrator.
Users may be arranged according to logical groupings.
For instance, the users bob, jane, and linda may all be
accountants, and therefore belong to the “accountants”
group. The users bill, cindy, and ellen may be members
of the “managers” group, and the users karen, david, ian,
and evan might be all members of the “executives” group.
Groups are used to organize users into various categories,
allowing for the ability to assign certain access rights to
groups of individuals rather that on an individual basis.
There is one special user on every Unix system, and
that is the system administrator, sometimes called the
“superuser” or simply “root.” The superuser administers
the system, which includes tasks such as managing the
user community (creating accounts for users and man-
aging groups), changing permissions on files, managing
the system as a whole, scheduling system backups, in-
stalling software, and so forth. The superuser can do al-
most anything on a Unix system, so access to the super-
user’s password (sometime called the “root” password) is
highly controlled. Anyone logged in as the superuser can,
for example, read other users’ mail, read their files (unless
the user has performed additional steps such as encrypt-
ing their file data, etc.), modify other users’ files, delete
files, and so forth. A nefarious user who has obtained the
root password could, if he or she desired, delete every file
on the Unix system so that the system would no longer
start up.