Saturday, May 19, 2012

UNIX History

UNIX grew out of Multic, a failed multiuser OS in Bell Labs.  In 1969, Bell Labs programmer sketched out a filesystem design that evolved to become UNIX.  Thompson implement the system to an idle PDP-7.  It was ported to PDP-11 in 1971.  In 1973, UNIX was rewritten in C which pave the way of portability to various platforms.  The first UNIX widely used outside Bell Lab was UNIX System, 6th edison (V6).  Other companies ported UNIX to new machines.  In 1977, Bell Labs released a combination of these variants into a single system called UNIX system III.  In 1982, AT&T released System V (system IV was an internal development version).

One of the main contributor of development was University of Berkeley.  Variants of UNIX from Berkeley was called BSD (Berkeley Software Distributions).  1BSD, released in 1977, was a collection of patches and additional software on the top of Bell Labs UNIX.  2BSD in 1978 continued this trend and include csh and vi.  the first standalone BSD release was 3BSD in 1979 which added virtual memory (VM).  A serious of 4BSD releases (4.0 to 4.3) added job control, demand paging and TCPIP.  The final release is 4.4 in 1979 which featured a rewritten VM subsystrem.  Development of BSD continues with the Darwin, FreeBSD, NetBSD and OpenBSD systems.

In early 1980 and 1990s, various companies introduced their own commercial versions of UNIX.  These variants were based on either AT&T or BSD releases and features high-end features developed for their hardware architecture.  Examples are Digital's Tru64, HP's HP-UX, IBM's AIX, Sequent's DYNIX/ptx, SGI's IRIX and SUN's Solaris and SunOS.

UNIX is relative simple with 100s of system calls comparing to other OS which have 1000s.  Everything in UNIX is abstracted as a file (with some exception like socket) which simplifies manipulation with a handful of commands (open, close, read, write and lseek).  UNIX also features quick process creation time and the unique fork() system call.

No comments: