COMPS [ Under OPL ]  



Wireless LANs
Sawfish on RH8
Why C++





Yahoo! Search

Search This Site
Search WWW

Hold mouse over words above for more information.

Made with Emacs

Get Firefox!

[ Up ] [ Introduction ] [ The Structure of Linux ] [ Common Linux Applications ] [ References ]

  1. Linux is a scalable multi-capability OS
  2. Linux is Open - GNU GPL
  3. The Genesis
  4. Linux usage statistics
  5. Linux in deployment
  6. The relevance of Linux and Open Source in India

1. Linux is a scalable multi-capability OS

That Linux is an Operating System is a fact that you must be aware of. But what kind of an Operating System is it? I would begin by saying that Linux is a scalable and multi-capability Operating System. Please note that the terms "Scalable" and "multi-capability" are not standard for describing an OS. Let me elaborate on what I mean by the afore-mentioned terms.

Scalable: By Scalable I want to imply that Linux can be made to run on very small devices as well as used to drive supercomputers and large distributed computing facilities. This is possible because the Linux kernel is designed as a collection of modules. It is up to the System Designer to choose what capability is to be included and what not, and accordingly use only the required modules.

Multi-capability: By this I want to impress upon you that Linux is not designed with a specific functionality in mind. So, for example, while Mac OS X is meant only for Apple Mac workstations, MS Windows systems run only on the Intel architecture and Sun Solaris is used in high-end servers, Linux can serve well enough for a wide variety of deployments over a wide range of platforms. Currently Linux runs on at least Intel 32 bit x86 PCs (and clones), Compaq Alpha AXP, Sun SPARC and UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64 and DEC VAX. A port is currently in progress to the AMD x86-64 architecture.

It is a multi-user and multi-tasking Operating System. By multi-user I mean to say that a running instance of Linux can allow multiple users to work on it simultaneously . It keeps information about all the users working on it and it doesn't allow one user to step on to the others' shoes unless the other person allows that.  Multi-tasking, on the other hand, means that the System can handle multiple tasks or processes simultaneously. The processes also have the capability to share some of their resources among themselves  - a capability that is referred to as multi-threading. Linux has been successfully used for conventional purposes like servers and workstations and also for special applications like embedded systems, mobile devices, Computing farms etc.

Starting from kernel 2.x, Linux also supports Symmetric Multi-Processing (SMP) on supporting hardware. The SMP capability of Linux has been proven across platforms and has actually spurted a recent growth in the sale of Mainframes! To give you an Idea, while Windows XP supports up to 2 Intel 32-bit Processors (Windows is not available for 64-bit CPUs), Linux can drive up to 16. This upper limit is not because of Linux, it is the upper limit of the Intel 32-bit MP standard!

2. Linux is Open - GNU GPL

Linux is distributed under the GNU GPL or the GNU General Public License. According to this License, the Licensee of any work under this License is free to re-distribute the work with or without modification provided that s/he distributes it under the GPL. Any works that are derivatives of a GPLed work should also be under GPL. You are free to copy and use a GPLed work as many times as you wish and you can also give copies to your friends as long as a copy of the GPL is also conspicuously included.

Another condition of this License is that the distributor is bound to provide the Licensee with source code of his/her work and id the Licensee re-distributes the work, this condition is carried forward. There are some other terms and conditions but I'm not a legal beagle so I can't discuss much about it.

There is false notion that software under GPL is free as in "a Free Lunch". No. GPL does not restrict you  from charging fees for the software you distribute. You may charge for the distribution media, transportation, royalty whatever you feel like, as long as what you distribute gives the same rights to the Licensee that you have under GPL. A copy of the GPL is available at http://www.gnu.org/copyleft/gpl.html.

3. The Genesis

The greatest attribute of Linux is its pedigree. It belongs to a series of Operating Systems whose origins can be traced back to the fertile Research houses like (former) AT&T Bell Labs, Massachusetts Institute of Technology (MIT) and GE. The developers of these Systems include such renowned researchers as Dennis Ritchie, Ken Thompson, Andrew Tanenbaum, Richard Stallman, and Linus Torvalds.  

It all started in early 1960s when AT&T Bell Labs partnered with MIT and GE to develop a multi-user OS known as Multics. Bell Labs later pulled out of the project. Ken Thompson and Dennis Ritchie - the Bell Labs researchers started missing "Space Travel", a multi-user game they used to play on Multics. (Hey, I'm missing Quake II here in NCST!) They missed it so badly that they decided to host the game on a little used DEC PDP-7 available to them. This required them to implement a new multi-user OS for the PDP-7 and thus was born Unics as a pun on Multics. It was written in the PDP Assembly language.

Dennis Ritchie and Brian Kernighan developed a new high-level language, C, on the PDP under Unics and soon Unics was re-written in C. Somewhere down the line, the cs became x and thus we got Unix. The fact that it was written in a write-once-compile-anywhere language helped propagate the usage and development of Unix. By the 1970s, every University in U.S. had Unix and a few popular and prestigious versions appeared  - AT&T Unix, BSD, SCO, Sun etc.

As the popularity of Unix grew, the companies that developed them started imposing stricter restrictions on the developers for keeping the design secret and started selling Unix at very high prices. These activities led to two developments that culminated into the development of the GNU/Linux OS.

Richard Stallman was a senior researcher in the AI labs of MIT. He was not happy with the way AT&T had appropriated the contributions of developers like him. Instead of stopping at whining about it, he resigned from MIT and established the Free Software Foundation, the aim of which was to give developers a free working environment to work in  - free as in freedom to share ideas, code and contributions. He also launched the GNU (GNU is Not Unix) Project which aimed to develop a free alternative OS that would also be upwardly compatible with Unix. This happened back in the early 80s. The decision to stick to Unix was because at that time Unix was the most widely used OS in Universities, Corporates and Research Centers. And, thankfully, there was no Windows ;-) Soon many developers joined Stallman for the development of the new OS.

Towards the end of the '80s the PC became commonplace and students could afford them. Unix, on the other hand, became ever expensive and nobody cared to port it to the PC. Andrew S. Tanenbaum, the famous professor of Computer Science from Vrije Universiteit, NED, wrote a small Unix-like Operating System for PCs that students could afford. He released the source code of the OS too, so that students could actually get a peek into the code that drove the world around (OK, that got compiled into Unix). It was licensed though and available only to, and for the use of, the purchaser of his book on Operating Systems.

Linus Torvalds, a Finn who studied Computer Science in the Helsinki University, was one of the students who bought the book and put Minix on his Intel PC. Minix was an OS primarily designed for teaching purposes only. Linus began writing a new kernel aiming to improve Minix. On August 25, 1991, he posted a message titled "What would you like to see most in minix?" on comp.os.minix newsgroup. In that he just announced that he was developing a new OS that was free and did not involve any Minix code. He informed that he was able to port the GNU bash shell and GCC compiler to it and that he wanted feedback on what changes people would like him to make. He never promised implementing the requests and thought that the project, being just a hobby, would probably not grow as big as GNU. He released kernel 0.01 in mid September and 0.10 by December.

The timing of the Linux kernel was such that a marriage of GNU applications with it would have yielded a complete alternative OS. GNU's kernel, HURD, was still some way to go and the marriage did happen. The resulting OS was called GNU/Linux but "GNU" got dropped in the common lingo quite soon. Let me digress to the extract of this post from Linus: "We worked very hard on creating a name that would appeal to the majority of people, and it certainly paid off: thousands of people are using linux just to be able to say "OS/2? Hah. I've got Linux. What a cool name". This was his reply to someone who asked him for a reason why he should use Linux, other than that it has a cool name.

4. Linux usage statistics

At present, there are some 18 Million estimated users of Linux. The Linux Counter is maintained at the website http://counter.li.org. Linux is currently the fastest growing Operating system in the World. It grew at a rate of 193% per year in 2000. This figure stood at 122% for Windows NT/2000. 30% of the world's websites are hosted on machines running on Linux. This figure is 49% for Windows. For an Operating System so young, this is a remarkable achievement. Some of the world's most prestigious companies have vowed continuing support for Linux, chief among them being IBM, which has invested $1 bn. in 2001 for its promotion. Among others are SGI, Compaq-HP, Borland, Intel, AMD, etc. IDC has predicted that by 2003, Linux will be the single largest deployed OS in the world. 

5. Linux in deployment

Linux is used in some of the world's most common places. Think of one website that is your darling, without which your online session is incomplete, you depend on it - yes, www.google.com. Google Inc. has a network of about 10, 000 servers all over the world and they all run on Linux (Red Hat). In fact, the entire operations of Google Inc. are done on Open Source Software only. Google Inc. admits that if they had to pay the licensing fees for Windows, had they used it, they would not have been able to profit and probably not reach this scale of operations either.

Remember Titanic, the movie by James Cameron? The entire computer animation job for the 4 hour + movie was done on Linux. Hollywood's biggest animation studios like Pixar (Toy Story) are busy ordering Linux workstations from SGI and other companies.

Air Korea has purchased a huge Linux based IBM mainframe that will handle it's entire flight scheduling and pilot assignment operations around the world - mission critical. GeCo, the UK oil-giant has bought a Linux supercomputer cluster for it's ocean-floor scanning operations. IBM showed off a wrist-watch computer running on Linux. 

Embedded Linux is another fast growing area. Due to it's open source, the embedded software developers have, for the first time, the capability to tweak an OS to exactly fit their bill. The most telling example of it's success is the IBM Citizen Wristwatch computer that would soon be available commercially. TI's decision to support Linux in it's OMAP wireless platform means that 3G devices from Nokia, Ericsson, Sony and others may soon have Linux versions.

I could go on and on but it would be better if you look for yourself. Try visiting http://techupdate.zdnet.com/techupdate/filters/main for latest updates. That's where I got all my dough.

6. The relevance of Linux and Open Source in India

You would have already guessed (and now are probably yawning) that the first thing I'll hoot about here is the money-saving done in Licensing fees. Yes, that is indeed my first point. See, it's not just a matter of cost-saving for the GoI. I had once been to the NIC Center in CGO Complex, New Delhi and I saw their garage with piles of old 386es. 386es may be no good for today's computing needs but think of what they could offer. A PC with a 16 bit processor that can act as a souped up micro-controller. Couple it up with some peripherals and you could have a print-spooler, a firewall or a bulletin-board for nuts.

Today's PCs are powerful enough to serve as application servers. Instead of having 15 entry-level PCs driven crazy by a lot of bloatware (MS Windows with VC++ - a common configuration found in Indian educational institutions) we can have one high-end PC acting as an application, file and print server with 15 of those 386es from NIC acting as terminals. The advantage? Several. Apart from saving money, you give the students cutting edge technology. Unlike Windows, having the latest version of Linux does not raise the hardware level bar. You can have GCC 3 running easily on a 386 and the students get the benefit of a largely Standards Compliant compiler. You might be aware about the way VC++ bucks with Templates and the hardware needed to run it.

That was just one example. This ability of using old hardware without losing on the "latest" offered by Linux can play a key role in the computerization of a billion strong nation. 

[ Up ] [ Introduction ] [ The Structure of Linux ] [ Common Linux Applications ] [ References ]

© 2002 - 2004 Tahir Hashmi. Unauthorized copying, alteration and redistribution in any media is prohibited, except where explicitly stated as being distributed under the OpenContent License (OPL). Last updated: 21 February, 2021. Update Log. Personal Email: tahir AT tahir.ws [PGP Key: ASCII, Binary]; code_martial AT softhome.net [PGP Key: ASCII, Binary] IM: Yahoo! Messenger [tn_hashmi]