Explaining the Contribution of UNIX to the Birth of Deliberate/Interative Computing
pretty impressive list of innovations: multi-user/time-sharing, interactive shell, hierarchical file system, multi-tasking, tcp/ip
This is part of the educational quest to finish Pluralsight’s UNIX and UNIX Systems: The Big Picture. See how my quest is going at EDUCATIONAL QUEST: UNIX and UNIX Systems: The Big Picture
The aim of this page📝 is to explain what made Unix exceptional in its early years, interpreted in the light of the “philosophy of history” presented by Ben Thompson in his The End of the Beginning — Stratechery by Ben Thompson. The main assertion is that similar to the automotive industry, in “the twenties” (2020s) we got to the point where the group of major players are more/less finalized here to stay for the foreseeable future:
In other words, today’s cloud and mobile companies — Amazon, Microsoft, Apple, and Google — may very well be the GM, Ford, and Chrysler of the 21st century. The beginning era of technology, where new challengers were started every year, has come to an end; however, that does not mean the impact of technology is somehow diminished: it means the impact is only getting started.
— https://stratechery.com/2020/the-end-of-the-beginning/
- The following are the epochs of the beginning
The contributions of UNIX are epoch-creating and the epoch is that of deliberate computing. Note that in that epoch, the computing resources began to be accessed via two types of computing devices: thin clients (terminals connected to a central computer; UNIX of essence mainly here) and fat clients (PCs doing computation itself) and that
Microsoft DOS appears in 1981 and In 1983, with all this software you have to pay for really starting to harsh his calm, Richard Stallman famously set out to make software free. Maybe this was in response to Gates’ 1976 Open Letter to Hobbyists asking pc hobbyists to pay for software. Maybe they forgot they wrote most of Microsoft BASIC on DARPA gear. Given that computers were so cheap for a bit, we forgot about multi-user operating systems for a while.
— https://thehistoryofcomputing.net/the-advent-of-the-cloud
1. * UNIX CONTRIBUTION TO DELIBERATE COMPUTING#1 > MULTI-USER SYSTEM / TIME-SHARING
Multics system was a joint venture of MIT and Bell Labs and General Electric, which made the hardware. And so the people doing the software were at MIT and Bell Labs, and that got people used to a very nice computing environment, not a batch environment with cards, but an interactive environment, which is of course today… that left the people, Ken Thompson in particular, but also Dennis Ritchie and a handful of others, with a taste for real nice computing environments, but not having one…
— Brian Kernighan
- more than one can be logged into a server at a time
- essential for a busy server hosting lots of apps and servers managed by teams of admins
- not for admins
- running multiple processes for multiple users
- remove shell sessions between computers
…at Bell Labs, Ken Thompson and Dennis Ritchie were working on a project to bring more interactive computing to the world. The project was called Multics. Multics was a time-sharing operating system. The insight of time was that although a single person couldn’t effectively use up the clock time of a computer if you could hook up several people to the computer, maybe they could. And you could do this via time-sharing, basically giving each person a slice of each second so that it felt like they had full access to the computer while really the computer was switching around among them. If you had full access to a computer during your time slice, you didn’t need a punch card system, you could use a teletype terminal. Teletype terminals looked like large typewriters combined with printers and maybe a phone line, and they were originally used for sending telegraphs, I think. You could type in commands and send them directly to the computer using the telephone line and then have the results printed out right away right above you. And with a timeshare system, you could hook up a number of these to a single computer and split time between them. Teletype terminals communicated over telnet, a protocol that’s still in use to this day, although I guess SSH has largely replaced it. The ASCII format of text documents was created for these teletype machines, and that’s why it has weird control characters like the end of the transmission. This was such an interesting time. It was the birth of these interactive computers. Anyways, back to the Multics project
- Adam Gordon Bell > The Birth of UNIX With Brian Kernighan > CoRecursive Podcast](https://corecursive.com/brian-kernighan-unix-bell-labs1/)
2. * UNIX CONTRIBUTION TO DELIBERATE COMPUTING#2 > INTERACTIVE SHELL AND PIPES
The original idea of the standard input and the standard output that you could redirect those to files? I think that was fairly early on. That was probably in almost the first version that let’s say, the first version that had a manual. Oh, that was probably there at that point. And so that’s pretty neat, the idea that I can run the program and, oh, rather than seeing it could come out on paper, I can stick it in a file easily, and the program itself doesn’t know that has happened because the service of redirection is done by the shell, the program just knows that you’re writing someplace. That’s probably quite early the idea of pipes, where you could take the output of one program and run it into the input of another program without an intermediate file, that appeared almost out of nowhere, somewhere, and I will guess, call it 1973 or something like that. The idea had been in the air for a while, Doug McIlroy was particularly very interested in being able to connect programs together like garden hose, and connect another couple of programs in to get some job done. And he’d been talking up then for a long time.
— Brian Kernighan
3. * UNIX CONTRIBUTION TO DELIBERATE COMPUTING#3 > HIERARCHICAL FILE SYSTEM
Early computers, like if you used big IBM computers in roughly 1960 or something like that, they didn’t really have a file system. There were ways to store information, but they were incredibly clunky and they were very device-specific. When you talked about accessing information from secondary storage, you had to know all the weird properties like the number of cylinders on the disc to be able to do it. And so the idea that, gee, you could have directories within directories, kind of obvious in retrospect, but doing it that was, if I recall correctly, absolutely part of Multics or it was variations. And what Ken did in Unix was to make that very clean and simple.
— Brian Kernighan
4. * UNIX CONTRIBUTION TO DELIBERATE COMPUTING#4 > MULTI-TASKING
- multiple processes running simultaneously
- on a non-multitasking a process would have to finish before another starts
- Unix is not the first implementation and the associated time-sharing
- iPhone was also not the first smartphone, however, what matters here was the adoption -
- this both meant the standardization/normalization of many complex workloads
- …important for early success of UNIX
5. * UNIX CONTRIBUTION TO CONTINUOUS COMPUTING > NETWORKING OVER TCP/IP
- early implementation of the protocol underpinning the Internet meant the facilitation of the success of the Internet
- the Internet revolution is a technical prerequisite for the third phase of the “end of the beginning” — which is the introduction of continuous computing
Finally, the beginning may not be over, as suggested in Microsoft and the Metaverse — Stratechery by Ben Thompson