| The UNIX System: | | What are BSD, USG, System V, Berkeley...? | | An Exercise in Terminology | +-------------------------------------------+ This document is intended for new users of UNIX systems only. Those experienced in UNIX should ^O immediately, as this will not tell you anything you need to know. ...................... New UNIX system users are frequently confused by the apparent proliferation of versions and types of systems, all claiming to be "compatible with UNIX" or "containing full UNIX capability." The following is merely a glossary and a bit of history surrounding the development of what is commonly called "UNIX," including what it is and where it's going. UNIX System V is the name given to AT&T's version of the UNIX system. It is also called USG UNIX because there was a UNIX Support Group (USG) associated with matters when AT&T first released UNIX as a commercial product, as UNIX System III (in 1982?). AT&T currently distributes System V Release 2 and System V Release 3. SVr3 has a number of enhancements over SVr2, including remote filesystems, generalized networking support, improved signal mechanisms, and other things. It has been available for the AT&T 3B2 computer for about 15 months and is gradually migrating across to a large number of other processors, including 80386-based systems. References to "Eighth Edition" or "Ninth Edition" identify the version of the UNIX system in use at the Computing Science Research division of AT&T Bell Labs in Murray Hill, NJ. It is not in general public distribution. Also called V8 and V9, it runs on VAXen only. BSD stands for "Berkeley Systems Distribution" or "Berkeley Software Distribution" depending on the religious convictions of the people you ask about it. The University of California/Berkeley got involved with the UNIX system rather early on, in the days of Bell Labs' Version 6 and Version 7 and that port of V7 to the VAX called UNIX/32V. Their work developed a life of its own and is distributed in its own right. Berkeley is currently distributing the 4.3BSD release. The are many incompatibilities between System V and BSD UNIX systems. The essential mechanics are reasonably similar, but BSD and SysV have drastically different views of things like terminal drivers, signal handling mechanisms, and the internals of their filesystems. BSD's work diverged from AT&T's work in the late 70's and early 80's. The number of vendors supporting something BSD-related is large. Convex makes a "mini-supercomputer" called the C1 which is BSD-based. Several multiprocessor vendors, including Encore (for their MultiMax) and Sequent (for their Balance series), are BSD-based. Sun Microsystems was created by people taken directly from Berkeley itself (notably Bill Joy, responsible for the development of csh, the vi editor, and 4BSD's VM support), and is very compatible with BSD on their 680x0-based systems. Sun is a special case, however, because they are working toward complete BSD/SysV compatibility. Another interesting oddity is Pyramid, because of their dual-universe port of both System V and BSD into a single system for their RISC-based hardware; you can pick what kind of system you'd like to see on the fly with Pyramid's system, known as OSx, currently in release as OSx 4.1. Ultrix is DEC's name for the version of the BSD UNIX system which they distribute and support on VAXen. Also Ultrix-11 on PDP-11s. Minix is a black-box rewrite of the UNIX system by Andrew Tanenbaum for PC-clones. It lacks a few of the tools of real UNIX systems (e.g., awk), but is fairly compatible with V7 UNIX. This is a very inexpensive product available from Prentice-Hall with a high-quality text book suitable for teaching an upper level OS course. GNU is a system under development by Richard Stallman (of TWENEX EMACS and MIT AI Lab fame). It is intended to be a replacement for the BSD UNIX system, with the intent that it be freely distributable; Stallman has a number of objections to the usual licensing habits of large corporations, and is doing this work in order to create an environment in which to work where he can share any and all of his work with anyone he chooses. The GNU Project (of the organization known as the Free Software Foundation, a nonprofit organization recognized by the state of Massachusetts) has already produced the enormously popular GNU Emacs editor, a C compiler, a replacement for the standard UNIX version of yacc, and a large number of other UNIX utilities. Overall, the GNU system is due to be complete sometime next year, I believe. GNU is a recursive acronym for GNU's Not UNIX; Stallman asks that you pronounce the G of GNU so as to avoid confusion with "new." A few bits of terminology about tools you'll find on UNIX systems: - sh: The basic shell of UNIX, also called the Bourne shell, after its creator, Stephen Bourne. Note that this was by no means the first UNIX shell; it was perhaps the 5th to gain wide distribution. - csh: Bill Joy's Berkeley-originated shell. The most common shell used by people on BSD boxes. Legacy comes from the V6 shell with V7 features in an attempt to give the shell a C-like flavor (hence its name). - ksh: The Korn Shell, named for its creator, Dave Korn of AT&T. It has sh-like syntax, but with better human interface qualities, improved builtins, definable shell functions, and other things that make it worth looking into. - vi: A screen-oriented editor written originally by Bill Joy when Berkeley, now also supported by AT&T under System V. - emacs: Any of a large set of screen editors, whose lineage stretches back to Stallman's original TWENEX EMACS. Emacs has transmogrified with many people into CCA Emacs, Gosling's Emacs, GNU Emacs (Stallman returns), MicroEmacs, JOVE, MicroGNUEmacs, and others. - pcc: The Portable C Compiler. A fairly simple but well- intentioned attempt at a general C compiler. The standard compiler on many UNIX systems. - yacc/lex: Two programs used for creating compilers (yacc, for Yet Another Compiler-Compiler) and lexical analyzers (lex). - ed: The original line-oriented editor on UNIX systems. If you don't know this editor, LEARN IT, at least its basics. You can go to any UNIX system and be marginally comfortable if you can edit with ed. - sed: Stream Editor, with commands analogous to ed, but intended for use with large amounts of text, or in highly automated editing applications. - c++: An object-oriented version of the C language. Deve- loped by Bjarne Stroustrup of AT&T Bell Labs. Not yet in wide distribution, though available from AT&T. Any others people would like to know about? There's lots that could be explained, but we'll only do so if needed