History of UNIX Design and Interfaces
source link: https://www.tuicool.com/articles/AjARfyr
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
History of UNIX Design and Interfaces
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
pipe
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 themmap
system call interface, but does not implement it 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
- SVR3 Unix is released. The
poll
system call is introduced [ Stenberg, 2019 ; OpenBSD man page ; AT&T, 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] .
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 (now deprecated).
1995
- POSIX.1c released: Threads
Beyond POSIX
2000
- POSIX.1g released: Network APIs (including sockets)
- FreeBSD introduces the Kqueue interface [ Lemon, 2000 ]
References
- AT&T. UNIX System V Programmers Reference Manual. 1987.
- System V Definition
- The Unix Heritage Society
- Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, and John Quarterman. The Design and Implementation of the 4.4 BSD Operating System . 1996.
- Michael Kerrisk. The Linux Programming Interface: A Linux and UNIX System Programming Handbook . 2010.
- Marshall Kirk McKusick. Twenty Years of Berkeley Unix - From AT&T-Owned to Freely Redistributable . 1999.
- Eric S. Raymond The Art of Unix Programming . 2003.
- Peter H. Salus. A Quarter Century of UNIX . 1994.
- Daniel Stenberg. poll vs select vs event-based . 2019
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK