It was none other than heart of all software system of computers – operating system. Yeah, DOS was ruling the world of personal computers, but it was barely an operating system with very limited capabilities. It was just success of Bill Gates’ cleaver marketing strategies. Mac was giving good performance and feel but at the prices stated by Apple, common man couldn’t afford it.
Another camp was the world of UNIX, dedicated to computing with high performance and reliability, the source code of which was taught in universities. But in quest of money, vendors closed the publicity of source code and also priced it high enough so that small users stayed away. Similar went for other UNIX like systems e.g. BSD (Bell labs held them down with lawsuit for using unix code).
The MINIX operating system developed by Prof. Andrew Tanenbaum was good, source code was also available, but it still lacked in some basic capabilities like effective multithreading, efficient use of hardware specific features etc. because of which user wasn’t able to draw full functionality out of purchased hardware.
And on 5th October 1991 a post struck the MINIX newsgroup
Yes, it was the birth of baby Linux, world’s first free operating system kernel.
Early computer systems didn’t have a communicator between their Hardware and User programs. i.e a program/application was written as hardware instructions specific for that hardware. As a result applications were costly and rigid. From these problems the concept of operating systems emerged into the world of computers - An intermediate r between user applications and underlying hardware of computer. Operating systems used to take instructions from user programs, and convey them appropriately to the hardware and convey back the results from hardware to user programs. Because of this writing programs became simpler as it decoupled the logic from machine instructions.
Through the time operating systems having varying characteristics were developed according to application need e.g. Multi-User / Single User OS, Multitasking/Single Tasking OS etc. Different OS had their own benefits and drawbacks and they were used in their specific area of application.
Evolution – UNIX
|Ritchie And Thompson working at Bell labs|
Frustrated with size and complexity of Multics, Bell Labs slowly pulled out of the project. In spite of it few last researchers including Dennis Ritchie and Ken Thompson decided to continue their work on a smaller scale. As a result first version of UNICS (UNiplexed Information and Computing Service) came out in summer of 1969 (Later in same year our hero of story Linus Torvalds was born).
Later with newly developed programming language C was developed by Ritchie and Thompson. Now the UNICS was rewritten in this new language and was released in 1973. The features like muti-tasking and multi-user support were added. Shortly UNICS was renamed as its current popular name UNIX.
As UNIX was not written in assembly language but higher level C language it was forbidden to enter into computer business (under 1958 consent decree), hence AT & T decided to make the UNIX source codes available to universities and commercial firms.
As a result many different variants of UNIX OS were developed by different organizations prominent of which are BSD by CSRG, Xinix OS by Microsoft. This also promoted study of practical operating systems in university students.
Later in early 1980’s AT & T was relieved from 1958 consent decree, they decided to commercialize UNIX immediately.
UNIX sources were no more available for academic use.
Apple & Microsoft
|Steve Jobs and Bill Gates|
The Microsoft corp. was founded by Bill Gates and Paul Allen in 1975. Though initial development by the organization were mainly related to BASIC programming language and its implementation for various hardware platforms (including Apple II and IBM PC) later it came in market as major player in area of operating systems. Though First OS publically released by Microsoft was a variant of UNIX named as Xinix in 1980 (as mentioned earlier), DOS was the operating system that brought real success to Microsoft. In 1981 IBM asked Microsoft to provide an OS similar to CP/M (one of the popular microcompurter OS). Instead of building it from level 0, Microsoft bought a CP/M clone called Q-DOS from Tim Paterson of Seattle Computer Products for less than 100,000 USD. IBM renamed the OS as PC-DOS. The OS became highly popular due to its simplicity and low cost. While IBM had their PC-DOS, Microsoft continued to develop their own DOS version – MS-DOS and ported it for various hardware platforms like Eagle and Compaq. Soon Microsoft grew from small player to major software vendor in home computers industry with help of aggressive marketing of MS-DOS to different PC manufacturers.
While Microsoft targeted market with simple and cost effective operating systems, Apple strived for high capability hardware and innovative user interface. They used latest design ideas to discover beautiful user interface, better display mechanisms and created a product as combination of both hardware and software. As the Operating system written here was targeting for a specific hardware, it was very effective in using the underlying hardware with minimal memory requirement. The computers of Apple series (Apple I, II, III) shown a great deal of design in all computational fields. Steve Wozniak who created these designs quickly gained reputation as a master designer. On the other hand Steve Jobs mainly worked on finance, marketing and user interface part of Apple Inc. and with great ideas of Jobs Apple soon became a multimillion-dollar company.
Later Developed ‘Lisa‘ Series & ‘Macintosh’ Series by Apple, ‘Windows’ Series by Microsoft and ‘OS/2‘ Series by IBM brought the computer user to world of GUI.
The GNU project
In late 1970s and early 1980s most manufacturers stopped distributing source code of their software to prevent their competitors from using it. They began to use copyright and restrictive software licenses to limit copy and redistribution. This was a great inconvenience to the software users because they cannot modify the product they have purchased to meet their needs. Stallman especially felt this while he was working at MIT. His argument was like this,
The modern copyright and licensing agreements that user has to sign while purchasing software are mostly non-disclosure agreements. In short this means that the first step in using computers was a promise not to help your neighbor. A cooperating community was forbidden. The rule made by the owners of proprietary software was,”if you share with your neighbor, you are a pirate. If you want any changes, beg us to make them.” The idea that the proprietary software social system - the system that says you are not allowed to share or change software is - antisocial, that it is unethical, that it is simply wrong, what else could we say about a system based on dividing the public and keeping users helpless?
He started his fight with the corporate licensing system by announcing GNU project in 1983. In February 1984 he left MIT to work full-time on GNU project. His aim was to create a free operating system ‘GNU’, which would be compatible with UNIX.
He started his journey by writing GNU C compiler (GCC), an amazing feat for an individual programmer. With his legendary technical wizardry, he alone outclassed entire groups of programmers from commercial software vendors while creating GCC, considered as one of the most efficient and robust compilers ever created. After that he and the GNU group written many necessary tools like Emacs (text editor), gdb (debugger), gmake (build automaker) that form basic environment. Though most of the basic components of an operating system were ready by 1990 the core of all, the kernel of operating was not still ready. GNU was still working on the kernel of their new operating system Hurd.
Professor Andrew S. Tanenbaum and MINIX
Prof. Andrew Tanenbaum
While Stallman was working on his GNU project, Professor Tanenbaum created a UNIX-like operating system called MINIX. It was primarily developed for educational purpose and first released in 1987, with its complete source code available to universities for study in courses and research.
In 1988 Linus Torvalds enrolled in University of Helsinki for graduation in computer science. His educational career was interrupted after his first year of study as he joined the Finnish Army. In the army he holds the rank of second lieutenant, with role of ballistic calculation officer.
In 1990 he resumed his studies. He started to learn core computer science including programming languages and operating systems. During this period he came in contact with C programming and MINIX operating system.
In early 1991 he got his hands on his new IBM compatible personal computer with 33MHz Intel 386 processor and huge 4 MB of Memory. This processor greatly appealed to him because it represented a tremendous improvement over earlier Intel chips. As intrigued as he was with the hardware, however, Torvalds was disappointed with the MS-DOS operating system that came with it. That operating system had not advanced sufficiently to even begin to take advantage of the vastly improved capabilities of his computer, and he thus strongly preferred the much more powerful and stable UNIX operating system that he had become accustomed to using on the university's computers, but even a basic UNIX system was not available below 5,000 USD. As a result he started using MINIX on this new beast he got.
But as he started using MINIX he started to learn about its disadvantages also. Although much more powerful than MS-DOS and designed to run on Intel x86 processors, all of its source code was not available. It also lacked some features and performance of UNIX and had serious problems related to multithreaded processing. And not to mention it had a significant amount of license fee (very less as compared to other operating systems).
On August 25, 1991, he announced his initial creation on the MINIX newsgroup comp.os.minix as follows:
On September 17 of the same year, after a period of self-imposed isolation and intense concentration, he completed a crude version (0.01) of his new operating system. Shortly thereafter, on October 5, he announced version 0.02, the first official version.
The baby penguin came to the world!