Year 1991, beginning of final
decade of 20th century. In the field of computing a great future
prevailed on horizon as powerful hardware emerged pushed the limits of the
computers beyond what anyone expected. But in the field of software something
was missing.
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
From: torvalds@klaava.Helsinki.FI (Linus Benedict
Torvalds)
Newsgroups: comp.os.minix
Subject: Free minix-like kernel sources for 386-AT
Message-ID:
<1991Oct5.054106.4647@klaava.Helsinki.FI>
Date: 5 Oct 91 05:41:06 GMT
Organization: University of Helsinki
Do you pine for the nice days of minix-1.1, when
men were men and wrote their own device drivers? Are you without a nice project
and just dying to cut your teeth on a OS you can try to modify for your needs?
Are you finding it frustrating when everything works on minix? No more
all-nighters to get a nifty program working? Then this post might be just for
you :-)
As I mentioned a month (?) ago, I'm working on a
free version of a minix-lookalike for AT-386 computers. It has finally reached
the stage where it's even usable (though may not be depending on what you
want), and I am willing to put out the sources for wider distribution. It is
just version 0.02 (+1 (very small) patch already), but I've successfully run
bash/gcc/gnu-make/gnu-sed/compress etc under it. Sources for this pet project
of mine can be found at nic.funet.fi (128.214.6.100) in the directory
pub/OS/Linux. The directory also contains some README-file and a couple of
binaries to work under linux (bash, update and gcc, what more can you ask for
:-). Full kernel source is provided, as no minix code has been used. Library
sources are only partially free, so that cannot be distributed currently. The
system is able to compile "as-is" and has been known to work. Heh.
Sources to the binaries (bash and gcc) can be found at the same place in
/pub/gnu.
Yes, it was the birth of baby
Linux, world’s first free operating system kernel.
Flashback watched
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
Stallman |
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).
The Birth
Linus Torvalds |
On August 25, 1991, he announced
his initial creation on the MINIX newsgroup comp.os.minix as follows:
From: torvalds@klaava.Helsinki.FI (Linus Benedict
Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID:
<1991Aug25.205708.9541@klaava.Helsinki.FI>
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby,
won't be big and professional like gnu) for 386(486) AT clones. This has been
brewing since april, and is starting to get ready.I'd like any feedback on things
people like/dislike in minix, as my OS resembles it somewhat (same physical
layout of the file-system(due to practical reasons) among other things). I've
currently ported bash(1.08) and gcc(1.40),and
things seem to work. This implies that I'll get
something practical within a few months, and I'd like to know what features
most people would want. Any suggestions are welcome, but I won't promise I'll
implement them :-)
Linus (torvalds@kruuna.helsinki.fi)
PS. Yes - it's free of any minix code, and it has
a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it
probably never will support anything other than AT-harddisks, as that's all I
have :-(
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!
Hey .. Nice attempt Keep it up ..
ReplyDeletegreat efforts
ReplyDelete