UN*X History
                                       
  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.