In 1964, AT&T embarked on an ambitious project to create an operating system to control and automate their telephone network
While electronic switch boards were not rare at the time, such systems were entirely bespoke and required extensive reworking for any alterations or changes to the network topology.
AT&T envisioned a programmable interface that would allow them to alter the underlying network without needing to re-wire the circuit relays controlling the network
This project was called Multics, and was developed by AT&T's research division, Bell Labs
It is important to note that before this, there wasn't really any such thing as an operating system. General Motors had a fleet of programmable computers to control it's production lines, but the instructions were all written by hand to directly control the various hardware robotics, the control system simply automated the execution process. This meant that changes to the underlying role, structure or purpose of the systems, including any computer hardware changes, were very difficult to accomplish. “porting” such control programs to different hardware was nigh impossible, often times requiring a total system rewrite
For their telephone network, AT&T attempted to write a platform on top of which programs would execute
Infrastructure changes would require porting the platform
Porting the platform would bring all the programs and business logic along with it, eliminating the need to re-write hundreds (or even thousands) of individual control programs
They developed a programming language, called B (short for Bell)
The language was designed to abstract out the low-level machine instructions, instead presenting a unified interface to write programs from a higher level
B was also designed for easy porting across hardware
Multics, the world's first “modern” operating system, was written in pure assembly language
but all the programs that ran on top of the operating system, were written in B
Several of the developers at Bell labs felt that the Multics project took a few wrong turns
By all accounts, Multics was large, complicated and a nightmare to maintain
So when they were finished, Bell Labs went about developing what they considered the “right” way to develop an operating system – they named their project Unics
One of these “right ways” of doing things, was writing the operating system in a high level language - This had never been attempted before
Unics was written in B
B had a few shortcomings, so the language was redesigned
and called C (one up from B)
Unics was rewritten in C
also got a spelling change, to UNIX
UNIX was an operating system designed to be redesigned
by that, I mean it didn't try to do everything
instead it did the bare basics
The idea was simple, purchase a UNIX license from AT&T and you got the complete source code for UNIX – then you could customise and enhance the operating system to suit your needs
as I said, it was an operating system designed to be redesigned
Due to it's immense flexibility and modular design, UNIX was a big hit with large businesses
UNIX soon came to dominate the mainframe market, pushing out more expensive, bespoke systems
It's now the 80's, and out of AT&T's licensing of unix came numerous distributions of unix, the big ones being BSD (the UC Berkeley Software Distribution of Unix), AIX (developed by IBM), HP-UX (developed by Hewlett Packard), Solaris (developed by Sun Microsystems) and a whole host of others
The computer is fast becoming a necessary staple in every business environment, not just big businesses, due to smaller machine sizes, falling prices and success stories from early mainframe adopters
The idea of making serious money out of operating systems is realised by software companies.
due to this, a lot of companies began restricting source code level access to their operating systems in an attempt to protect their development and out-do the competition
Previously, people bought hardware
Hardware was what ultimately did the work. Hardware was tactile and easily quantifiable.
Software was a necessity to control the hardware
The idea of selling software was completely new territory
Richard Stallman saw this move to proprietary software as a bad thing, and launched the GNU project in 1983 – mission statement, to develop a unix-like operating system that maintained the once “free” nature of software
In addition to this, the increasingly proprietary nature of unix systems bred incompatibilities that seriously hampered progress
The incompatibilities between unix systems paved the way for Windows NT to stride in and take a chunk of market share (before the early 90's, Windows was a toy used only on cheap home machines by people who couldn't afford better systems)
In 1991, Linus Torvalds started work on Linux – a unix-like operating system kernel based heavily on Minix (one of the many unix variants)
Linus realised he'd bitten off more than he could chew, as developing a kernel (let alone a complete operating system) was too much for one man, so he released his kernel online and accepted the help of others
The GNU project saw an opportunity here
They'd succeeded in creating all the userland programs needed to make an operating system, but they lacked a kernel. So the GNU project selected Linux to be their kernel, and the GNU/Linux operating system was born
Operating systems are complex things, there is no “one size fits all”
(there's something like 3000 kernel options you need to deal with when compiling the Linux kernel, let alone any of the other necessary programs that make up an OS)
because of this, individual people building their own GNU/Linux operating system is not really feasible
So, mirroring what Unix had done many years previously, different distributions of GNU/Linux cropped up – each one catering to a different audience, each one having a different goal
The GNU General Public License (GPL) was instrumental in ensuring that these distributions remained open to all, and didn't fall into a pit of proprietary, incompatible mess that unix systems had
Many (many) Linux distros have come and gone, but a few have stuck around
Slackware, Debian and Redhat being the 3 big ones
but again, like unix before it, there's a whole heap of distributions, each aiming for a different goal
Bookmarks