Advertisment

On Giants' Shoulders

author-image
DQI Bureau
New Update

When Dr Kalam took Bill Gates for a walk in the Mughal garden,

they talked about challenges for tech, including software security. Kalam told

Gates that we look for open source code so that we can easily introduce

user-built security algorithms.

Advertisment

"Our discussions became difficult as our views were

different," Dr Kalam said later, calling it "unfortunate" that

India still believes in proprietary solutions. "In India, open source

software will have to come and stay in a big way for the benefit of our billion

people," President Kalam said.

The Open Source OS



Who built the Internet? Who made the Web work? What is Open Source?

Over 2,500 years ago, the Greeks developed an architecture that

was passed along to the Romans via the 'open source' route . In 1675, Newton

said he saw further because he "stood upon the shoulders of giants,"

and he invented the calculus. A hundred years later, William Blake saw, through

his verse, the world in a grain of sand and found eternity.

Advertisment




Professor Arun Tiwari

Science,

history, development...all owe a lot to open source. That's how

Greek architecture was passed along to the Romans. Newton saw

further because he "stood upon the shoulders of giants,"

and he invented the calculus.

Since then, via 'open source' and modern physics, space has

become time, time has become space, and Blake's grain of sand has become a

silicon chip that holds not just the worlds but also all of the art, music, and

poetry ever created. And these vast open-source riches, from condensed matter

physics, to the complete works of Shakespeare, are free to all. Thus it is that

those who open books or log on are granted an inheritance as never before.

The operating systems (OS) story starts in the 1950s, with

simple schemes for running batch programs efficiently. In the 1960s, interactive

began to gain ground, as did multi-user systems. The innovative MULTICS

developed a hierarchical file system, something taken for granted today. But

MULTICS did not progress very well. It took years longer to complete than

anticipated and didn't make a dent in the OS market. One of the participants,

Bell Labs, withdrew from the project and made its own OS, and called it Unix.

That was, if you like, the mother of all OSs.

Advertisment

By 1990, Unix had a strong position in the server market and

especially so in universities. But it had become commercial and expensive. About

the only cheap option was Minix, a limited Unix-like system written by Andrew

Tanenbaum for teaching with. There was also 386BSD, a precursor to NetBSD,

FreeBSD, and OpenBSD, but that wasn't mature and required big hardware.

Enter the Fin



Into this scene came Linux in October 1991, at Helsinki University. Linus

Torvalds wanted something similar to Unix on his PC at home. He started out with

Minix, but wanted something better--and started to write his own OS. His baby,

Linux, initially was not really useful, but it soon gathered enough features,

provided by other 'hackers' across the world, to be interesting even for

people uninterested in OS development.

Indeed, Linux itself is only the kernel ("core") of an

operating system. Everything else runs around it. It implements multi-tasking,

manages hardware devices, and generally allows the apps to do their thing. The

programs you actually interact with are run on top of the kernel.

Advertisment

By 1993, the Linux kernel gathered all the necessary features it

required to work as a replacement for Unix workstations, including TCP/IP and

(graphical) windowing. Linux also received plenty of industry attention, small

companies emerged to develop and distribute Linux. Dozens of user groups were

founded, and Linux Journal magazine started to appear in early 1994 as Version

1.0 of the Linux kernel was released.

In February 1988, the identity of "open source" first

overcame the hacker stigma when the Netscape web browser was released as free

software. This was the occasion that first invited the attention of the whole

computing world for the first time. It has taken years of work since then, but

free software (and open source) has become not only generally accepted but also

the preferred choice for many applications.

The Power of Numbers



Apart from being a technological feat, open source is a social phenomenon.

It is baffling to many outsiders that something as successful as open source

could be developed by a bunch of unorganized "scruffy-haired hackers"

in their free time. The major factor here is the availability of all the source

code that allows modifications to be made and distributed.

Advertisment

When the system has many programmers among its users-if they

find a problem, they can fairly easily fix it. And if they think a feature is

missing, they can add it. For some reason, that is something programmers like to

do, even if they're not paid for it: they have an itch so they scratch. They

write missing code to fill their needs.

For OS development specifically, this large group of

programmer-users results in two major improvements: bug fixes, device drivers.

OS code often has bugs that trigger intermittently, and it can be difficult for

developers to reproduce them. With thousands or more programmers among the user

base-well, that makes a very effective testing and debugging army.

Most of the code volume in open source is device drivers. The

core code (multi-tasking and multi-user functionality) is small in comparison.

Most device drivers are independent from each other, and only interact with the

OS core via well defined interfaces. Thus, it is fairly easy to write a new

device driver without having to understand the complexity of the OS.

Advertisment

This also allows the main developers to concentrate on core

functionality, and they can let those people write the device drivers who

actually have the devices. It would be difficult even to store the thousands of

different sound cards, Ethernet cards, IDE controllers, motherboards, digital

cameras, printers, and so on that an open source OS, such as Linux, supports.

The development model is distributed, and spreads the work effectively.

However, the open source OS is not without problems. When a new

device gets onto the market, it can take a few months before a programmer is

interested enough to write a device driver.

Beyond the Kernel



To work on an open source OS, you have to choose a distribution system. For

example: the Linux kernel, plus an installation program, plus some set of apps

on top of it. There are hundreds of Linux distributions, serving different

needs. The three biggest general purpose ones are Red Hat, SuSE, and Debian. The

Red Hat and SuSE distributions are produced by companies of the same name;

Debian is produced by a volunteer organization.

Advertisment

Open source doesn't just mean access to the source code. It

lays down certain conditions about the distribution of such software: such as an

insistence on not restricting any party from selling or giving away the

software. And the program must include source code, and must allow distribution

in source code as well as compiled form.

Where some form of a product is not distributed with source

code, there must be a well-publicized means of obtaining the source code for no

more than a reasonable reproduction cost--preferably, downloading via the

Internet without charge. The source code must be the preferred form in which a

programmer would modify the program. Deliberately obfuscating source code is not

allowed. The crux of the matter is that once software is made open source,

modifications and derived work is allowed and solicited.

Who are these open source developers? Is there an archetype?

That's for next the issue, but meanwhile, this bit of Zen nicely fits the open

source developer.

To follow the path:

look to the master,



follow the master,


walk with the master,


see through the master,


become the master.


Advertisment