The rise of Microcomputers and the fall of UNIX
At the beginning of 1980, UNIX had become widely popular in big institutions. But, as you may remember, there was no such thing as "an official UNIX release".
Which means that each vendor was doing its own version, mixing stuff, writing their own. This led to what was call the "UNIX wars".
But those UNIXes were mostly proprietary. It was now widely accepted that software code, including binaries, was copyrighted. Software companies could then do their own UNIX stuff, modifying it and sell licenses to customers who had no way to see or understand the code.
The world envisionned by Bill Gates were people would have to pay to use a software was now the new normal. Proprietary software has been invented.
GNU is Not UNIX
Richard Stallman liked UNIX but he wanted to be able keep sharing it with the world. In 1983, he decided to rewrite a new UNIX from scratch under his newly written copyleft license: the GPL.
The project was not UNIX and called GNU for "GNU is Not UNIX".
As UNIX was a huge set of different software, he planned to rewrite them all: sh (shell), ls, head, tail, mv, cp, cat, …
The first GNU tool was the GNU C Compiler: GCC.
At the time, C compiler were very expensive and often hard to use. GCC was so good and free, it quickly became a favourite. It is still widely used today!
But Stallman was not alone: using newsgroups, Stallman announced his GNU project on September 27th 1983 but, officially, coding only started in January 1984 after Stallman had left his job at MIT (in order to prevent MIT from interfering with the copyleft license).
The project grew. Compatibily with UNIX allowed porting third party software like the X Window System from the MIT.
The only missing bits of GNU was the kernel. Work had started on a micro-kernel called Hurd. It was believed that Hurd would soon be ready. Work is still ongoing to this day and still in the "soon to be ready" stade (which is a source of reccuring joke in the community).
POSIX
Due to the raging UNIX war, people using UNIX were hitting incompatibilities, inconsistencies. This led to a standardizing effort that was started in 1984. The goal, under the IEEE umbrella, was to create an "UNIX standard". The idea was that any POSIX-compliant software would run on any POSIX-compatible Operating System.
This is an important milestone because it is one of the first attempt to standardize interoperability between software.
As the goal was to make a "Portable Operating System", one member of the commitee suggested to call it "POSIX". That member was Richard Stallman.
The POSIX standard is still very important. In professional settings, it is not rare to encounter shell scripts that should be written "POSIX compliant" in order to run on a wide range of machine. Until 2025, MacOS was even formerly POSIX certified.
The PC (and DOS)
But while we are talking UNIX and big computers, something else was happening in teenagers bedrooms: microcomputers.
As said, those computers were mostly incompatibles with each others and seen by professionnals as "toys".
In 1980, IBM, which had become a leader on the market of super computers wanted to launch their own microcomputers, called the "Personal Computer" or "PC". The particularity of the PC was that IBM didn’t believed much in it. IBM CEO was heard saying "There’s probably a market for 4 or 5 PC in the world".
Instead of developing a whole new computers, they decided to use off-the-shelves components. This was not foreseen but this would have a considerable impact because it means that, suddenly, anybody could build a computer that was "IBM PC compatible".
Being under investigation for monopoly abuse (like Bell Labs before them), IBM decided to avoid any kind of vertical integration. They had their own OS for the PC (OS/2) but it was not completely ready and this could be seen as a monopoly abuse. So they decided to license another operating system for small computers.
IBM CEO was serving on a board with Mary Maxwell Gates, whose husband was also a very influential lawyer. He knew that their son, Bill Gates, had a small company doing software. He asked him which operating system he should choose.
Without hesitation, he answered CP/M, which was quite popular. In fact, it was really dominant in his niche market. The number of compatible computers was growing and people were buying CP/M for all its advanced capabilities.
Gary Kildall, CP/M founder, was not really interested by the IBM PC project or didn’t like IBM or there was a miscommunication. Story is unclear. But, for whatever reason, IBM did not reach an agreement. Hearing that, Bill Gates proposed to sell IBM his own operating system. He had none, it was a bluff but he still tried.
IBM accepted and Bill Gates suggested not to be paid once big lump sum for the work but one license fee for each computer sold (ironically, this might have been exactly what Gary Kildall asked and was refused by IBM). IBM thought it was a very good deal for them as they didn’t expect to sell many PC. They also thought that when OS/2 would be ready, people who quickly install it anyway.
But Bill Gates added an unbelievable close: IBM could not sell PC without the Microsoft Operating System. It is still completely a mystery why IBM accepted that.
Not having an operating system, they quickly found a kind of amateurish CP/M clone called "Quick and Dirty OS". They bought it for 50.000$ and asked its creator to port it to the PC hardware. It was then called "PC DOS" and was installed on every IBM PC.
DOS was slow, single user, single process and without any graphics. It was really a 10 years throwback. But cheap PC clones quickly appeared and, to be like IBM, they had to run DOS. Which means that game makers started to support DOS (which was sometimes very difficult, due to the lack of features in DOS).
When OS/2 was released, with wonderful capabilities, nobody cared, everybody was using DOS.
Microsoft started to work on a visual interface for DOS, called Windows. It was so bad that it would not be widely adopted before the 3.1 version, in 1992.
Linux
Andrew Tannenbaum, professor at university of Delf, had created Minix, a mini-UNIX for which you could study the source code. It was for educationnal purpose only.
A young finnish student called Linus Torvalds really wanted to use UNIX but could not afford a UNIX computer. He thus bought a PC compatible and used Minix. As Minix was not enough for his needs, he wanted to connect to the UNIX stations of his university. But to do that through his PC, he would create a software running directly on the hardware. At first, it was only a news reader. Then,as he played with assembly, he managed to had multiple processes.
He announced his project on the minix newsgroup.
---
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix –
I’m doing a (free) operating system (just a hobby, won’t be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I’d like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).
I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work.
This implies that I’ll get something practical within a few months, and
I’d like to know what features most people would want. Any suggestions
are welcome, but I won’t promise I’ll implement them 🙂
Linus (torvalds@kruuna.helsinki.fi)
PS. Yes – it’s free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that’s all I have :-(.
---
As he had used GCC and found it really helpful, he decided that his software (soon called Linux by other people) would be under the GPL license.
It would start accepting contributions. He still doing it to this day.
The Linux kernel was born.
Richard Stallman heard about it and immediately saw that Linux was the missing piece of the GNU project. He asked everyone to called the whole system GNU/Linux as Linux was only the kernel.
Berkely vs Bell Labs
The legal uncertainty regarding many UNIX led lot of people to invest in Linux, which was known to be a clean-room implementation of a POSIX system.