6.2) A very brief look at Unix history.
6.3) Main Unix flavors.
6.4) Unix Standards.
6.5) Identifying your Unix flavor.
6.6) Brief notes on some well-known (commercial/PD) Unices.
6.7) Real-time Unices.
6.8) Unix glossary.
NOTE TO READERS: I would like to update this FAQ with WWW pointers for the various Unices I mention. Don't hesitate to send them along, I'll eventually get around to updating this part. Email: lew@bnr.ca
The following is offered with no guarantee as to accuracy or completeness. I have done what I can in the time available, often with conflicting information, and it still is very much work in progress. I hope to keep improving this summary. Comments and corrections welcome: lew@bnr.ca.
First a short definition. By Unix we mean an operating system typically written in C, with a hierarchical file system, integration of file and device I/O, whose system call interface includes services such as fork(), pipe(), and whose user interface includes tools such as cc, troff, grep, awk, and a choice of shell. Note that UNIX was a registered trademark of USL (AT&T), now of X/Open, but will be used here in its generic sense.
Most Unices (the more common plural form) are derived more or less directly from AT&T (now Novell) code (some code from the first C version is presumably still left in most), but there are also clones (i.e. Unix-compatible systems with no AT&T code).
In addition, there are also Unix-like environments (e.g. VOS) sitting on top of other OSs, and OSs inspired from Unix (yes, even DOS!). These are not covered here. Little on real-time Unices yet (although more is planned).
Unix comes in an incredible variety of flavors. This is to a large extent due to availability of sources and the ease of porting and modifying Unix. Typically, a vendor of Unix will start with one basic flavor (see below), take ideas/code from the other major flavor, add and change many things, etc. This results in yet another new Unix flavor. Today, there are literally hundreds of Unices available, the closest thing to standard Unix being (by definition) System V.
This answer was put together mostly from information on the net and email. Some specific sources are also mentioned in the appropriate sections.
Acknowledgements: (in addition to references): pat@bnr.ca,
guy@auspex.com, pen@lysator.liu.se, mikes@ingres.com,
mjd@saul.cis.upenn.edu, root%candle.uucp@ls.com, ee@atbull.bull.co.at,
Aaron_Dailey@stortek.com, ralph@dci.pinetree.org, sbdah@mcshh.hanse.de,
macmach@andrew.cmu.edu, jwa@alw.nih.gov [4.4BSD], roeber@axpvms.cern.ch,
bob@pta.pyramid.com.au, bad@flatlin.ka.sub.org, m5@vail.tivoli.com,
dan@fch.wimsey.bc.ca, jlbrand@uswnvg.com, jpazer@usl.com,
ym@satelnet.org, merritt@gendev.slc.paramax.com, quinlan@yggdrasil.com,
steve@rudolph.ssd.csd.harris.com, bud@heinous.isca.uiowa.edu,
pcu@umich.edu, quinlan@yggdrasil.com, Dan_Menchaca@quickmail.apple.com,
D.Lamptey@sheffield.ac.uk, derekn@vw.ece.cmu.edu, gordon@PowerOpen.org,
romain@pyramid.com, rzm@dain.oso.chalmers.se, chen@adi.com,
tbm@tci002.uibk.ac.at, sllewis@nando.net, edwin@modcomp.demon.co.uk,
many that I forgot, and all the other folks whose posts I read. Many
thanks!
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.
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.sysv[23]86. 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.
The more important players in the Unix scene currently (early '95) are (corrections most welcome, these are new bytes):
- Novell who bought USL (early 93) and now has the source code.
- X/Open who has the branding rights to "UNIX" trademark.
- OSF, both as developer of OSF/1 and Motif, and as organization
overseeing COSE (OSF's new working model). OSF was reorganized in
1994 (and Sun joined), relationship with X/Open has been formalized.
- IEEE with POSIX, LAN standards.
- PowerOpen [IBM, Apple, Motorola, Bull, others] promoting the PowerPC.
Do not confuse with graphical environment of same name.
The following briefly describes the more important standards relevant to Unix.
- IEEE:
- 802.x (LAN) standards (LLC, ethernet, token ring, token bus)
- POSIX (ISO 9945?): Portable Operating System I/F (Unix, VMS
and OS/2!) (only ? have been finalized at this point)
- 1003.1: library procedures (mostly system calls) -- roughly V7
except for signals and terminal I/F (1990)
- 1003.2: shell and utilities
- 1003.3: test methods and conformance
- 1003.4: real-time: binary semaphores, process memory
locking, memory-mapped files, shared memory,
priority scheduling, real-time signals, clocks and
timers, IPC message passing, synchronized I/O,
asynchronous I/O, real-time files
- 1003.5: Ada language bindings
- 1003.6: security
- 1003.7: system admin (incl. printing)
- 1003.8: transparent file access
- 1003.9: FORTRAN language bindings
- 1003.10: super computing
- 1003.12: protocol-independent I/Fs
- 1003.13: real-time profiles
- 1003.15: supercomputing batch I/Fs
- 1003.16: C-language bindings (?)
- 1003.17: directory services
- 1003.18: POSIX standardized profile
- 1003.19: FORTRAN 90 language bindings
- X/Open (consortium of vendors, founded 1984):
- X/Open Portability Guides (XPGn):
- XPG2 (1987), strong SV influence
Vol 1: commands and utilities
Vol 2: system calls and libraries
Vol 3: terminal I/F (curses, termio), IPC (SV),
internationalization
Vol 4: programming languages (C, COBOL!)
Vol 5: data management (ISAM, SQL)
- XPG3 (1989) adds: X11 API
- XPG4 (1992) adds: XTI? 22 components
- XOM series of interfaces:
- XOM (X/Open Object Management) generic I/F mechanisms for
following
- XDS (X/Open Directory Service)
- XMH (X/Open Mail ??)
- XMP (X/Open Management Protocols) -- not Bull's CM API?
- X/Open now has the rights to the "UNIX" trademark (late 93);
- "Spec 1170"
- This specification is being prepared describing a common API
to which vendors wanting to use the name "UNIX" will have to
comply (when test suites are available). Merge of SVID,
OSF's AES and other stuff.
- AT&T
(is this still relevant in 1994? Who is now responsible for SVID,
TLI, APLI?)
- System V Interface Definition (SVID)
- SVID1 (1985, SVR2)
Vol 1: system calls and libraries (similar to XPG2.1)
- SVID2 (1986, SVR3)
Vol 1: system calls and libraries (base, kernel extensions)
Vol 2: commands and utilities (base, advanced, admin, software
development), terminal I/F
Vol 3: terminal I/F (again), STREAMS and TLI, RFS
- SVID3 (19??, SVR4) adds
Vol 4: ?? &c
- APIs
- Transport Library Interface (TLI)
- ACSE/Presentation Library Interface (APLI)
- COSE (COmmon Open Software Environment) [IBM, HP, SunSoft, others]:
objective is to bring different Unix platforms closer together.
Initiatives in the following areas:
- desktop environments
- application API (aka Spec 1170 -- a single programming i/f) --
probably the more important achievement at this point: eliminates
differences between SCO, AIX, Solaris, HP-UX, UnixWare.
- distributed computing services (OSF's DCE and SunSoft's ONC)
- object technologies (OMG's CORBA)
- graphics
- multimedia
- systems management
- PowerOpen Environment (POE) promoted by the PowerOpen association
(POA). A standard for Unix-like OSs running on PowerPC chip. Defines:
- an API (application programming i/f, derived from AIX, conforms to
POSIX, XPG4, Motif, &c) and
- an ABI (application binary i/f), a distinguishing factor from other
standards such as POSIX, XPG4, &c.. Any POE-compliant system will
be able to run all POE software.
Key features:
- based on the PowerPC architecture
- hardware bus independence
- system implementations can range from laptops to supercomputers
- requires a multi-user, multi-tasking operating system
- networking support
- X windows extension, Motif
- conformance tested and certified by an independent party (POA)
AIX 4.1.1 will be PowerOpen compliant. MacOS isn't and won't be.
[above adapted from the powerpc-faq from comp.sys.powerpc]
IBM is involved in both COSE and POE. How will the two interact?
6.5) Identifying your Unix flavor.
This section lists a number of things you can look at in attempting to identify the base flavor of your Unix. Given the significant exchange of code and ideas between the various flavors and the many changes made by vendors, any statement such as "this Unix is an SVR2" is at best a statistical statement (except for some SVRn ports). Also many Unices offer most of both worlds (either mixed as in SunOS or strictly separated as in Apollo?). So this section is perhaps not very useful...
The list of features in previous sections can also help. For example, if a system has a poll(2) but no select(2), it is highly probable that it is derived from SVR3. Also the name of the OS can provide a clue, as well as the logon message (e.g. SGI's "IRIX SVR3.3.2") or the output of "uname -a" command. Available commands can also provide hints but this is probably less reliable than kernel features. For example, the type of terminal initialization (inittab or ttys) is a more reliable indicator than the print subsystem.
Feature Typical in SVRx Typical in xBSD
kernel name /unix /vmunix
terminal init /etc/inittab /etc/ttys (only getty to 4.3)
boot init /etc/rc.d directories /etc/rc.* files
mounted FSs /etc/mnttab /etc/mtab
usual shell sh, ksh csh, #! hack
native FS S5 (blk: 512-2K) UFS (blk: 4K-8K)
file names <= 14 bytes file names < 255 bytes
groups need newgrp(1) automatic membership
SVR4: multiple groups
print subsystem lp, lpstat, cancel lpr, lpq, lprm (lpd daemon) ??
terminal control termio, terminfo, termios (sgtty before 4.3reno)
SVR4: termios (POSIX) termcap
job control >= SVR4 yes
ps command ps -ef ps -aux
multiple wait poll select
string fcns memset, memcpy bzero, bcopy
process mapping /proc (SVR4)
As we move to the late '90s, this is probably less and less relevant.
(I am not at all satisfied with this section, unfortunately I have neither the time nor the documents to make it much better (wrt contents). Should only list Unices known by a reasonably wide audience. Small and non-US Unices welcome, e.g. Eurix. In need of reformatting)
This section lists (in alphabetical order) some of the better known Unices along with a brief description of their nature. Unfortunately, it's out-of-date almost by definition...
(sorted alpha, ignoring numbers and other chars)
AIX: IBM's Unix, based on SVR2 (later up to SVR3.2?) with varying
degrees of BSD extensions, for various hardwares. Proprietary
system admin (SMIT). Both 850 and Latin-1 CPs. Quite
different from most Unices and among themselves.
Newsgroup: comp.unix.aix.
- 1.x (for 386 PS/2)
- 2.x (for PC RTs)
- 3.x (for RS/6000), paging kernel, logical volume manager, i18n;
3.2 adds TLI/STREAMS. SV-based with many enhancements.
4.1 is latest (includes support for PowerPC?)
- AIX/ESA, runs native on S/370 and S/390 mainframes, based on OSF/1.
AIX was to have been base for OSF/1 until Mach was chosen instead.
I hope this subsection is converging :-)
AOS (IBM): 4.3BSD port to IBM PC RT (for educational institutes).
Don't confuse with DG's proprietary OS of same name.
Arix: SV
A3000UX (Commodore): 68030-based SVR4 Unix (?) for the Amiga.
A/UX (Apple): SV with Berkeley enhancements, NFS, Mac GUI. System 6
(later System 7) runs as guest of A/UX (opposite of MachTen).
Newsgroup: comp.unix.aux.
- 2.0: SVR2 with 4.2BSD, system 6 Mac applications.
- 3.0 (1992): SVR2.2 with 4.3BSD and SVR3/4 extensions; X11R4,
MacX, TCP/IP, NFS, NIS, RPC/XDR, various shells, UFS or S5FS.
System 7 applications.
- 4.0 will have/be OSF/1. But I hear Apple has decided to drop
A/UX (will go for AIX now that they're together with IBM on
the PPC)
3B1 (680x0): SV-based, done by Convergent for AT&T.
Newsgroup: comp.sys.3b1.
BNR/2: stands for BSD Net/2 Release? Includes NetBSD/1, FreeBSD.
BOS for Bull's DPX/2 (680x0)
- V1 (1990): SVR3 with BSD extensions (FFS, select, sockets),
symmetric MP, X11R3
- V2 (1991): adds job control, disk mirroring, C2 security,
DCE extensions
- There's also BOS/X, and AIX-compatible Unix for Bull's PPC
workstations. How it relates to above two is unknown.
386BSD: Jolitz's port of Net/2 software. Posix, 32-bit, still in alpha
(now version 0.1).
BSD/386 (80386): from BSDI, with source (augmented Net2 software)
Newsgroup: comp.unix.bsd.
Chorus/MiXV: Unix SVR3.2 (SVR4) over Chorus nucleus, ABI/BCS.
Coherent (Mark Williams Company): For 80286. Unix clone compatible with
V7, some SVR2 (IPC). V4.0 is 32-bit. Newsgroup: comp.os.coherent.
Mark Williams closed down early '95.
Consensys: SVR4.2
CTIX: SV-based, from Convergent
D-NIX: SV
DC/OSx (Pyramid): SVR4. Newsgroup: comp.sys.pyramid.
DELL UNIX [DELL Computer Corp.]: SVR4
DomainIX: see DomainOS below.
DomainOS (Apollo, now HP): proprietary OS; layered on top is BSD4.3 and
SVR3 (a process can use either, neither or both). Development now
stopped, some features now in OSF/1 (and NT). Now at SR10.4.
Name for SR9.* was DomainIX. Newsgroup: comp.sys.apollo.
DVIX (NT's DVS): SVR2
DYNIX (Sequent): 4.2BSD-based
DYNIX/PTX: SVR3-based
EP/IX (Control Data Corp.): for MIPS 2000/3000/6000/4000; based on
RISC/OS 4 and 5, POSIX-ABI-compliant. SVR3, SVR4 and BSD modes.
Esix (80386): pure SVR4, X11, OpenLook (NeWS), Xview
Eurix (80?86): SVR3.2 (Germany)
FreeBSD: 386bsd 0.1 with the patchkit applied, and many updated
utilities.
FTX: Stratus fault-tolerant OS (68K or i860-i960 hardware)
Generics UNIX (80386): SVR4.03 (Germany)
GNU Hurd (?): vaporware from the Free Software Foundation (FSF):
Unix emulator over Mach 3.0 kernel. Many GNU tools are very
popular (emacs) and used in the PD Unices.
HELIOS (Perihelion Software): for INMOS transputer and many other
platforms.
HP-UX (HP): old from S III (SVRx), now SVR2 (4.2BSD?) with SV utilities
(they have trouble making up their minds).
- 6.5: SVR2
- 7.0: SVR3.2, symlinks
- 7.5
- 8.0: BSD based? for HP-9000 CISC (300/400) and RISC (800/700),
shared libs
- 9.0: includes DCE
Interactive SVR3.2 (80x86): pure SVR3. Interactive has been bought
by Sun; will their system survive Solaris?
Idris: first Unix clone by Whitesmith. A small Unix? For INMOS
transputer and others?.
IRIX (SGI): Version 4: SVR3.2, much BSD. Version 5.x (current is 5.2)
is based on SVR4. Newsgroup: comp.sys.sgi.
Linux (386/486/586): Unix under GPL (not from FSF, though). Available
with sources. POSIX compliant w/ SysV and BSD extensions. Being
ported to Alpha/AXP and PowerPC (ports for 680x0 Amigas and Ataris
already exist; a port is also being done to the MIPS/4000).
Newsgroup: comp.os.linux.{admin,announce,development,help,misc}.
MacBSD, ?: works on Mac II (directly on H/W).
MachTen, Tenon Intersystems: runs as a guest under MacOS; 4.3BSD
environment with TCP, NFS. Scaled down version: MachTen Personal.
MacMach (Mac II): 4.3BSD over Mach 3.0 microkernel, X11, Motif, GNU
software, sources, experimental System 7 as Mach task. Complete
with all sources (need Unix license).
Mach386: from Mt Xinu. Based on Mach 2.5, with 4.3BSD-Tahoe
enhancements. Also 2.6 MSD (Mach Source Distribution).
Microport (80x86): pure SVR4, X11, OpenLook GUI
Minix (80x86, Atari, Amiga, Mac): Unix clone compatible with V7.
Sold with sources. Being POSIXified (sp?). For PCs, and surely
many others (eg. INMOS transputer). Newsgroup: comp.os.minix.
MipsOS: SVish (RISC/OS, now dropped, was BSDish)
more/BSD (VAX, HP 9000/300): Mt Xinu's Unix, based on 4.3BSD-Tahoe.
NCR UNIX: SVR4 (4.2?)
Net/2 tape (from Berkeley, 1991): BSD Unix, essentially compatible with
4.3BSD, includes only sources free of AT&T code, no low-level code.
See 386BSD and BSD/386 above.
NetBSD 0.8: is actually 386bsd in a new suit. Ported to [34]86, MIPS,
Amiga, Sun, Mac. What is relation to Net/2?
- 1.0 came out in '94.
NEXTSTEP (Intel Pentium and 86486, Hewlett-Packard PA-RISC, NeXT 68040):
BSD4.3 over Mach kernel, own GUI.
- 1.x, 2.0, 2.1, 2.2, 3.0, 3.1 (old)
- 3.2 (current version,
Intel Pentium and 86486,
Hewlett-Packard PA-RISC,
NeXT 68040)
- 3.3 (shipping; SPARC-version available)
- 4.0 (to be announced, will include Sun SPARC version and
will be OpenStep compliant
- no NEXTSTEP for PowerPC or DEC Alpha yet announced (are there plans?
NEWS-OS (Sony)
- 3.2
OSF/1 (DEC): DEC's port of OSF/1. I think this is now (4/93) available
on DEC's latest Alpha AXP (64-bit machine).
OSx (Pyramid): Dualport of both SysV.3 and BSD4.3. Newsgroup:
comp.sys.pyramid.
PC-IX (IBM 8086): SV
Plan 9 (AT&T): announced 1992, complete rewrite, not clear how close to
Unix it is. Key points: distributed, very small, various hardwares
(Sun, Mips, Next, SGI, generic hobbit, 680x0, PCs), C (not C++ as
rumors had it), new compiler, "8 1/2" window system (also very
small), 16-bit Unicode, CPU/file servers over high speed nets.
SCO Xenix (80x86): Versions for XT (not robust!), 286, 386 (with demand
paging). Today bulk of code is from System V. Stable product.
SCO Unix (80x86): SVR3.2 (stopped taking USL source at this point).
Sinix [Siemens]: System V base.
Solaris (Sparc, x86):
- 1.0: essentially same as SunOS 4.1.1, with OpenWindows 2.0 and
DeskSet utilities.
- 1.0.1: SunOS 4.1.2 with multiprocessing (kernel not multithreaded);
not for 386
- 2.0: (initially announced as SunOS 5.0 in 1988) based on SVR4
(with symmetric MP?), will include support for 386; with
OpenWindows 3.0 (X11R4) and OpenLook, DeskSet, ONC, NIS. Both
a.out (BSD) and elf (SVR4) formats. Kerberos support. Compilers
unbundled!
- Solaris is OpenStep compliant (non-NeXT, but with NEXTSTEP API)
with latest (1994?) version.
- Sun will ship its OpenStep-implementation with project DOE for
Solaris. First versions will be for SPARC-based Suns, but a
version for Solaris 2.4 for x86 and PowerPC will appear later.
SunOS (680x0, Sparc, i386): based on 4.3BSD, includes much from
System V. Main Sun achievements: NFS (1984), SunView (1985), NeWS
(1986, postscript imaging, now in OpenWindows), OpenLook GUI standard,
OpenWindows (NeWS, X11, SunView!). Newsgroup: comp.sys.sun.*.
- 3.x: SV IPC package, FIFOs
- 4.0.3: lightweight processes, new virtual mem, shared libs
- 4.1: STREAMS & TLI, 8-bit clean?, async I/O, ms-dos file system
(continues as Solaris -- see above).
UHC (80x86): pure SVR4, X11, Motif
Ultrix (DEC): based on 4.2BSD with much of 4.3.
Newsgroup: comp.unix.ultrix.
- 4.4 is latest
UNICOS (Cray): System V base. Newsgroup: comp.unix.cray
- 5.x, 6,x, 7.0
UnixWare Release 4.2 [Univel]: SVR4.2; over NetWare. Univel no longer
exists.
UTEK (Tektronix)
- 4.0
VOLVIX (Archipel S.A.): UNIX-based OS built around a communication
based, distributed, real-time micro-kernel. SVR3.2 system calls,
BSD4.4 file/network system calls (VFS, FFS). Also NFS and X11.
Vanilla VOLVIX is for transputers.
Xenix (80x86): 1st Unix on Intel hardware, based on SVR2 (previously on
S III and even V7). Newsgroup: comp.unix.xenix.
WARNING: this section is badly in need of work. It's full of errors,
and it's incomplete. I hope to have time to look at it this winter
(was "this fall"). I doubt all of following are Unices -- input is
welcome. The list also includes more common Unices with real-time
features, and some non-Unix systems with Unix-like APIs. I don't
suppose the latter really belong here, but having collected some notes,
I'm hesitant to junk them. See also comp.realtime.
AIX: AIX/6000 has real-time support.
Concurrent OS (Concurrent): real Unix, significantly modifed by
Concurrent.
CX/UX: a real UNIX significantly modified by Harris to provide
real-time capabilities and performance. Compliant with POSIX.4 final
version.
EP/LX (Control Data): port of LynxOS to R3000. Formerly called TC/IX.
LynxOS (Lynx Real-Time Systems, Inc): Berkeley and SV compatibility,
ground-up rewrite (proprietary), predates SVR4. Is not UNIX, but
supports much of the UNIX I/Fs (SV and BSD). POSIX compliant. Fully
preemptive, fixed priorities.
MiX: microkernel implementation of SVR4 offered by Chorus.
Motorola SVR4 has real-time capabilities.
QNX (Quantum Software): unix-compatible real real-time OS.
REAL/IX: based on System V 3.2 with RT features (fully premptive kernel,
fixed-priority scheduler, RT timer, &c.). For 68xxx and 88xxx based
systems. POSIX (1003.1 - 1988) compliant and in 88k form, it is
88open BCS compliant. Also available for x86/Pentium.
RTMX O/S [RTMX Incorporated]: elements of NET2, 4.4BSD-Lite and
proprietary code. Also includes FSF tools. Real-time (POSIX)
extensions.
RTU (Concurrent), for 68K boxes
Solaris 2 has real-time capabilities?
Stellix (Stardent); it's Unix, but is it real-time?
Venix/386: Interactive SVR3.2 with real-time extensions.
VMEexec (Motorola): not Unix, but also shares some I/Fs with Unix.
VxWorks (Wind River Systems): Little in common with Unix, has some I/Fs
in common with Unix (but not the file system). Newsgroup:
comp.os.vxworks.
(know nothing about)
Convex RTS
REAL/IX (AEG)
Sorix (Siemens)
System V/86 (Motorola)
TC/IX (CCD)
Velocity (Ready Systems):
This section provides short definitions of various concepts and
components of (or related to) Unix systems.
Chorus: message-passing microkernel, may form basis for a future release
of SV. Chorus already have SVR4 running on top (binary-compatible).
CORBA (Common Object Request Broker Architecture).
COSE (Common Open Software Environment) [Sun, HP, IBM]: common look and
feel (Motif -- Sun will let OpenLook fade away), common API.
Reaction against Windows NT. See section 6.4 above.
DCE (Distributed Computing Environment, from OSF): Includes RPC (Apollo's
NCS), directory service (local based on DNS, global on X.500), time,
security, and threads services, DFS (distrib. file system), ....
OS-independent.
DME (Distributed Management Environment, from OSF): future.
DO (Distributed Objects [Enterprise]): ???.
FFS (Fast File System): from Berkeley, 1983. Equivalent (exact?) of
UFS in SunOS. Has notions such as cylinder groups, fragments.
FSF (Free Software Foundation)
Mach: modern kernels from CMU (Carnegie Mellon University) on which many
Unices and other OSs are based (e.g. OSF/1, MacMach, ...):
- 2.5: monolithic kernel with 4.2BSD
- 3.0: microkernel with BSD Unix server in user space (and other OSs,
e.g. MS-DOS)
Newsgroup: comp.os.mach
MFS (Memory File System):
NeWS (Network extensible Window System), from Sun?: PostScript-based,
networked, toolkits (and even clients) loaded in server. Part of
OpenWindows.
NFS (Network File System): contributed by Sun to BSD, stateless server
ONC (Open Network Computing): from Sun(?), includes RPC, name service
(NIS aka YP), NFS, ... (found in many Unices, other OSs).
OpenStep [NeXT, Sun]: ???
PowerOpen: both a standard, and an organization promoting PowerPC.
Involves IBM, Apple and Motorola; others? See section 6.4 above.
PowerPC (PPC): a RISC CPU chip [IBM, Motorola].
RFS (Remote File System): SV, stateful server, incompatible with NFS
RPC (Remote Procedure Call): high-level IPC (inter-process communication)
mechanism. Two flavors.
- ONC: Over TCP or UDP (later OSI), uses XDR to encode data.
- DCE: has a different RPC mechanism (based on Apollo's NCS)
S5 FS: System V's native file system, blocks 512 to 2K.
sockets: BSD interface mechanism to networks (compare TLI).
STREAMS: a message-passing kernel mechanism, initially in SVR3, which
provides a very good interface for protocol development.
TFS (Translucent File System): Sun, COW applied to files.
TLI (Transport Library Interface): SV's interface to transport services
(TCP, OSI). UI has also defined an APLI (ACSE/Presentation Library
Interface)
UFS (?): BSD's native file system as seen in SunOS, blocks 4K to 8K,
cylinder groups, fragments.
XTI (X/Open Transport Interface): TLI with enhancements
X11: pixel-oriented window system from MIT.
Last modified: 31 December 1995