History of unix

From LQWiki
Jump to: navigation, search

This article deals with the history of Unix in general, and Linux in particular.

Unix

Origins of Unix

In the late 1960s, AT&T Bell Labs, MIT, and General Electric collaborated on a computer called the GE-645. The GE-645's operating system was called MULTICS (Multiplexed Information and Computing System). After AT&T pulled out of the project, some employees continued working on it in their spare time. Before the split, AT&T employee Ken Thompson had written a game for the GE-645, called Space Travel. However, the game was too expensive to run on the GE-645. With assistance from Dennis Ritchie, Ken Thompson ported the game to a disused DEC PDP-7, using PDP-7 assembly code.

Inspired by this project, Thompson and Ritchie lead an informal team to develop an Operating System for the PDP-7. This OS was dubbed UNICS (Uniplexed Information and Computing System) by team member Brain Kernighan, since only two users could use the OS at a time. After one too many "eunuchs" puns involving Unics being a neutered clone of MULTICS, the name was changed to Unix.

Up to this time, AT&T had provided no funding for this project. Now AT&T assigned the team to developing a "text processing system" for the PDP-11/20. This system consisted of UNIX, a simple text editor (probably similar to sed), and the runoff formatting tool, which eventually evolved into troff.

Unix Matures

On November 3, 1971, the Unix Programmer's Manual was released.

In 1973, UNIX was ported from assembler code to C. This was an important milestone in UNIX's development. Previous operating systems were written in assembler, which confined an operating system to a single architecture. Porting to C allowed UNIX to be ported, with relative ease, to any computer that a C compiler existed for. At this time, UNIX was first made available outside of AT&T.

By 1975, Versions 4, 5, and 6 were released, and the pipes concept was added.

By 1978, more than 600 computers used UNIX.

The Commercialization of UNIX

Portions of the paragraph on the Lions Book were taken from the Jargon File.

In 1976-1977, Source Code and Commentary on Unix Level 6, popularly called the Lions Book, was written. The two parts of this book contained (1) the entire source listing of the Unix Version 6 kernel, and (2) a commentary on the source discussing the algorithms. These were circulated internally at the University of New South Wales beginning 1976-77, and were, for years after, the only detailed kernel documentation available to anyone outside Bell Labs. Because Western Electric wished to maintain trade secret status on the kernel, the Lions Book was only supposed to be distributed to affiliates of source licensees. In spite of this, it soon spread to many of the early Unix hackers.

In 1979, Version 7, the last Research UNIX, was released. Throughout the 1980s, Versions 8-10 were created, but the were not widely released. These versions did lead to Plan 9 though.

In 1982, the first commercial version, which no longer included source code, was released. This was System III and it was based on Version 7. AT&T's subsidiary, Western Electric, continued to release earlier versions of UNIX, causing some confusion.

In 1989, System V was released. It reincorporated some features from earlier versions of UNIX, and included vi and curses from BSD. It also supported the DEC VAX.

BSD

Beginning in 1973, AT&T shared UNIX's source code with many universities and companies, including the University of California - Berkley. This code was used to teach courses in Operating System Design, and the students made many extensions to it. In 1978, the University released its own version of UNIX, incorporating the student's work, but distribution of this version required a license from AT&T, since the resulting code contained copyright-able material from them.

By 1988, the students had replaced virtually all of AT&T's original code. The remaining AT&T code was purged, and the result was released under the BSD license. In 1991, the source code for a completely free UNIX was nearly complete, as NET/2. A outside company, BSDi, bought the code and ported it to i386. In 1992 USL, who now held rights to the AT&T code, sued BSDi in the case USL vs BSDi. Although the case was inconclusive, BSDi largely won, and it is generally understood that the holders of the AT&T code have no rights to BSD. This lawsuit did set back development of BSD, and it is argued that, if not for the lawsuit, BSD would have crowded out Linux before it even got started.

BSD pioneered many UNIX concepts, such as IP stacks and sockets. Since the BSD license is not copyleft, virtually all modern operating systems, including Windows include BSD networking code.

Sun Microsystems

For more information see the article on Sun Microsystems.

Another major player in the history of UNIX is Sun Microsystems. The company was started by students from Stanford University. SUN stands for Stanford University Network. The Sun-1 was released with Unisoft's V7 UNIX. In 1982, Sun released a BSD-based UNIX: SunOS. In 1992, Sun, in collaboration with AT&T, combined BSD and System V to make Solaris.

The GNU Project

For more information see the article on GNU.

On September 27, 1983, a year after AT&T had stopped including the source code with UNIX, Richard Stallman announced the GNU project on the usenet. Distressed by the growing commercialism of software development and the resulting breakdown of the hacker ethic, Stallman announced the creation of a project to create a completely free clone of UNIX.

The work really started on January 5, 1984, when Stallman quit his job at MIT, to prevent MIT gaining any rights to Project GNU's work. In 1985, the Free Software Foundation was founded.

By 1990, most of the operating system was ready. The FSF had a editor (emacs) and a compiler gcc, but no kernel. Work on the FSF's kernel, the HURD had stagnated. And then Linux happened on the scene...

Since the Linux kernel, by itself, is not a functional operating system, and virtually all Linux distros bundle GNU tools to form a complete operating system, the Linux operating system is more properly called GNU/Linux, but few people call it that.

Minix

Andrew S. Tanenbaum wrote Minix as a simple, educational, example Unix-like operating system. It was published 1987 as an appendix to Operating Systems: Design and Implementation. Tanenbaum resisted any attempts to expand or extend Minix, since that would defeat its purpose as a simple "trainer" OS. Tanenbaum orignally kept all copyrights to Minix, but later versions were released under the GPL.

The Birth of Linux

The Linux operating system was originally written by Linus Torvalds, a native of Finland, when he was studying for a graduate degree in computer science at Oslo University.

As part of his coursework, Linus had studied the Minix operating system, which was a cut-down UNIX variant distributed with source code that was primarily used for educational purposes. At that time mainstream UNIX operating systems were generally used on mini-computers, and the versions that were available for PC computers lacked the power of their larger cousins due to the limitations of the PC hardware.

Intel's 80386 chip was found in most common computers, and Linus realized that his PC was capable of doing far better multi-tasking than what the Minix implementation was doing, so he started writing a little multi-tasking Unix-like kernel.

This basic kernel could not do much on its own, and as he had created and supported it with Minix tools and utilities, these were not capable of properly exploiting the additional powers it had to offer.

This did not bother Linus much, as he had only written it out of technical interest, and as such he threw it up on an FTP site so that others could toy around with it.

Long before this, Richard Stallman (or rms as he is usually known) had started the GNU Foundation. Its objective was to build a completely Free version of UNIX. The GNU Foundation had already built an impressive array of software development tools and general Unix utilities, but they had very ambitious plans for the kernel, which they called the HURD and this was many years away from being usable - and, indeed, still is.

Many people who saw Torvalds' little kernel saw an opportunity, and started fleshing out the Linux kernel, as it was later dubbed, by matching it up to the existing GNU software.

This was to have far reaching effects. The GNU utilities and applications had been developed and tested on existing and established Unix platforms. The early Linux developers did not modify the existing applications so that they would run with Linux, they modified Linux so that it would run the GNU suite. Subsequently Linux was born 'UNIX compatible', and it was soon possible to compile and run a whole suite of standard Unix software with virtually no modifications. Most of the software that was present in the early Linux distributions (indeed a good deal of the code that is used today) was originally developed long before Linus had even thought about writing an OS.

In these early days, potential Linux users had to download all the bits by ftp and painfully stich the system together, resorting to newsgroups for information and help. Linux users were limited to people with good internet access, who were few at that time and mostly in educational or government institutions. Dial-up internet access had only just become available but, even so, speeds were so slow that downloading a whole OS was out of the question.

With Linux becoming a usable OS, interest was spreading out from the academic world and into the Unix community in general. In particular people who worked with Linux systems liked the idea of having a free 'UNIX' they could install on thier PCs at home or used for test and development work.

Pre-packaged Linux

That lead to the first Linux distributions, SLS was the very first, but was soon followed by Slackware and Yggdrasil. These early distributions were not much more than a working Linux system compressed into a series of packages with scripts to help you install and configure it. They were only suitable for people who already knew Unix like operating systems.

Shortly thereafter, several commercial concerns were founded with the scope of making Linux into an easy to install and supported product, including Red Hat and SuSE. The Debian movement was formed with the aim of making a purely Free distribution of Linux.

As this was happening, the WWW was being born and the great internet explosion had started. Unix is intertwined with the history of the Internet. You could argue that the Internet is based on Unix networking techniques, or conversly that UNIX was born into Internet standards. But whichever way you look at it, Internet standards and techniques have always been at the core of Unix operations, and thus nearly all Internet server applications were running on Unix-type systems. The explosion in Internet access led to a large demand for low cost Unix-like servers that did not require the power and mission-critical reliability of typical high cost UNIX installations. Linux and BSD (another open source UNIX) leapt into the void. The very open nature of Linux development meant that it was much quicker to adapt to the emerging needs of the boomming Internet market, and it soon established itself in the lead for most of the smaller Internet server applications.

By now Linux was well known in the Unix world, and simple webservers were not the only production applications it was handling. Many of the Unix developers who had first used Linux to play around with were beginning to realise that it was stable enough to handle tasks they were currently assigning to much more expensive systems. Linux was not, and probably is still not, as robust as the big names in the Unix world such as Solaris, BSD or AIX, but whereas these systems have always put robustness under high load at a premium, Linux's maverick-like and user-led development was making it ever more feature rich, whilst the continual re-use of old established and tested code meant that it nonetheless had a stability that most considered superior to other low cost OS contenders of the period such as Windows NT or OS/2.

Linux had suddenly gone from a techie's toy to a mainstrem Unix contender for production applications or, as many people put it at the time, Linux had arrived.

1998 - Open Source movement