From: Timothy Newsham To: 0xdeadbeef@substance.blackdown.org Date: Fri, 14 Jul 1995 20:50:19 -1000 (HST)


This one is one of my favorites.

                                Tim N>

----
Unix History

From: yee@dali.berkeley.edu (Peter E. Yee)
To: hackers_guild@ucbvax.berkeley.edu
Subject: Reprinted without permission (but worth it)
Date: 26 Mar 86 10:00:06 PST (Wed)

This month's issue of Computer Language magazine is great. They did an April
Fool's issue with a lot of good material. For starters, the subscription card
comes in all magazines and falls out when you open it reads:

     THIS CARD IS A DAMNED NUISANCE!

     Here you are ready to curl up with COMPUTER LANGUAGE and this piece
     of junk falls in your lap! Your choices are few. You can waste your
     time and energy repeatedly trying to stick it back in the magazine.
     OR -- you can take the easier, more satisfying route -- mail this
     "damned nuisance" back to us!

Inside there is a disclaimer for everything imaginable, plus some injunctions
about reading the magazine on the beach, subrenting it, lending it, etc. Our
lawyer has EIGHT SETS OF HANDCUFFS AND A BIG CAN OF TEARGAS in his briefcase.

Articles include such gems as "Computing at Chaos Castle" by Jerry Richnelle,
"My Life as a Forth Interpreter" by K., and "Fame and Lotus-cloning in Chicago"
by Dr. Hunted S. Johnson.

Aside from the obvious interest in the centerfold (Sandi Pasquale 36K - 24K -
36K), there is an article on UN*X, which I have reproduced below without
permission, spelling checking, or anything else that might have been useful but
time consuming.

-------------------------------------------------------------------------------

UN*X

By Alan Filipski

The UN*X brand operating system was writting by two computer science
researchers in a closet in the attic of a famous research laboratory (The Labs)
in the late 1960s. The authors had complete freedom to design an operating
system according to their own wishes without management constraints. This was
because everyone at The Labs, including the management, thought they were
janitors who spent their time in the closet wringing out mops or something.

The first version of the UN*X brand operating system was a game that simulated
the gravitational motion of all known planets and satellites of our solar
system. Soon such things as a file system and user procedures were grafted onto
it. It ran on a PDP-7 computer that someone had stored in the closet and
forgotten about.

Later the authors made the mistake of drawing attention to themselves by asking
the management for a larger computer. At this, the management took the
operating system and, supposing it to be something of use only to hippies (or
closet hippies), sent it University of California at Berkeley.

It may be coincidental, but at the about the same time cases of a peculiar
compulsive mental disorder known as Unirexia Nervosa were first noted in San
Francisco, Calif. area. The symptoms of this disorder are the interjection of
nonsense words such as grep, awk, runrun, and nohup by the victim into his or
her speech; the misuse of ordinary words such as cat and lint; and the
avoidance of the use of uppercase letters.

Advanced cases of Unirexia Nervosa have been found at many major universities
throughout the U.S., where youths with pasty complexions and sunken eyes can be
found late at night subsisting on diet pop, glaring fanatically at CRT's, and
mumbling about "one more bugs". Since for the most part this malady has been
confined to university students, it has not cause great public alarm. But
recently there have been reports of regular people contracting the disease,
even some who hold otherwise respectable positions in industry. The mode of
transmission of Unirexia Nervosa is not known, but it is thought to have
something to do with beards.

Members of the UN*X community have developed a novel and effective means of
communication with each other. Suppose a user named Athol at Epizootic Systems
in Cupertino, Calif., wishes to send an electronic mail message to his friend
Elba at Perjorative Systems Inc. in Palo Alto, Calif. Although their computers
do not communicate directly, they message may be passed via intermediate links.
Athol would merely type:

mail ihnp4!allegra!ucbvax!seismo!decvax!cbosgd!ucbvax!pejor!elba

and then enter the text of his message. This electronic mail would appear at
Elba's terminal either within two days of the time it takes to propagate a
telephone signal 73 times between the East and West Coasts of the U.S.,
whichever is greater.

Although many people think the word "UN*X" is an acronym (or even a homonym),
the word actually originated in the following manner. When management in The
Labs noticed the strange machine running in the closet, they stopped the first
technical-looking type they saw in the hall and asked him what it was. As fate
would have it, it was not a technical type at all but a member of a lost
Australian aboriginal tribe who had been wandering the halls of The Lab for
years without drawing attention. The fellow did not understand English and
believed they were asking him to haul the computer away. He replied,
"UN*X(tm)," which is aboriginal for "Not my job, man." The rest is history.

The different versions of the UN*X brand operating system are numbered in a
logical sequence: 5, 6, 7, 2, 2.9, 3, 4.0, III, 4.1, V, 4.2, V.2, and 4.3.

The C programming language is descended from the languages B and BCPL (short
for Bucephalus, Alexander the Great's horse). It is a highly structured
language. The following structured program, for example, is well-known to all C
language programmers, and prints a well-known message at the terminal (try
it!):

#define TWENTYNINE 29
int ll, L1, l0, h_1,q,h1,h;
main(){
        for(putchar(putchar((h=7)*10+2)+TWENTYNINE);
                l0?putchar(l0):!h_1;
                putchar (ll),L1==2?ll=' ':0){
        L1++==0?(ll=l0=54<<1):
                ll=='l'&&L1<3?(ll+=1L|
                1L<<1L,l0=0)
        :L1==sizeof L1&&ll==' '
                ?(ll=19+h1):(q-=h1);
                L1==5?ll-=8:q&& &
        h_1;L1==sizeof ll+2?
                (ll+=3):1L;ll==(h<<4)+2
                &&L1!=6?(ll=ll-
        6):(h1=100L);L1!=1L<<3?q--
                :(h_1=ll=h1);
        }
printf("%s\n",0);


Note the absence of goto statements in the program. Also note how the
portability of the program is enhanced by judicious use of the C preprocessor
and the sizeof operator. The dereferenced null pointer at the end is used to
make sure the output is properly terminated.

The most commonly used UN*X interactive command language is known as the Bourne
shell. (This shell was recently completely rewritten and is now available as
the Bourne-again shell.) The shell provides a uniform syntax by which the user
can interact with the operating system kernel and utility programs. The utility
programs in turn accept a uniform syntax of command line arguments and options.
Typical examples of utilities are the ar utility, which requires single-letter
options that are lumped together in a specified order with an introductory
minus sign, before the other arguments; and the find utility, which has
multiletter options that cannot be lumped together, each of which must be
preceded by a minus sign and which follow any other arguments.

Besides being used interactively, the shell itself may be used as a programming
language. Although programs written in shell are slower than equivalent
programs written in C, they are shorter and easier to read and debug. For
example, to add 1 to a variable a in C one would have to write:

a = a + 1;

or:

a += 1;

or even:

a++;

In shell, one need only write:

a = `expr $a + 1`

where it is essential to have spaces around the + sign to use the $ sign only
before the righthand occurrence of the variable a, and to use the backward
quote character instead of the common single quote. When UN*X brand operating
system programmers want to develop an application quickly, they often use the
shell because of this convenient syntax.

Security is a very important issue in the UN*X brand operating system world.
The typical UN*X brand operating system source licensee is living in a fool's
paradise, little realizing that on the streets of every major city wander
broken hackers who would kill for access to kernel source code. These people
may be down on their luck, but they are not stupid. As you read these words,
there are people who but for lack of a quarter would be whistling uucp
protocols at 1200 baud to your modem from a downtown pay phone.

Therefore, the prudent administrator should be aware of common techniques used
to breach UN*X brand operating system security. The most widely known and
practiced attack on the security of the UN*X brand operating system is elegant
in its simplicity. The perpetrator simply hangs around the system console until
the operator leaves to get a drink or go to the bathroom. The intruder lunges
for the console and types rm -rf / before anyone can pry his or her hands of
the keyboard. Amateur efforts are characterized by typing in such things as ls
or pwd. A skilled UN*X brand operating system security expert would laugh at
such attempts.

The Trojan horse strategy is used in many attempts to defeat the security of a
UN*X brand operating system installation. The following scenario is typical:
The UN*X brand operating administrator arrives at work one afternoon and finds
a new terminal outside the system security area. Since it is better than the
current system console, he brings it in to the computer. After a few minutes of
use, hordes of cockroaches come pouring out of the back of the terminal, driven
out by the heat. The operator jumps up to stamp them out and the intruder has
his will with the system.

How can this sort of damage be prevented? The greatest weakness of the UN*X
brand operating system is the fact that the superuser root is so powerful.
Therefore, an important principle is simple to minimize the use of root. An
ingenious way of doing this is to first, without looking, set the root password
of the system to some randomly generated string of character. Do not memorize
or even look at this string. Now set up the /etc/inittab file with the run
level 2 flag that will cause it to demand this unknown password whenever the
system is booted. The system is now secure. Log off.

What can a system administrator do if he suspects that some has broken root?
Simple. First, at the slightest suspicion that someone has unauthorized access
to the superuser capability, immediately seal off the computer room, sound the
fire alarm, release inert halon gas into the atmosphere, and activate the
automatic sprinkler system. Type "shutdown 0" and cut all circuit breakers to
the computer. Physically destroy all magnetic media that have ever been mounted
on or associated with the insecure system in any way. Order a new distribution
and reboot.

An administrator who is aware of these methods can maintain a sufficient degree
of paranoia for most applications.

It has often been said that if God had a beard, he would be a UN*X programmer.
While this may be an exaggeration, it is true that UN*X brand operating system
is well on its way to replacing the outmoded 10- and 15-year-old operating
systems in common use today.