An operating system is the fundamental controlling program for the whole computer, regulating the functions that are undertaken. It categorizes the computer’s hard disk into files, whereby a file refers to a collection of disk blocks that stockpile information that the user wants to keep together. According to Arora (2003, pp 56) an operating system refers to software that functions as an interface between the computer hardware and the user. It functions as a resource manager, whereby resources refer to hardware such as main memory, processor, I/O devices, hard disk and other peripherals. It is the operating system that allows each folder or file to be assigned a name, referred to as file or folder name, making it simpler for human counterparts to instruct the computer the disk blocks to be accessed. These files can be organized into directories that in turn can be assembled into bigger, more comprehensive directories. Operating systems make it possible for users to perform system functions, like copying files and creating directories, and run application programs. Other functions performed by an operating system include scheduling and running all tasks on the computer. It also regulates or controls all the resources of the system like tape drives, modems, printers, memory, CD-ROM drives, network connections , files on disk and terminals. Some of the common operating systems currently in use are Windows 97, Windows 2000, and windows 7, Windows NT, Windows XP, UNIX and Apple Macintosh. However, the fundamental aim of this paper is the history of UNIX operating system; including its features and those who contributed to its development and success. Compared to other popular operating systems, UNIX has a large number of commands and longer history. Although, numerous schools have contributed to its development, the original contributions by Berkley (UCB), University of California and The Bell Laboratory of AT&T are notable (Afzal, 2008 pp88).
It is worth noting that during the earlier years of 1960s, most computers were operating in batch mode, running single tasks. This forced many programmers to utilize punch cards when inputting their programs and then wait on the line printer (Perales, 2009 pp 105).In 1969 an operating system, named UNIX was developed as a response to programmers’ frustrations as well as the need for emerging tools to assist them with their tasks. UNIX is a multi-tasking operating system; it has the capability to sustain simultaneous execution of two or more active processes. This means that more than one user can login into the system concurrently and execute programs. In simple terms UNIX provides a virtual computer to each user through the establishment of multiple address spaces, simulated processors and the like.
As explained by (Taylor, 2005 pp 124), a researcher at Bell Labs called Ken Thompson was involved in a project of a designing a computer game. The game involved a simulation of the solar system but it was rather costly to run inefficiently in the GE computers. As a matter of fact the cost of running the game was placed at $75. Ken Thompson in developing a much easier platform for the game to run in ended up with an operating system that could be referred to as user unfriendly. This marked the genesis of the UNIX operating system and all the other related systems. As a matter of fact the initial system created by Thompson proved to be very expensive and Bell laboratories was later forced Thompson to withdraw from the project. However, this was somewhat more of blessing because Thompson began to design a much cheaper operating system. The version created by Thompson proves to be efficient in the Telephone industry because it allowed for much easier networking and the creation of various programmes. Furthermore, AT&T Company began distributing copies of UNIX to universities and the popularity of the operating system began to grow exponentially. According to Venkateshmurth, (2009,pp93) university of California at Berkeley was among the earliest universities that had interest in UNIX operating system plus its development. The Berkeley team played a vital role in the development of important utilities as well as many significant technical contributions. For instance, an editor referred to as the ex editor as well as a Pascal compiler were designed and developed by Chuck Harley and Bill Joy, then graduate students at University of California Berkeley, in 1974. Afterwards the so called ex editor, which functioned as a line editor as well, was referred to as the vi editor, after screen incorporating screen-editing facilities. Bill Joy is also credited for the introduction of C-Shell (csh). In short, the Berkeley team helped fill the gaps left by the AT&T team via their vital contributions. The Berkeley team later released their version of the same operating system called BSD-UNIX in the spring of 1978. Since then University of California Berkeley has developed and released numerous BSD. These releases are called 4.oBSD (1980), 4.3BSD (1986), 4.4BSD (1993), 4.1BSD (1983) and 4.2BSD (1981) (Strebe, 2002 pp 76).
The work by the Berkeley team drew DARPA’s (Defence Advanced Research Project Agency) attention which later funded the Project i.e. UNIX systems development. The primary interest of DARPA in this project was the development and incorporation of TCP/IP network protocol suite. The financial assistances from DARPA made it possible for University of California Berkeley to release the various BSD releases as mentioned earlier. Other important technical contributions by the University of California Berkeley team include fast file system, Virtual Memory System (VMS), socket facility, reliable signals implementation, large file names and TCP/IP. After the release of the 4.4BSD, lack of funds, inability in the management of huge and complex system by a very small team of researchers and stiff competition from outside commercial organizations made it impossible for the UCB team to continue working on the advancement of UNIX system.
Contribution by the Bell Laboratory
According to Strebe (2002 pp83) the genesis of UNIX can be traced to mid 1960s when an American Telegraph and Telephone, Honeywell, General electric, Massachusetts Institute of technology and the Bell Laboratories of AT&T started a joint venture project to develop an information utility. The main aim was to provide computer based services twenty four hours a day, three hundred and sixty five days a year. In simpler terms the primary goal of the project was to develop was the development of a multi-user operating system. The project was referred to as Multiplexed Information & computing system, denoted as Multics. Multics was designed to act as a modular system developed from banks of very high-speed processors, communications equipment and memory. This design was in such way that some parts of the computer could be disabled without have any effect on the other parts. It is worth noting that Multics was designed with military use, especially military security in mind, both to protect system users from each other as well as to be resistant from external attackers. By design, unclassified, confidential, secret and top secret information could coexist on the same computer. However, in 1969 AT&T withdrew from the project citing lack of satisfactory progress.
Ken Thomson, a researcher begun working on a different project on the basis of the ideas gained while working on Multics project. In the later part of 1969, Thomson came across and abandoned machine, PDP-7, on which he developed an operating system in conjunction with Dennis Ritchie. They called the operating system, UNICS (Uniplexed Information & Computing System). This operating system was developed exclusively in PDP-7’s assembly language. Majority of the earlier operating systems, including earlier versions of UNIX, were developed in assembly language. Assembly language is commonly referred to as a low-level language since every instruction is a basic operation of the computer’s hardware. Since UNIX was a low level language, it was not portable. To make it portable, Ken Thompson considered applying the system in higher level language. He developed a higher language, which he referred to as B, which was basically a derivative of an earlier language referred to as BCPL. The B language fall short of expectations and this prompted Dennis Ritchie to work on a new higher language, which he referred to as C in 1973. In the same year Thomson rewrote large part of the UNIX code in Ritchie’s newly developed programming language referred to as C. one of the benefits of the C programming language was the fact that it could be transferred from one machine to another. A round the same period researchers in AT&T showed a lot of interest in the UNIX experiment (around 1970 UNIX was renamed UNIX). It was Peter Neumann who suggested the term UNIX for this new system. At the same period numerous text processing utilities, a simple command interpreter named shell as well as a text editor referred to as ed editor were developed. The then designed shell became the Bourne shell, the prototype of the currently available shells and the ed editor was a line editor (Kenneth and Rosen, 2006 pp65). The general realization is that as AT&T distributed UNIX software, to companies the companies also began to develop their own version which came to be known as variants. The variants became even more popular and eventually AT&T ventured on an initiative to combine the qualities of the variants and therefore came up with a single operating system called UNIX systems. As explained by (Taylor, 2005 pp 76), by 1984 close to 10,000 companies had adopted the UNIX software which were installed in both mainframes and desktops. This quick adoption by the companies also ensured that the popularity grew by the day as the companies were finding the system much easier to use in terms of flexibility and versatility. There are various other reasons that has also made UNIX to be very favorable with many companies and varied computers. First of all, UNIX is very much portable and it can be easily incorporated in different types of computers. The reason behind this is that the UNIX operating system is designed using a highly caliber language that can be easily changed to fit into every computer. The second reason is the multitasking capacity of UNIX. Multiple programmes can be run on UNIX at the same time for instance a file can be copied simultaneously with another task such as editing a document on the word processor. The thing is that one task in performed in background while another is performed in the foreground. This multitasking capacity of UNIX is actually very important because it also means that the system can handle multiple users. Another unique aspect about UNIX is that it has varied and interesting software development tools that provides a platform for programmers with the capacity to build programmes that can be used to perform various tasks. The ability to perform programming much easily is perhaps the reason that most organizations rushed for the operating system. When working with such a system innovation becomes much easier in terms of developing tailor made programmes for the several of their needs. The ability to develop programmes much easily is also a quality that will fascinate any single user with interest in the area. There is also the aspect of networking which allows users to communicate with one another irregardless of the distance. The networking system is built in because of the capacity of the programme to provide a perfect platform. This is also an aspect that is particularly beneficial to companies where employees constantly need to exchange information in real time. Computers security has been an issue that bothers most users due to the need to protect important files and directories and important information (Bajpai, 2007 pp23).UNIX provides security for users at three different levels. Each and every user is assigned user name and a password which helps in keeping the information of each user a secret. Secondly, UNIX provides specific privileges to different to ensure that only an allowed users can make changes to documents. Another major contributor towards the development of UNIX was a company called Digital Equipment Corporation which developed a related OS called the Ultrix. Ultrix was later upgraded and given a new name; Digital Unix. An even greater contribution was by Microsoft because the company developed a Unix version called XENIX that was compatible with the conventional PC. This operating system was developed from the AT & T and BSD. (Taylor, 2005 pp84) XENIX was later purchased by SANTA CRUZ OPERATIONS (SCO). There is the general observation that the development of UNIX went through successive stages with upgrading at each step. After buying XENIX, SCO developed its own version called SCO Unixware. Other related systems that were developed included versions such as AIX which was developed by IBM and IRIX developed by silicon graphics. As explanied by (Taylor, 2005 pp87), there were several reasons for UNIX having very many versions. The understanding was that the initial developer of UNIX AT&T company was a telephone company which did not have enough privielages to produce computer accessories commercially. Therefore, most of the operating systems developed were given for free and many persons were able to obtain them. Furthermore, the development of new versions was mostly restricted to researchers working in university laboratories. This is also the reason why UNIX is mostly used in university portals and by the United States military. However, because of the lack of a an appropriate user interface UNIX was not able to attain much popularity. The problem was however solved when Windows developed the X version system that was user friendly. This system developed by MIT in 1990 made UNIX much more user friendly. Another major problem with such a system that had multiple user friendlies was to come up with a system of standadization to maintain quality. The first organization that developed the standardization system was IEEE. The guiding systems were given the name POSIX. (portable opening system unix). Currenlty even AT&T and IBM have their own guidelines. These quality standards ensure that UNIX variants are always in line with the UNIX philosophy which requires that the operating system is user friendly
In 1971 both the researches and developments undertaken at the Bell laboratories were initially published in 1971 in the form of UNIX programmer’s manual. Since the initial publication, there have been more than ten editions of this manual released, each corresponding to a version of a new version of UNIX released by AT&T. Unlike earlier manuals the third edition that was released in 1973 incorporated details of the so called C compiler. Dennis Ritchie absolutely rewrote the whole UNIX system in the same year utilizing C language. According to (Taylor, 2005,pp96), approximately 96 percent of the system was developed on C and the rest was developed in the assembly language. PDP-11 machine was the platform that was used. The operating system developed by the two researchers was not easily portable because it was assembled from an older version of PDP-11 machine. There was also the realization that during the same period many laboratories had been able to develop unique UNIX systems. Such laboratories included Sun Microsystems that was being sponsored by Bill Joy. The company later changed the name to Solaries. As outlined by (Taylor, 2005,pp 106), Solaris 7 is currently being used by most computers
Another major contributor towards the development of UNIX was a company called Digital Equipment Corporation which developed a related OS called the Ultrix. Ultrix was later upgraded and given a new name; Digital Unix. An even greater contribution was by Microsoft because the company developed a Unix version called XENIX that was compatible with the conventional PC. This operating system was developed from the AT & T and BSD. (Taylor, 2005, pp126) XENIX was later purchased by SANTA CRUZ OPERATIONS (SCO). There is the general observation that the development of UNIX went through successive stages with upgrading at each step. After buying XENIX, SCO developed its own version called SCO Unixware. Other related systems that were developed included versions such as AIX which was developed by IBM and IRIX developed by silicon graphics. The system was easy to operate and that it provides a sophisicated system in terms of security and multitasking. This is the same aspect that motivated the development of the heirachial system of executing commands. When the operating system is given a command, it divides the command into two systems the user mode and the kernel mode. When there is no comman the operating system will still keep itself busy by performing various tasks such as preventing interuptions.
A major step towards the advancements was made in 1991 when Linus Torvalds developed Linux when he was only 21 years old. (Taylor, 2005, pp153) Linux was based on an ealier version called Minix and both of them had significant similarity to Unix. The system developed by Linus was much more flexible to use and gave users the capacityto exhaust the cpacity of the operating system. The flexibility of the newer version ensured that the operating system became favorable not only among researchers but could also be used by single users. The system also had an oped access code that allowed programmers to develop their own programmes. Although there was still the realization that the system was favorable with researchers and programmers, it now provided opportunities for single users. Many variants of LINUX is are very much available in the market due to the fact that it can be easily downloaded for free from the internet and it allows user to make changes. LINUX is a multiuser system and it can slo perform multitasking, therefore endowing the system with a unique flexibility and the ability to support more than a single user. The constant developments has also ensured that LINUX has the capacity to support multiple users. As explained by (Rosen, 2005, pp97), UNIX and the subsequent development can currently be considered as afamily of proggrammes due to the multiplicities of developers. The evolution of the system also demonstrates that there has been the need to come up with a system that is more user friendly and versatile. Perhaps it is the ability fo the software to provide users with miultiple tools and the having the capacity of allowing users to create their own additional programmes. One major strength of the operating system is that it offers an excellent networking platform. Networking is mostly based on concepts used by Unix and the internet has actually provided significant opportunities to UNIX. As outlined by (Taylor, 2005, pp 174), over the years, UNIX and related programmes have been able to curve a niche in the computer industry. This niche has been backed by the single concept that whena computer is powerful, it should be able to be simple with regard to how users ommunicate with it. This is what is known as the UNIX philosopy. This guiding philosophy is the ones used by developers when coming up with programmes.