This article is part of our Hackers Museum guest posts series by @the_psychobilly, where we review the foundations of the hacker culture.
- HACKERS MUSEUM PART #1: A SHORT INTERNET HISTORY
- HACKERS MUSEUM PART #2: CYBERPUNKS
- HACKERS MUSEUM PART #3: CAN I HAZ BBS?
In this episode we’ll focus on the origin of the most ubiquitous and successful OS in the entire computing history. We all use linux or Unix-powered machines like MacBooks, for it leading inter-compatibility, design simplicity ( everything is a file ), powerful network stack, without thinking much of its origin. It became the biggest open-source project of all time by the number of people and code base commits. Free Unix OS almost have decimated commercial operating systems, forcing them to open more and more. Unix avatars and branches are numerous and prosperous – Let me introduce you to the family.
The Grand Father: Multics.
The only two Universities owning an IBM 7094 mainframe in 1962 were the MIT and the University of Michigan. Both Mainframes were donations from IBM. Those machines costed around 2.9M 1960 USD$, equivalent to 25M$ in 2021. Having a chance to code on such machines implied you physically hit the Tech Square. Those mainframes and the global marketing power of IBM killed BULL, a french company, and their GAMMA60 mainframes. Those GAMMA60 were the most advanced computer of their time. In 1957 they were the first multitask computers. Like often, unlighted corporate decisions lead to historical size consequences. This had an important repercussion on the creation of Unix Father: Multics. Bull advanced technology had been acquired by General Electrics in 1963. This allowed for the development of their GE-645 Multics multitask mainframe.
Early IBM 7094 systems were only able to slurp strips of perforated paper coding assembly instructions ( FMS ). Each instruction sequence formed a batch and were of linear execution just like circuit network, and spit another strip as output.
CTSS, MAD and time-sharing systems.
The concept of time-sharing OS appeared in 1961 with the CTSS OS. It’s revolutionnary root concepts appears rather commonplace nowadays: a background process lives to keep track of program interruption and resume tasks, thus allowing to share a computer execution time between multiple users – or multitasking. CTSS introduced the BREAK instruction and execution hold.
CTSS also offered each user a dedicated system file storage, processes and execution compartmentalization, and finally a terminal access from 1963 on. CTSS built the bases of the multi-user paradigm and logic.
You MAD, bro?
MAD, or Michigan Algorithm Decoder language was a FORTRAN evolution. FORTRAN was one of the first interpreted language. MAD was running on the 7094. Why you MAD, bro? would you ask. Well because when the compilation failed it returned the face of Mad Magazine comic book’s mascot Alfred E. Neuman. Pretty wild.
RUNCOMS AKA the SHELL
In 1963, user terminals appeared. Typing the same batch of commands was tedious and repetitive. If you read our HACKERS MUSEUM #1, you may know of Louis Pouzin as the inventor of the datagram, but in 1963 he was facing a terminal at the MIT and thought users needed a command interpreter. He used MAD to create RUNCOMS, the first command-line interpreter. Simple commands were calling complex combinations of batch scripts wrapped inside subroutines.
That was comparable to the relation an interpreted language instructions has with assembler, just on a higher level and inside a terminal command line. He just invented the shell! He then went back to France to boot up the internet foundations and Glenda Schroeder implemented RUNCOMS inside the Multics OS
Multics is what’s closest to Unix and drawn the bases principles of it. The project started in 1965 as a joint by MIT, Project MAC, Bell Labs, and GE. Multics concept was to provide interactive access to multiple remote terminal users on a single computer. It introduced a tree-structured reliable file system, peripheral devices access to the OS, a complete set of shell commands, segmented users and memory, high-level language implementation and symmetric multiprocessing. The GE-645 was the first Multics-native computer, its use went widespread in the 70s, notably in Universities, military systems and car manufacturers until 1985 when Honeywell and AT&T corps dropped the project (another unlighted corporate decision). Others projects had known the same faith in that era.
This original sin was the lightning spark that initiated the free software movement: the Free Software Foundation and the GNU Manifesto. The goal was simple but meaningful: never allow again a single corporation or an executive in the position of being able to kill a project with a line of pen again.
UNICS, Wait, WHAT?
Some said it all began as a game. A space travel game.
Some researchers at Bell Labs, Ken Thompson and Dennis Ritchie were busy writing a space exploration game on a spared PDP-7 sitting unused at a corner of the lab. They had to cross-compile their code on a Multics machine, the GE-645, but soon decided to write an assembler, a minimal file system and a kernel to do native development on the DPD-7.
Their project was called “Unics” as a pun to Multics complexity. Unics had nothing comparable to Multics in terms of power, reliability, and general competence, but it was a funny, portable and lightweight POC that rapidly spread across the lab on non-strategic systems. Those systems eventually survived and soon AT&T created a “Unix Systems Group” for internal support, that evolved in the UNIX Software Operation business division responsible for the commercialization of AT&T UNIX System V.
UNIX was born, it spread to other labs, then to universities. Things got serious. in 1975, a group for UNIX users was created.
Those USENIX – for “Unix Users Group” – folks made an impact of astral dimensions on the computer landscape. Ken Thompson had drawn the bases of UNIX, UTF-8 and even the GO language, Dennis Ritchie invented the C language and compiler, which served to write the first UNIX kernel, and still is the most used computer language today.
GNU and the Free Software Foundation
On September 27, 1983, Richard Stallman, a MIT Artificial Intelligence Lab engineer, responsible for the notorious EMACS editor, proposed the GNU initiative to the net.unix-wizards newsgroup. GNU stands for ” GNU’s not UNIX “. In 1983, UNIX had forked in multiple semi-proprietary flavors, undermining the general interoperability. Stallman felt something had to be done radically. He left his day job to prevent any corporate interference with the project, and published the GNU manifesto. GNU Manifesto states that computer users should have access to free and good software they can use the way they want, fork them, patch them, without stumbling on copyrights and corporate restrictions. GNU came with a free software license: the GNU General Public License. That license is here to ensure that a corporate entity wouldn’t be allowed to proprietary license portions of code they borrowed freely from an open-source project that didn’t explicitly have one.
The GNU project originally was to create a UNIX-compatible kernel named GNU HURD and a set of software that would cover every OS user basic needs. HURD development had been delayed multiple time. In 1991, it was still in an early development stage when a computer science student at the University of Helsinki, Linus Torvalds posted on comp.os.minix newsgroup the announce that he had wrote a minix-alike kernel for the Intel 80386 architecture from scratch.
LINUX, BSD, POSIX and the Unix War
LINUX (Linus Unix) was born and took HURD out of speed: it was available and functional, something HURD hasn’t achieved by that date. In March 1994, Linux 1.0.0 was released with a graphical interface based on x-window system. Everyone on-boarded the project because Linux had been the first functional GNU friendly* kernel. It was released under the name GNU+Linux ( GNU tools + Linux kernel ). The rest is history, and the machine on which you’re reading this article on have great chance to be a Linux-flavored machine.
*Linus notable lousy record keeping of code license had spurred many debates on whether Linux adhere fully to the GNU philosophy.
Others great UNIX kernels had also spawned and forked, that eventually became massively used OS, like MacOS. The oldest one is the BSD family, another mention is for SUN Solaris and SGI’s IRIX. In 1988, the IEEE Std 1003.1 standardization effort sealed Unix systems interoperability. Those IEEE specifications are now known as POSIX compliance.
We reviewed the history of UNIX inception, please refer to the Unix wars article for more.
Hope you enjoyed the journey. Take care and use free software now you know the importance of such philosophy. ( Also stop spreading Stallman memes 😉 )
I don’t resist the urge to link you to this 1982 video. Old School Kewl!
READ MORE …
The IBM 7094 and CTSS 1963
Robert Fano explains scientific computing
Introduction and Overview of the Multics System
Time-sharing and minicomputers
The UNIX-HATERS Handbook ( bon appetit! )
Unix, a Hoax?