Unix has a long and winding history. For the first time user of unix, the following resources and information may be hard to understand or boring. In that case, feel free to skip over this section and refer back to it as needed. ;)
Various resources on Unix History A Brief History of Unix by Charles Severance
Book: A Quarter Century of Unix Author: Peter H. Salus Pages: 256 ISBN: 0201547775 Order from amazon.com.
http://www.faqs.org/faqs/unix-faq/faq/part6/ Subject: A very brief look at Unix history. From: "Pierre (P.) Lewis" (email@example.com) Date: Mon May 30 15:44:28 EDT 1994 X-Version: 2.6 6.2) A very brief look at Unix history. Unix history goes back to 1969 and the famous "little-used PDP-7 in a corner" on which Ken Thompson, Dennis Ritchie (the R in K&R) and others started work on what was to become Unix. The name "Unix" was intended as a pun on Multics (and was written "Unics" at first -- UNiplexed Information and Computing System). For the first 10 years, Unix development was essentially confined to Bell Labs. These initial versions were labeled "Version n" or "Nth Edition" (of the manuals), and were for DEC's PDP-11 (16 bits) and later VAXen (32 bits). Some significant versions include: V1 (1971): 1st Unix version, in assembler on a PDP-11/20. Included file system, fork(), roff, ed. Was used as a text processing tool for preparation of patents. Pipe() appeared first in V2! V4 (1973): Rewritten in C, which is probably the most significant event in this OS's history: it means Unix can be ported to a new hardware in months, and changes are easy. The C language was originally designed for the Unix operating system, and hence there is a strong synergy between C and Unix. V6 (1975): First version of Unix widely available outside Bell Labs (esp. in universities). This was also the start of Unix diversity and popularity. 1.xBSD (PDP-11) was derived from this version. J. Lions published "A commentary on the Unix Operating System" based on V6. V7 (1979): For many, this is the "last true Unix", an "improvement over all preceding and following Unices" [Bourne]. It included full K&R C, uucp, Bourne shell. V7 was ported to the VAX as 32V. The V7 kernel was a mere 40 Kbytes! Here (for reference) are the system calls of V7: _exit, access, acct, alarm, brk, chdir, chmod, chown, chroot, close, creat, dup, dup2, exec*, exit, fork, fstat, ftime, getegid, geteuid, getgid, getpid, getuid, gtty, indir, ioctl, kill, link, lock, lseek, mknod, mount, mpxcall, nice, open, pause, phys, pipe, pkoff, pkon, profil, ptrace, read, sbrk, setgid, setuid, signal, stat, stime, stty, sync, tell, time, times, umask, umount, unlink, utime, wait, write. These Vn versions were developed by the Computer Research Group (CRG) of Bell Labs. Another group, the Unix System Group (USG), was responsible for support. A third group at Bell Labs was also involved in Unix development, the Programmer's WorkBench (PWB), to which we owe, for example, sccs, named pipes and other important ideas. Both groups were merged into Unix System Development Lab in 1983. Another variant of Unix was CB Unix (Columbus Unix) from the Columbus branch of Bell Labs, responsible of Operations Support Systems. Its main contribution was parts of SV IPC. Work on Unix continued at Bell Labs in the 1980s. The V series was further developed by the CRG (Stroustrup mentions V10 in the 2nd edition of his book on C++), but we don't seem to hear much about this otherwise. The company now responsible for Unix (System V) is called Unix System Laboratories (USL) and is majority-owned by AT&T. Novell has bought USL (early 93)! Novell has given rights to the "UNIX" trademark to X/Open (late 93). But much happened to Unix outside AT&T, especially at Berkeley (where the other major flavor comes from). Vendors (esp. of workstations) also contributed much (e.g. Sun's NFS). The book "Life with Unix" by Don Libes and Sandy Ressler is fascinating reading for anyone interested in Unix, and covers a lot of the history, interactions, etc.. Much in the present section is summarized from this book. 6.3) Main Unix flavors. The following is very much an early '90s view. Until recently, there were basically two main flavors of Unix: System V (five) from AT&T, and the Berkeley Software Distribution (BSD). SVR4 is essentially a merge of these two flavors. End '91, OSF/1 from the Open Software Foundation was released (as a direct competitor to System V) and may (future will tell) change this picture. The following lists the main releases and features of System V, BSD and OSF/1. System V from AT&T. Typical of Intel hardware. Most often ported Unix, typically with BSD enhancements (csh, job control, termcap, curses, vi, symbolic links). System V evolution is now overseen by Unix International (UI). UI members include AT&T, Sun, .... Newsgroup: comp.unix.sysv86. Main releases: - System III (1982): first commercial Unix from AT&T - FIFOs (named pipes) (later?) - System V (1983): - IPC package (shm, msg, sem) - SVR2 (1984): - shell functions (sh) - SVID (System V Interface Definition) - SVR3 (1986) for ? platforms: - STREAMS (inspired by V8), poll(), TLI (network software) - RFS - shared libs - SVID 2 - demand paging (if hardware supports) - SVR3.2: - merge with Xenix (Intel 80386) - networking - SVR4 (1988), mainstream of Unix implementations, merge of System V, BSD, and SunOS. - From SVR3: sysadmin, terminal I/F, printer (from BSD?), RFS, STREAMS, uucp - From BSD: FFS, TCP/IP, sockets, select(), csh - From SunOS: NFS, OpenLook GUI, X11/NeWS, virtual memory subsystem with memory-mapped files, shared libraries (!= SVR3 ones?) - ksh - ANSI C - Internationalization (8-bit clean) - ABI (Application Binary Interface -- routines instead of traps) - POSIX, X/Open, SVID3 - SVR4.1 - async I/O (from SunOS?) - SVR4.2 (based on SVR4.1ES) - Veritas FS, ACLs - Dynamically loadable kernel modules - Future: - SVR4 MP (multiprocessor) - Use of Chorus microkernel? Berkeley Software Distribution (BSD). Typical of VAXen, RISCs, many workstations. More dynamic, research versions now than System V. BSD is responsible for much of the popularity of Unix. Most enhancements to Unix started here. The group responsible at UCB (University of California at Berkeley) is the Computer System Research Group (CSRG). They closed down in 1992. Newsgroup: comp.unix.bsd. Main releases: (much reorganized wrt dates and releases, hope it's converging) - 2.xBSD (1978) for PDP-11, still of significance? (2.11BSD was released in 1992!). - csh - 3BSD (1978): - virtual memory - 4.?BSD: - termcap, curses - vi - 4.0BSD (1980): - 4.1BSD (?): base of later AT&T CRG versions - job control - automatic kernel config - vfork() - 4.2BSD (1983): - TCP/IP, sockets, ethernet - UFS: long file names, symbolic links - new reliable signals (4.1 reliable signals now in SVR3) - select() - 4.3BSD (1986) for VAX, ?: - 4.3 Tahoe (1988): 4.3BSD with sources, support for Tahoe (32-bit supermini) - Fat FFS - New TCP algorithms - 4.3 Reno (1990) for VAX, Tahoe, HP 9000/300: - most of P1003.1 - NFS (from Sun) - MFS (memory file system) - OSI: TP4, CLNP, ISODE's FTAM, VT and X.500; SLIP - Kerberos - Net1 (?) and Net2 (June 1991) tapes: that portion of BSD which requires no USL copyright - 4.4BSD (alpha June 1992) for HP 9000/300, Sparc, 386, DEC, others; neither VAX nor Tahoe; two versions, lite (~Net2 contents plus, fixes and new architectures) and encumbered (everything, requires USL license): - new virtual memory system (VMS) based on Mach 2.5 - virtual filesystem interface, log-structured filesystem, size of local filesystem up to 2^63, NFS (freely redistributable, works with Sun's, over UDP or TCP) - ISO/OSI networking support (based on ISODE): TP4/CLNP/802.3 and TP0/CONS/X.25, session and above in user space; FTAM, VT, X.500. - most of POSIX.1 (esp. new terminal driver a la SV), much of POSIX.2, improved job control; ANSI C headers - Kerberos integrated with much of the system (incl. NFS) - TCP/IP enhancements (incl. header prediction, SLIP) - important kernel changes (new system call convention, ...) - other improvements: FIFOs, byte-range file locking Official 4.4BSD release was expected within 6 months of above. The Open Software Foundation (OSF) released its Unix called OSF/1 end of 1991. Still requires an SVR2 license. Compatible/compliant with SVID 2 (and 3 coming), POSIX, X/Open, etc.. OSF members include Apollo, Dec, HP, IBM, .... - OSF/1 (1991): - based on Mach 2.5 kernel - symmetric multiprocessing, parallelized kernel, threads - logical volumes, disk mirroring, UFS (native), S5 FS, NFS - enhanced security (B1 with some B2, B3; or C2), 4.3BSD admin - STREAMS, TLI/XTI, sockets - shared libs, dynamic loader (incl. kernel) - Motif GUI - Release 1.3 (Jun 94) - Based on MACH 3.0 Micro-kernel - Conformant with current draft of Specification 1170 (considered for standardization in X/Open's Fast Track process) - Data Capture I/F, Common Data Link I/F, - ISO 10646 and 64-bit support. - OSF/1 MK (mikrokernel) based on Mach 3.0 This list of major flavors should probably also include Xenix (Microsoft) which has been the basis for many ports. Derived from V7, S III and finally System V, it is similar externally but significantly changed internally (performance-tuned for micros). Two very good books describe the internals of the two main flavors. These are: - System V: "Design of the Unix Operating System", M.J. Bach. - BSD: "Design and Implementation of the 4.3BSD Unix Operating System", Leffler, McKusick, Karels, Quaterman. For a good introduction to OSF/1 (not quite as technical as the previous two), see: "Guide to OSF/1, A Technical Synopsis", published by O'Reilly. On SunOS, "Virtual Memory Architecture in SunOS" and "Shared Libraries in SunOS" in Summer 1989 USENIX Proceedings. A good set of articles on where Unix is going is "Unix Variants" in the Apr 92 issue of Unix Review. Other good sources of information include the bsd-faq file, and many of the newsgroups mentioned in the text.