GitXplorerGitXplorer
p

unix-history

public
60 stars
1 forks
0 issues

Commits

List of commits on branch master.
Verified
0f5226860ca6b2f4d938be61b8eb3b59999c317a

I/O multiplexing interfaces (select and poll)

ppenberg committed 5 years ago
Verified
a84b76c0108b98f97f91aafbe80ffaaaa0a863e4

Update README.md

ppenberg committed 5 years ago
Verified
f7c56ca44caa0604dc78a2afbe2cb82a4a6ed52f

Update README.md

ppenberg committed 5 years ago
Verified
847a144a449d86112a5f2bc8de32fc298251693d

Update README.md

ppenberg committed 5 years ago
Verified
1951f2af2151b341da3dab692ff439cb86c3341d

Update README.md

ppenberg committed 5 years ago
Verified
692b3ce06e77d6365652f6e2e73495c4c182b842

Update README.md

ppenberg committed 5 years ago

README

The README file for this repository.

History of UNIX Design and Interfaces

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

This document is an attempt to capture the history of UNIX design and interfaces from its inception in 1969 until today. We aim to answer the question of when specific parts of UNIX design and interfaces were introduced, and why. We use a liberal definition of UNIX in this document -- IOW, we include all UNIX-like operating systems (including Linux) and make no difference between POSIX and UNIX.

If you find something that is inaccurate, or you want to add something, please send a pull request!

Prelude

1964

  • The Multics project is started. Ken Thompson, and others, were working on Multics before creating UNIX [Salus, 1994].

UNIX at Bell Labs

1969

  • Bell Labs withdraws from the Multics project, leaving Ken Thompson (and others) without an interactive, time-sharing operating system.
  • Ken Thompson writes the first version of UNIX on PDP-7 in the summer of 1969 [Salus, 1994].

1970

  • PDP-11 arrives to Bell Labs and UNIX is ported to it.

1971

  • 1st Edition UNIX is released in November.

1972

  • 2nd Edition UNIX is released in June.

1973

  • 3rd Edition UNIX is released in February. The pipe system call is introduced.
  • Ken Thompson presents UNIX at SOSP in October 1973.
  • 4th Edition UNIX is released in November. This is the first version of UNIX written in C.

1974

  • First paper on UNIX, "The UNIX Time-Sharing System" by Dennis M. Ritchie and Ken Thompson, is published in the "Communications of the ACM" in July 1974.

UNIX at Berkeley

1975

  • Ken Thompson takes a sabbatical from Bell Labs, joins Berkeley as a visiting professor, and helps install V6 UNIX.

1978

  • Bill Joy releases Berkeley Software Distribution (BSD) in March 1978.
  • V7 UNIX is released.

1979

  • 3BSD is released. The vfork system call is introduced. Virtual memory is paging-based [Babaoglu and Joy, 1981].

1980

  • 4.0BSD is released.

1981

  • 4.1BSD is released.

1983

  • 4.2BSD released in September 1983 with networking (BSD sockets), new filesystem, redesigned system interface, and new signal interface. The select system call is also introduced [Stenberg, 2019]. The 4.2BSD release also introduces the fsync system call and the mmap system call, although the latter is not implemented fully [Gingell et al., 1987].
  • UNIX System V Release 1 is released. Interprocess communications (IPC) (semaphores, message queues and shared memory) were added [System V Definition].

1986

  • 4.3BSD released.

1987

UNIX and POSIX

1988

  • 4.3BSD-Tahoe is released.
  • IEEE Std 1003.1-1988 ("POSIX") released in 1988.
  • SunOS 4.0 is released in December 1988. Virtual memory subsystem is rewritten to support shared-memory with mmap [Gingell et al., 1987]. Gingell et al. mention Multics file/process memory integration and TENEX page-based VM in historical acknowledgements.

1989

  • System V Release 4 (SRv4) is released.

1990

  • 4.3BSD-Reno is released.

1991

  • Linux released in September 1991

1992

  • 386BSD released

1993

  • 4.4BSD released. Last major Berkeley UNIX release.
  • POSIX.1b released: Asynchronous I/O, process scheduling, high-precision clocks and timers, and interprocess communication using semaphores, shared memory, and message queues.

1995

  • POSIX.1c released: Threads

Beyond POSIX

2000

  • POSIX.1g released: Network APIs (including sockets)
  • FreeBSD introduces the Kqueue interface [Lemon, 2000]

References