Operating system is an essential part of a computer system. There are variety of operating systems available in computer market, such as Microsoft MS-DOS, Windows, and Windows NT, IBM OS/2, UNIX, the Apple Macintosh Operating System, and DEC VMS, TOPS-20 and many other popular operating systems.
In this article we will go through one of the most popular multi-user timesharing operating system – UNIX, a trademark of AT & T Bell Laboratories. At one time UNIX was almost small enough to understand and yet was not a toy operating system.
The primary advantage of UNIX is that of its portability. Only a small portion of UNIX operating system depends on the architecture of the machine. The programmer, who shifts from one type of UNIX system to another type of system, needs to recompile his program only. The programmer does not need to bother about this aspect.
The data structures, algorithms and programming languages may be different from machine to machine to achieve the same results. This is the reason, why many versions of UNIX are available for personal computers, microcomputers, minicomputers, large main frames and supercomputers.
Among various versions of UNIX, the AT & T’s UNIX System V, and Berkeley’s UNIX System BSD 4.3 are very important versions. The other versions, such as SCO XENIX, DG-UX, HP-UX, and Ultrix, borrow ideas from either System V or BSD 4.3, or both. Therefore instead of discussing each type of UNIX system we will discuss the At&T’s UNIX system.
History of UNIX
Ken Thompson of the Research Group at AT & T Bell Laboratories, later joined by Dennis Ritchie, in the late 1960s developed the first version of UNIX. The first version of UNIX was a single user system for the PDP-7 computer system and was written in assembly language.
Initially it was written to use an otherwise idle PDP-7 system. At that time even the developers of UNIX Ken Thompson and Dennis Ritchie would never have been thought that they had to make a popular operating system.
It was their selfish motto that led to the development of UNIX and created the most powerful and popular multi-user operating system. Dennis Ritchie joined Bell Laboratories in 1968. Before joining Bell Laboratories, he was involved MULTICS (Multiplex Information and Computing Service) project. After that he worked part time for MAC, the MIT (Massachusetts Institute of Technology) computer timesharing project before joining Bell Laboratories.
Some features of UNIX, such as file system, command interpreter (the shell) as a user process, the use of a separate process for each command, and many other features came directly from MULTICS.
At that time Ken Thompson was working on a project – “Space Travel” which simulated the movement of planets within Solar system. Dennis Ritchie soon joined him. They used an ideal system PDP-7. There were no microcomputers at that time. And the cost of using mainframe at that time was too great. Only minicomputers, such as PDP-7 or PDP-11 were available at Bell Laboratories. The primary limitation of PDP-7 was that there were no software, such as assembler, compiler, operating system, and so on, available on it.
To overcome this limitation, Thompson wrote a cross assembler program running on a large computer GECOS system. Therefore whenever they made any change in the program, they wrote for GECOS system first and then use that cross assembler to get the machine program for PDP-7.
The machine program for PDP-7 was produced, by GECOS system, by punching strategy on a paper tape. After this that paper tape was carried to the PDP-7 machine, load it and then run the program. It was very ridiculous whenever they made a bit of change in the program.
After this harassment, they decided to write an operating system for PDP-7. But unfortunately Bell Laboratories rejected their approach because they had already seen the major failure of MULTICS operating system, which was developed by Generic Electric, MIT and Bell Laboratories as a combined project.
The primary goals for developing MULTICS operating system was to
- Allow more than one user to share the resources of the computer system
- Provide ample disk space and memory
- Allow sharing of data
It was very difficult to maintain MULTICS because it was mainly written in PL/1 and the assembly language of the system. The thoughts behind the development of MULTICS were, no doubt, very good. But its failure made a disaster decision for Thompson and Ritchie. And they failed to get the approval from Bell Laboratories.
After some time Thomson got an opportunity by which he could continue his dreams. They got a PDP-11 machine along with a PDP-10 memory management unit by back door entry. After that Thompson and Ritchie worked quietly on UNIX for many years. You may be surprised to know that initially UNIX was written completely in assembly language like all other operating system of that time.
They took a lot of ideas from MULTICS and XDS-90. That’s why this new operating system was named as UNICS (Unilplexed Information and Computing Service). After some days, the spelling of UNICS was modified to UNIX. But still it was not a pleasant time for both Thompson and Ritchie.
They suffered a serious limitation of UNIX and that was none other than portability. It was so because UNIX was written in assembly language relevant to the system. Therefore when they shift from one type of system to another type of system they had to write each time in a different assembly language.
To make UNIX portable, Ken Thompson designed a new language “B” in 1970. The “B” language was a simplified version of another high level language “BCPL” (Basic Combined Programming Language) designed by Martin Richards at Cambridge University. But unfortunately “B” was too specific and could deal with only specific problems.
After this Ritchie designed another new language “C” in 1972 by inheriting the features of “B” and “BCPL”, and added some of his own features. The primary advantage of “C” language is that it combined features of both high and low level languages. That’s the main reason why “C” is often called as a middle level language.
After this most of the UNIX system was rewritten in “C” by both Thompson and Ritchie together in 1973 with careful isolation and confinement of machine dependent routines. Near about 90% of source code of UNIX was written in “C” language and only 10% is machine dependent in order to control the hardware directly.
Now whenever they shifted from one type of system to another type they needed only a “C” compiler on the new system and to rewrite only the 10% of assembly code for the new system. It made UNIX portable to some extent. Now UNIX was also moved to larger PDP-11 family of computers, such as 11/45 and 11/70. Initially UNIX was used within the Bell Laboratories only. After some time UNIX slowly spread outside Bell Laboratories to a few Universities.
When Thomson rewrote UNIX in “C”, he added multiprogramming and other enhancements to systems that had hardware support for multiprogramming. Thus UNIX supports multiple users on such systems with memory management hardware.
That’s why UNIX was ported to many hardware systems from microcomputers to supercomputers quite rapidly. Bell Laboratories issued UNIX source code at very low prices to many Universities. And fortunately most of the Universities at that time had PDP-11 systems. Therefore the students of such Universities got the source code and made the changes according to their systems and requirements.
In 1978 Version 7 was distributed and replaced Version 6. This version of UNIX worked on the PDP-11 and the InterData 8/32. After this AT & T Bell Laboratories soon realized that UNIX system could be a product, rather than just simply a software tool. The Research Group within AT & T Bell Laboratories had continued to develop their own versions of UNIX.
Next came Version 8, 9 and 10. The later version is available with in Bell Laboratories. The very first UNIX product that AT & T sold commercially was System III, in 1982. It had features of Version 7, and 32V, and also of several UNIX systems. But still it had a lot of problems. Unfortunately System IV never came up. AT & T released directly System V with different releases: 2 (V.2) in 1984, 3 (V.3) in 1987 and 4(V.4) in 1989.
The other UNIX systems developed a group that does not belong to non-Bell Laboratories and non-AT & T was from University of California at Berkeley. University of California at Berkeley had the complete source code of UNIX. That’s why they could easily modify the code. Berkeley produced a number of UNIX versions, called 1BSD, 2BSD, 3BSD and 4BSD.
They got aided from Defense Advanced Research Projects Agency (DARPA) for the development of a standard UNIX system. One of the main primitives of 4BSD was that it provides enough support for Internet networking protocol (TCP/IP). TCP/IP became a de facto standard protocol by UNIX. After 4BSD, they continuously produced the improved versions in UNIX, such as 4.1BSD, 4.2BSD, 4.3BSD, and 4.4BSD.
Berkeley UNIX had a number of facilities such as a new editor (vi), a new user interface (the C shell), and many new system programs. All these improvements made many vendors like SUN, DEC, etc. base their UNIX on Berkeley UNIX. Unix software from Berkeley is released in Berkeley Software Distributions.
In late 1980s, there were two major UNIX vendors – one which used AT & T’s UNIX and the second which used BSD UNIX. There are many differences between these two. We could not use the object code of one type of UNIX system to another type of UNIX system because they have totally different file formats. Although source code could be ported from UNIX system to another by recompiling it.
After some time IEEE came forward to bring the two vendors together under one umbrella and define a standard UNIX called “POSIX” standard. “POS” stands for Portable Operating System and the “IX” is taken from UNIX. Now both vendors were agreed to follow the POSIX standard.
In market we have a wide variety of UNIX and UNIX-like operating systems. The DEC system supports Ultrix operating system, Microsoft provides XENIX for the Intel 8088 family and its new Windows/NT operating systems and mainframes. The usage of UNIX varies from department to department.
But most of these systems are based on Version 7, System III, 4.2 BSD or System V. The last Berkeley release 4.4BSD was finalized in June of 1993. The current set of UNIX system is not limited to those by Bell Laboratories, AT & T, and Berkeley.
The strong point about UNIX is that it is so mature that there are no major bugs left in it. It was initially designed by two Bell Laboratories employees Thompson and Ritchie. Now-a-days it is defined by multinational standardized organizations. The originators of UNIX, Thompson and Ritchie, were honored by the Association for Computing Machinery Turing award in 1983 for their contributions on UNIX.