-----BEGIN PGP SIGNED PAGE-----

A Short Unix Primer

By Bradley Alexander
Appeared in the February, 1997 issue of the St. Louis PC Journal

In last month's article, I extolled the virtues of the Linux operating system. This month, I will go into some of the advantages of Linux and Unix in general and provide some background and history of Unix.

The Unix operating system was "born" in 1969 at AT&T Bell Labs in New Jersey as a result of the efforts of Ken Thompson and Dennis Ritchie. Bell Labs was involved in an operating system project called MULTICS. When AT&T pulled out of the MULTICS project, they were still in need of an operating system for their PDP-7 computer. Thompson and Ritchie (who also went on to write the C programming language with Brian Kernighan) developed a new single-user operating system for their use. In a tongue-in-cheek poke at their former project, they substituted UNI for MULTI and X for CS, naming their new creation UNIX. In 1971, Unix was rewritten to be multiuser and multitasking. Two years later, in 1973, after developing the C programming language with Kernighan, Ritchie rewrote Unix in C. This revolutionized Operating System technology by making the internal source code (the actual programs) available to system administrators and developers. As a side note, Unix and C were developed around the same time as the initial work on the Internet, which is one of the reasons that TCP/IP networking is integral to the operating system.

This source code availability and openness is both a blessing and a curse. Each site or user, with no more than a knowledge of C and an understanding of their machine, can rewrite parts of Unix to optimize it for their own computer. The curse is a product of the ease in overhauling or rewriting major parts of the operating system. Currently, there are somewhere between 50 and 100 "flavors" of Unix. The original AT&T code was released to many educational institutions at no cost but without any manner of technical support. One particular institution, the University of California-Berkeley, took Unix and created in its own image. This variant of Unix is called the Berkeley System Development or BSD. Most versions of Unix can trace their lineage back to either AT&T Unix (the current release is called System V) or BSD. The BSD distribution of Unix immediately gained popularity with Unix users. In addition to its more lax distribution rules, there was also technical support available. Thus the two main branches of Unix family tree set out on seemingly divergent courses.

Unix is a true multitasking, multithreaded, multiuser operating system. What does all of that mean? Well, multitasking means that the operating system can handle doing multiple tasks simultaneously. In Unix, each task is known as a process. Each process operates independently from other unrelated processes. Each process is given a Process ID or PID. For instance, if you were to sign on to a Unix machine, your logon session would be given a unique PID and would be independent from other processes at work on the computer. Let's say, for instance, that you signed on to your Unix box and started your ppp client to surf the Internet. After this, you started Netscape to hit the WWW, then you started an ftp session to pull files down from your favorite archive site. Each of these processes would be a separate entity with a separate process ID, which could be manipulated separately. Some processes are even independent from the process that starts it (its parent process). The ppp process, for instance, would remain active even though the person started it signs off.

Multithreading is the ability of a process to spawn other independent processes in order to speed its operation. Consider the example above in which you are using your Netscape Navigator to surf the Web. You find a new file that you wish to download. After starting the download, you remember that there is an important email message that you need to send. You scroll over on the taskbar to Netscape Mail and decide to see if you have any more pressing mail messages. While you are waiting for the mailer to pull your mail, you compose and send your message. As your mail message is being sent, you go back to your navigator and select a link to follow. The web browser, the mail reader, the mail sender, and the download are all processes that are spawned by Netscape in order to do a job. They are each running simultaneously, enabling you to be able to send a mail message (and everything else you were doing) while downloading a file. Each of these is called a thread. Unix's ability to process literally hundreds of threads is one of the strengths which has enabled it to remain a strong operating system for 30 years.

Multitasking and multithreading is essential for Unix to be a multiuser operating system. Simply stated, more than one person can be signed onto and active on a Unix system. This is one of the reasons why most Internet sites have traditionally been Unix platforms, either Sun workstations, or Linux boxes or one of the variety of "flavors" of Unix. Even for PC-based Unix incarnations, you can hang terminals off of standard com ports and actually connect using a standard communications program like Procomm Plus. I have a cable off of my PC (which lives in my basement) across the house, under the floor, and through into the living room. Using this cable, which is configured as a null-modem cable, I can get a logon screen on my computer downstairs. I can even initiate a ppp connection to the Internet, and surf from a different computer. This is essentially how an Internet Service Provider is set up.

Linux is one of the few variants of Unix that does not trace its roots back to BSD or System V. It was written, in the tradition of the original Unix code, by Linus Torvalds as a college project. The vast popularity of the Internet has helped Linux to become a stable and mature operating system in record time. Programmers and developers have written kernel enhancements, drivers for PC cards, and other code for it in their spare time. Drivers for most video cards, hard drives controllers (both SCSI and IDE), processors, even drivers for ZIP and JAZ drives are available or on the horizon. The code can be custom tailored to your specific needs. Those that prefer System V-type Unix might prefer RedHat Linux, while those that prefer BSD would be happier with Slackware Linux. In coming months, I plan to review each package, and possibly other developments in the Linux and Unix world.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.2 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE5xUg7c7LAGVRDTmURAs5aAJ4kf1FqPg6EpDmWbf84nLHsSPOzDgCgw6Sx
Y8cC3kjj4etXIKluMSnk4hA=
=VDVs
-----END PGP SIGNATURE-----