Take some serious time to read through and understand the history lecture, it has been structured to give you a fuller understanding of the roots of the Unix and Linux operating systems.
Unix has managed to influence every operating system available today.
It seems that most of the people who want to work in, or who actually work in Linux do not know the history of the operating system and as you will see, it will give you a greater understanding of the software.
In short, Linux is an operating system based on UNIX (Developed by AT&T's Bell Labs division), which is based on MULTICS.
The following timeline will explain the main events that have affected the UNIX family of operating systems, of which Linux is one.
We pick up our history in the 1950s, when the first important event that affected UNIX took place.
Note | |
---|---|
TTYs and Line-oriented Text Display which was the general input and output devices of the PDP 7 |
The term "tty" stands for "teletypewriter", which was an early form of terminal.
Teletypewriters, such as the one shown in the picture of the PDP-7 REF, were merely automatic typewriters producing hard-copy line-based output on continuous paper.
In these early days of computing, this kind of terminal output did not allow screen or cursor-based programs to function.
Hence the first text editors were "line-oriented", such as "ed" and later "ex". "Vi" was developed later, based on "ex", and was screen-oriented. It used the redrawable ability of cathode ray tube (CRT) displays to show text one screen at a time.
The US government passed a decree imposing a restraint of trade against AT&T. The company was not permitted to make money from non-telecommunications business.
This is significant, because until 1982 (when the US Government finally broke up the AT&T telecommunications monopoly into smaller companies), AT&T could not sell operating systems, i.e. UNIX, for profit.
This had a great impact on the distribution of Unix as you will see throughout the rest of the History section, as AT&T chose to use the product internally first, and then distributed it to computer research institutions such as Universities.
The Multiplexed Time Sharing and Computing System or MULTICS project was a joint attempt by General Electric (GE), AT&T Bell Labs and the Massachusetts Institute of Technology (MIT) at developing a stable multiuser operating system
The aim is to create an operating system that could support a lot of simultaneous users (thousands!).
Multics stands for Multiplexed Information and Computer service.
The people involved in the project at this time are Ken Thompson, Dennis Ritchie, Joseph Ossanna, Stuart Feldman, Doug McIIroy and Bob Morris.
Although a very simple version of MULTICS could now run on a GE645 computer, it could only support 3 people and therefore the original goals of this operating system had not been met, the research and development is just so expensive and Bell Labs withdraws their sponsorship. This meant that the other interested parties could not afford to carry the project on their own and so they also withdrew.
Dennis Ritchie and Ken Thompson now decide to continue this project on their own.
Ken Thompson Dennis Ritchie wrote a Space Travel Game that was actually a serious scientific astronomical simulation program. However the game was a disaster as the spaceship was hard to maneuver and used a lot of resources to run.
After developing the Space Travel Program they had learnt a lot more. With Canaday involved as well they were able to create the design for a new file system, which they built on PDP-7, called UNICS (Uniplexed Information and Computing Service), and this later became UNIX.
A note to UNIX traditionalists: We use the spelling "Unix" rather than "UNIX" in this course only for the sake of readability.
They attempted using a Fortran program to further develop Unix, but they found that it was not what they were looking for and so they turned to BCPL (Basic Combined Programming Language).
B was developed from BCPL and it was the first high-level language to be used on Unix with a PDP11/20.
Lets draw a diagram of three different machines and then lets take a look at why developing in assembler is not always the best idea:
Remember that all a computer actually does is mathematics.
Am operating system is a "resource allocator" and a "controlling of operations" program.
When computers first started becoming popular we had to use punch cards or load the programs directly into memory manually.
Assembler is machine code and is specific to the machine type and hardware that you are working with. The instruction written for one machine cannot work for another machine at this low level.
A computer has registers and instruction sets, and the instructions are binary coded, the assembly program talks to the machine in assembler which is translated to binary code.
So, if writing a program for a PDP-7 and using assembler, when wanting to move the program to a PDP-11 you would have to rewrite the entire assembler program, this time to suit the machine and hardware type for a PDP-11.
To remedy this, developers invented compilers for application programming tools. In other words if using Pascal to develop, the Pascal compiler for a PDP-7 would translate your program into assembly program and then assembler code for a PDP-7.
If wanting to port that program to a PDP-11, then get the Pascal compiler for a PDP-11 and recompile the original program on the PDP-11. It will then work as above.
This explains why the higher-level languages started being used, such as Pascal, Fortran etcetera. They are there to provide libraries between program and assembler. A compiler would be needed for each specific machine.
These days a compiler automatically generates the assembler code.
So, the first Unix was written in the Assembler program of a PDP-7 machine, as we have now discussed though this is not going to make it easily portable to another type of architecture.
At this stage and because of the success of Unix Bell Labs now chooses to re-sponsor the project.
B is still considered too slow, so the team worked to develop Unix in a faster development program called New B or NB. They could now also afford to upgrade to a later model of the PDP range called a PDP11/45.
The C Programming language was developed in 1972 as a result of Ken Thompson and his team wanting to have a language to write Unix in. Although Ken Thompson worked with C initially eventually they needed more functionality which Dennis Ritchie then added.
It is also at this time that Unix "pipes" are also now developed, and this is seen as a milestone because of the power it added to the system [1]
Unix now had its own language and philosophy. Its power was generated by stringing programs together not by any one individual program.
A quote from "A quarter Century of Unix" by P Salus" states:
write programs that do one thing and do it well.
write programs that work together
write programs that handle text streams, because that is a universal interface.
More and more requests are coming in to AT&T to allow other companies and users to use the Unix system.
At this stage Unix is firmly entrenched at Universities and Colleges and AT&T refusing to supply bug-fixes and support on the system forced users to work together. (The start of Unix User Groups.)
Unix had been sold as a text processing system at AT&T internally and here the developers and users were the same community and therefore got direct feedback for new product and for bugs etcetera, Support was right there in same company, maybe even on the same office floor.
By using research organizations at Universities the bright varsity students got sucked up into this type of company after their studying, this was beneficial to research organizations and they continued to give the system to students.
Unix is still used these days used to teach students computer science.
The US patent office held the rights at this stage.
There are now 500 installations throughout the United States, mainly at Universities.
After 1974 military and commercial enterprises started demanding licenses to use Unix and AT&T decided to close the source and supply only binary distributions.
Berkley UCB did a lot of development on DARPA TCP/IP (bright brains for a good price), and the students also started adding on various other utilities, ultimately deciding to write Unix from scratch. (BSD Unix)
BSD3 utilities are available in System V Unix, when installing the operating system you should be asked if you would like to install the BSD Utilities, they will be installed into the /usr/ucb directory.
Unix, is able to be ported to an IBM 360, an Interdata 7/32 and an Interdata 8/32 proving that Unix is portable to systems other than those manufactured by DEC.
1978 "The C Programming Language" by Ritchie is published.
1978 Bill Joy creates "the "vi" editor a full screen editor, and at the same time he sees the need "to optimize the code for several different types of terminals, he decided to consolidate screen management by using an interpreter to redraw the screen. The interpreter was driven by the terminal's characteristics - termcap was born,". P Sulcas
All other Unixs' branch from these two variants of the Unix code, AT&T Unix and BSD Unix. (See timeline below).
The release of AT&T Version 7 was the start of many of the Unix ports, the 32 bit ports and a product called Xenix, (an SCO and Microsoft joint product, and the fist Unix port that could run on an 8086 chip).
By 1980, AT&T found that the operating system was a viable option for commercial development. Microprocessors were becoming very popular, and many other companies were allowed to license UNIX from AT&T. These companies ported UNIX to their machines. The simplicity and clarity of UNIX tempted many developers to enhance the product with their own improvements, which resulted in several varieties of UNIX.
From 1977 to 1982, Bell Labs combined features from the AT&T versions of UNIX into a single system called UNIX System 3.
Bell Labs then enhanced System 3 into System 4, a system that was only used internally at Bell Labs.
After further enhancements, System V was released and in 1983, AT&T officially announced their support for System V.
1982 Sun developed the Sparc processor, licensed BSD Unix called it SUN OS.
1983/4 Then licensed AT&T System V, made their changes and called that version Solaris. There is a lot of cross coding and an interesting note is that if though if doing the "uname" (uname is a command that supplies details of the current operating system for your interest) command on Solaris the report says SunOS is the operating system.
1985 - Some quotable quotes - "Xenix is the operating system future" and "640 KB memory is enough for anyone"
In 1989, AT&T organized that System V, SUNOS, XENIX, and Berkeley 4xBSD were combined into one product called System V Release 4.0. This new product was created to ensure that there was one version of UNIX that would work on any machine available at that time.
The different versions of UNIX prompted AT&T to form a UNIX International Consortium. The aim of this consortium was to improve the marketing of UNIX, since the market was starting to demand clarity on standardizing the product.
By 1992, UNIX was readily available on an Intel platform, providing mainframe-type processing power on a PC. This made UNIX appealing to the end-user market.
Table 1.1. Major vendors/ hardware and related operating systems.
Vendor | Hardware | Operating System (Unix based) |
---|---|---|
HP | PARisc | HP-UX |
IBM | RS6000 / Power PC | AIX |
Digital / DEC / Compaq | Alpha | Digital Unix |
NCR | DG-UX | |
SCO | Intel PC Compatible | SCO Xenix, SCO Unix, SCO Open Server 5, UnixWare 7 |
Source code has changed hands a few times:
year | Owner of Source code |
---|---|
1969 | AT&T |
1993 | Novell |
1995 | SCO |
2001 | Caldera, which started trading under the name "The SCO Group" in 2002 |
Note | |
---|---|
|
[1] C is the most popular programming language developed and the most portable. All the major operating systems have been written in C. i.e. Netware, Ms Windows, (5% still written in assembler to do with drivers). MS Windows is also now been written in C++)