[TUHS] Why did Unix succeed? "simple, robust and performant" or "hackable: source available and extensible"?
steve jenkin via TUHS
tuhs at tuhs.org
Tue Nov 25 17:02:37 AEST 2025
By 1968, the rapid increase in use of computers had triggered concerns
within the Profession of a ’Software Crisis’:
too many computers demanding new applications
and too few experienced, competent people to serve the need.
[ noted by Dijkstra in his 1972 Turing Award, below ]
Moore did his “Microelectronics is the Future of Electronics” piece in 1965, later admitting it was wild extrapolation on little data.
In 1975, he wrote a paper for IEEE based on sufficient data for conclusions.
I’ve no idea when the notion computers were speeding up at an increasing rate became understood by the academic & research community.
I know it was slow coming to practicing programmers - after the IBM PC in 1981 in my world.
Gordon Bell observed in 1985 that CMOS RISC was improving faster than even “killer” micros (Intel x86, 68000, …)
[ Fig 5 of <https://gordonbell.azurewebsites.net/bell's_law_msr-2007-tr-146a.pdf>
This headlong rush in development fuelled by VLSI until ~2004,
the end of Denard Scaling with single-core CPUs hitting the Power Wall,
had profound implications in the marketplace,
for vendors of hardware & software and Operating Systems designers.
I don’t believe Unix v7 in 1979 anticipated the rapid advance past 32-bit to 64-bit and
the explosion in DRAM, HDD, SSD, Graphics cards / Monitors and affordable bandwidth, both LAN’s and broadband.
The number of major ‘Additions’ to Unix v7, driven by new (cheap) hardware, is long.
So how did C & Unix derivatives, first implemented on a 16-bit PDP-11 with 24kb of core & 16kb kernel, no FPU or MMU,
scale to run nearly every sized platform extant?
Someone may have a list of other Operating System “contenders” from both before and after 1974,
but “sheer luck” can only be part of the answer to Unix’s success.
————————
I’ve been puzzling over two related questions:
- After 1974, why did Unix explode into Universities, then commercially via BSD, before AT&T could actively marketed it in1984?
Was it more than running on ‘affordable’ PDP-11’s and able to support high student loads?
- What was it about Unix & its architecture that allowed it to adapt to so many new, different innovations over decades?
Or were most designs simply brute-forced into the kernel?
Plan 9 definitively answered what direction Research Unix folk thought it should’ve developed.
“ A few principles aggressively applied “ was the description.
————————
Ken, then soon Dennis, wanted "a nice (or pleasant) environment to replace MULTICS” in 1969.
They’d understood the added programer productivity from interactive access,
and had first-hand experience in the impact on work when response times degraded.
The normal MULTICS filesystem used the Virtual Memory system.
Was this a factor in its perceived poor performance? [ poor caching & disk scheduling ]
Even over the lifetime of AT&T Unix to ~1994, we saw significant changes in hardware.
The PDP-11 line stayed 16-bit, but gained new hardware - FP & MMU at least.
The VAX-11 was 32-bit - it needed Virtual Memory and a rewrite of ‘everything’.
The many RISC designs began as 32-bit, probably moving to 64-bit before others.
LAN’s came along - particularly ethernet and IPv4 - and UCB's CSRG wrote a TCP/IP stack with sockets.
X11 Windowing ran its protocol over a LAN, adding graphics, not just ASCII over a TTY.
This required large, high-def monitors, and graphics cards to drive them a
with high-bandwidth CPU busses.
It seems that with DARPA funding the CSRG & BSD plus IETF, and also developing new internet services,
Unix was able to develop along with the Internet - it seemed synergistic to me.
Tim Berners Lee invention of the World Wide Web provides a case study in the power of Free innovation.
By writing in C and getting CERN make the code open source,
TBL removed ‘friction’ from the uptake & spread of his work.
———————
Ken was known for working overnight, having the machine to himself,
so would’ve known the raw speed of the multiple timeshare systems he used,
and been aware of how performance degraded with load.
I'm sure he would’ve asked:
why did these timeshare system response times collapse under load?
I suspect, without evidence, that Ken understood the critical role
of disk latency in maintaining response times.
Early Unix was known for ‘hammering’ disks,
it worked them much harder than other systems were able.
The original Unix filesystem was a performant, shared-access subsystem,
I think partly the reason it performed well under load.
While the programming interface is still recognisable,
the kernel subsystem implementation has been reworked as hardware changed.
The CSRG & its BSD later did a lot of work on filesystems,
improving the throughput considerably
even as disks got faster, bigger and higher bandwidth.
=================================
Notes & Links
=================================
E.W.Dijkstra Archive:
The Humble Programmer (EWD 340)
ACM Turing Lecture 1972
<https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html>
Mentions “Software Crisis”
=================================
[ before IPv4, NCP was added to a Unix kernel ]
FINAL REPORT OF THE STANFORD UNIVERSITY TCP PROJECT
Vint Cerf
1 April 1980
https://www.rfc-editor.org/ien/ien151.txt
Developed from 1973-1976 at Stanford, Bolt Beranek and Newman and University College London,
the effort then continued at other research and development centers during 1977-1980.
Originally designed as a monolithic internet protocol,
the internet aspects were separated into a distinct protocol layer in early 1979
with the publication of version 4 of TCP.
=================================
Selected Unix related Timeline
=================================
This selected timeline highlights some of the large hardware, software and networking changes
that have been grafted onto that humble 16-bit, integer only, swapping kernel.
* Pre Unix *
1964 - AT&T joins MIT, GE with MULTICS, part of DARPA funded 'Project MAC'. Building an "Information and Computing Service", a "computer utility", supplying the customer ‘outlets'
1969 - AT&T / Bell Labs withdraws from MULTICS
* Hardware *
11/45 - 16-bit, separate I&D spaces, floating point
11/70 - 16-bit, 20-bit physical addresses, MMU
VAX-11 - 32-bit
1973 - PDP-11/45, 248KB memory, 16-bit - 16 users
1975 - PDP-11/70 1975, Gordon Bell: 20,000 PDP-11's sold by 1975. up to 4MB & 48 users
1977 - VAX-11/780, shipped 1978 produced to 1988. up to 8MB. Oct 77
* LAN *
1980 - Ethernet. 10BASE5 RG-8/U coax, max 500m. shared medium [ b'cast ] 'vampire' taps + AUI.
1980 - Motorola 68000 ships. 16/32-bit, 24-bit addrs bus. launched September 1979.
1983 - IEEE 802.3 10BASAE5, N connector + AUI
* Dennis Ritchie's book on C language *
1978 - 'The C Programming Language', Prentice-Hall, Englewood Cliffs NJ, 1978. Second Edition, 1979.
* Unix releases *
1969 - PDP-7 version. Sept 1969
1971 - v1 First Edition 3 Nov 1971 PDP-11/20
1972 - v2 Second Edition Jun 1972
1972 - SCCS from 1st/2nd Edition, forked by New Jersey Bell
1973 - v3 Third Edition Feb 1973
1973 - v4 Fourth Edition Nov 1973 PDP-11/45 only
1973 - MERT UNIX/RT forked from 4th Edition
1974 - v5 Fifth Edition Jun 1974 PDP-11/40 added
1975 - v6 Sixth Edition May 1975 PDP-11/45, PDP-11/70?
1975 - USG UNIX/TS 1.0 fork of 6th Edition (begun 1973)
1977 - PWB 1.0, fork of 6th Edition? begun 1973
1978 - VAX-11 32-bit - 1BSD release. an add-on to Version 6 Unix rather than a complete operating system in its own right. begun 1977. 30 copies distributed from 19 Mar 1978. Salus.
1979 - Seventh Edition UNIX PDP-11/70 January 1979
1979 - 32V, port v7 to VAX-11, swapping from v6/v7 code. Jun 1979
1979 - 3BSD, from 32V + Virtual Memory. VAX-11, 32-bit. end of 1979.
1979 - UNIX/TS 1.2 (VAX). Sep 1979
1979 - v7 Seventh Edition Jan 1979 PDP-11/70, VAX, Perkin Elmer. "It was a improvement over all preceding and following Unices [Bourne]. It had C, UUCP and the Bourne shell. It was ported to the VAX and the kernel was more than 40 Kilobytes (K)."
1979 - Version 7 on Perkin Elmer 3220, running in production, Wollongong 29 Sep 1979
1980 - BSD forks 7th Edition (32V for VAX)
1984 - Research UNIX 8 VAX-11/750
1985 - POSIX - XPG1 1985
1985 - v8 Eighth Edition Feb 1985
1986 - v9 Ninth Edition Sep 1986
1988 - standardised Unix: POSIX, IEEE Standard 1003.1-1988 Portable Operating System Interface for Computer Environment
1989 - POSIX - XPG3 1989
1989 - v10 Tenth Edition Oct 1989
1992 - POSIX - XPG4 1992
1993 - POSIX - Spec 1170 API 1993,
* BSD *
1979 - 3BSD File System improvements. 2x blocks, crash recovery log. McKusick.
1980 - 4BSD, Nov 1980. 4.xBSD series added many new features, including TCP/IP networking.
1983 - Sun was known for producing 68k-based systems with high-quality graphics that were the only computers other than DEC's VAX to run 4.2BSD.
1983 - SunOS 1.0, SUN, 68000. 1st 'Workstation', not VAX-11. 4.[2/3]BSD, Nov 1983
1984 - 4.2BSD University of California at Berkeley releases 4.2BSD, includes TCP/IP, new signals and much more.
1995 - 4.4BSD-Lite2, last UCB release, CSRG disbanded - DARPA funding dropped.
* Local File System *
1982 - UCB Fast File System, FFS, 4BSD. kMcKusick.
1986 - 4.3BSD, Logical Block Adressing, dropped Disk Geometry. McKusick.
1987 - 4.3BSD, "vnodes", McKusick.
1987 - SVR3 - Virtual filesystem, File System Switch. System V Release 3 including STREAMS, TLI, RFS. At this time there are 750,000 UNIX installations around the world. IRIX introduced.
1989 - SVR4 - UNIX System V Release 4 ships, unifying System V, BSD and Xenix. Installed base 1.2 million. SunOS Virtual Filesystem interface.
* Remote File Systems *
1989 - NFSv2 RFC 1094, March 1989. UDP. Developed by SUN, begun 1984.
1993 - NFSv3 RFC 1813, June 1995. Vendor support for TCP.
2000 - NFSv4 RFC 3010, December 2000
* Internet / IP *
1973 - TCP/IP begun at Stanford, BBN and University College London. (1973-1976, 1 January 1983, ARPANET "Flag Day", changed from NCP to TCP/IPv4 protocol suite)
1979 - IP v4, internet aspects separated into a distinct protocol layer in early 1979 with the publication of version 4 of TCP.
1980 - Berkeley - DARPA contract for ARPANET, founded CSRG, disbanded 1995. Joy left for SUN in 1982. Developed 'sockets' interface & TCP/IP stack and tools - free.
1982 - BSD Sockets in 4.2BSD.
1983 - ARPANET "Flag Day", changed from NCP to TCP/IPv4 protocol suite. 1 January 1983.
1984 - X/Open formed.
1994 - FIPS-146-2, TCP/IP acceptable for GOSIP
* X11 Windowing System *
1983 - Project Athena, MIT, DEC, IBM, for campus-wide distributed computing environment for educational use. launched 1983, R&D ran to 30 June 30 1991.
1984 - X1. MIT, Project Athena. Scheifler. replaced synchronous W protocol with asynchronous protocol, display lists, immediate mode graphics: X version 1. X became first windowing system environment to offer true hardware independence and vendor independence. May 1984.
1987 - X11. release of X11 occurred on 15 September 1987.
1988 - X11R2. First X Consortium release. February 1988
* Mach - adopted by NextStep, thence iOS, OS/X, now MacOS *
1985 - Mach microkernel, CMU, Carnegie Mellon. from 1985 to 1994, ending with Mach 3.0. Mach virtual memory management system adopted in 4.4BSD by CSRG.
1994 - Mach 3.0 microkernel, CMU, Carnegie Mellon.
* DARPA funded projects *
1978 - DARPA VLSI Project initiated by Robert Kahn. https://en.wikipedia.org/wiki/VLSI_Project
1978 - Mead-Conway VLSI chip design rules/revolution, part of DARPA VLSI Project https://en.wikipedia.org/wiki/Mead-Conway_VLSI_chip_design_revolution
1980 - Berkeley - DARPA contract for ARPANET, founded CSRG, disbanded 1995. Joy left for SUN in 1982. Developed 'sockets' interface & TCP/IP stack and tools - free.
1981 - Berkeley RISC project under DARPA VLSI Project, David Patterson, 1981-1984 https://en.wikipedia.org/wiki/Berkeley_RISC
1981 - Stanford MIPS project under DARPA VLSI Project, John L. Hennessy, 1981-1984 https://en.wikipedia.org/wiki/Stanford_MIPS
1981 - DARPA VLSI Project: RISC processor concept
1981 - DARPA VLSI Project: many CAD tools still in use
1981 - DARPA VLSI Project: 32-bit graphics workstations
1981 - DARPA VLSI Project: fabless manufacturing and design houses
1981 - DARPA VLSI Project: MOSIS semiconductor fab
=================================
--
Steve Jenkin, IT Systems and Design
0412 786 915 (+61 412 786 915)
PO Box 38, Kippax ACT 2615, AUSTRALIA
mailto:sjenkin at canb.auug.org.au http://members.tip.net.au/~sjenkin
More information about the TUHS
mailing list