The Fizzle of Energy
Belly of the Beast
Open Source, Closed Source
Unless if you have been sleeping under a rock for the past few years, you must have stumbled upon the words “Open Source Software”. Over the past two decades the phenomenon of Open Source and its variants has been referred to by many names such as Free Software, Public Domain Software, GNU software and Copylefted software. Till recently, the commercial software vendors and users have ignored this secondary line of software products. It was regarded as a fad or quirk predicted to die off, but has emerged as a viable, interesting and important alternative.
Software exists in two forms, “source” and “binary”. The “source” is the form in which humans write software. Source is text, written in some computer language. Contrary to common belief, computers do not understand computer languages. Computers understand only the language called the “machine language”. Machine language is an incomprehensible stew of 1’s and 0’s. The machine language program is “binary”. A compiler is a computer program that converts source to binary.
Software is typically sold in binary form and hence is “closed source” (the source is kept secret). Binary prevents humans from looking at or understanding how the software works. Binary makes it impossible to modify the software, or to use its parts in other software products. Software is also sold with a copyright clause that says you may not freely copy or give away or sell the (binary) software. Open Source software is the opposite—it is sold (or given away) in source form, and once you have it, you are free to make copies, free to give it away, free to modify it, and free to use parts of the program in other programs (or products).
The roots of the Open Source idea started way back in circa late 70’s, in a laboratory at MIT, called the “AI Lab” born out of a love affair between Richard Stallman (born 1953) and TECO (born 1962). TECO stood for “Text Editor and Corrector”, and was an editing program (like Notepad, but quite different). TECO had no “user interface” to speak of. As you typed text, you did not really type what you wanted to write, but you typed a program, that when executed by TECO would create the words that you wanted to write. Sounds obfuscated, but that underlying philosophy made TECO the most powerful text processor in history (also, maybe the most unusable one too).
TECO was a legend. People often wrote real programs in TECO (called TECO macros), programs with no connection to text editing. Richard Stallman wrote a set of TECO macros that transformed the unusable TECO to a very nice text editor called Emacs (for Editing MACrosS). Emacs was to TECO what a Boeing 747 is to a jet fighter. Emacs was a pleasure to use and yet embodies the immense power of TECO albeit in a different form.
Soon thereafter (around 1979), the Unix operating system became popular and the users pined for an Emacs implementation running under Unix. James Gosling of Carnegie Melon was the first to write Emacs for Unix, also known as Gosling Emacs (1981). However, there was a snag, Gosling Emacs was commercialized and copyrighted and sold for money (1984).
James Gosling, since then, has moved on the Sun Microsystems, where he invented the amazingly popular language Java.
The commercialization of Emacs cooked Stallman’s goose. He was incensed. His philosophy dictated that software should be free for all. So he vowed to create a complete software system, including a Unix-like operating system, a suite of tools and many other useful things and give it away for free, for the service of humanity, for the betterment of society. And this system would be called GNU. GNU would be free and GNU would be “copylefted”.
Copyleft is beyond copyright. Copyleft software is copyrighted with the additional constraint that anyone can copy, redistribute or modify the software, but all such copies (or modifications) must be copylefted also. Naturally, all copylefted software must be distributed in source form.
GNU stands for “GNU is not Unix”. Like the notion of copylefting, the name GNU is a brilliant recursive and self-referential definition that really appeals to computer programmers.
Richard Stallman then wrote the “GNU Manifesto”. This manifesto is long and complex and describes the world according to Stallman. Copyrighted software, charging for intellectual property, selling modified software for a profit and so on are blasphemy to Stallman. Money, proprietary claims, restrictions, intellectual property rights and so on are all impediments to the freedom of the human race and should be done away with. Stallman’s world was a world where software is free. Free to be created, free to be distributed and free to be used by all, for the benefit of humanity. Stallman said “I consider that the golden rule requires that if I like a program I must share it with other people who like it.” To implement the GNU Manifesto, Stallman created the “Free Software Foundation” (FSF) and resigned from MIT (to ensure MIT did not prevent him from giving away software written at MIT).
Sounds idealistic, weird and scary and very anti-capitalistic? Sounds like excerpts from the philosophy of Karl Marx? The semblance is uncanny. FSF, the GNU Manifesto and the Copyleft rules were scary, and the software industry ignored it and hoped it was the result of a misguided freak, gone awry. Such silliness would just go away in a matter of time, they said.
Stallman re-wrote Emacs from scratch, and it was the best Emacs ever (1985). He wrote a C-compiler and it was a piece of art, followed by even better, C++. Single handedly he showed the software community that he meant what he said. Along with Stallman, people working in small teams created the successful GNU system.
The GNU operating system, however, never got built. Stallman realized by the early 90’s that the GNU model may not work for something as large and complex as an operating system. The “Evil Empire” of the Microsofties from outer Seattle (also called Redmond) was eating Stallman’s lunch. They were selling more copies of Windows than you can ever shake a stick at.
This made Stallman sad and mad. But he had no choice but to accept defeat. Then suddenly, out from under the overcast skies of Northern Europe, out rode a knight in shining armor. This knight was a young programmer from Finland called Linus Torvalds.
Linus had the same idea as Stallman—to write a free Unix like operating system. Being young (about 20) and naďve, he did not know that Stallman had already proven it could not be done. So Linus wrote a part of the operating system and then requested programmers all over the world to help him add the missing pieces. And oh boy, they did. In 1994 the new operating system, called Linux (a merger of Linus and Unix) made a splashy debut on the kingdom of FSF. Linux was free and copylefted. Linux was the flame that lit the fire. The GNU tools and Linux was the storm that put free, copylefted software on the map. And then the words “Open Source” was invented.
Today all companies are looking at Open Source software as an alternative. Large software houses, such as IBM, Sun, Oracle, Corel and so on support products that are Open Source, or run on Linux (which is Open Source). Even Stallman has reneged on his initial promise that copylefted software must be free. He has decreed it is okay to sell copylefted software, as long as the same tenets of copylefting are imposed on the purchaser.
Even beyond freedom and copylefting the Open Source software movement is making deep impact on the security of computer systems. Promoters of Open Source, says that since the software can be scrutinized by all those who want to see it, the quality, reliability and security of the system is higher (defects, vulnerabilities are detected, soon). The official line is “Open source promotes software reliability and quality by supporting independent peer review and rapid evolution of source code.” This is called the “many eyes” theory.
Of course much of the Open Source movement is targeted at the hateful Microsoft. Similar minded programmers work on Open Source projects in their spare time to compete against Microsoft. It is a club, a brotherhood, a grass roots movement to unseat Microsoft. Publicly, Microsoft has stated it is very worried about Open Source, and is against Open Source. “Many eyes” is a myth, according to Microsoft. They claim that people are too busy to scrutinize other peoples programs, and no one does. The aura of “many eyes” just creates a false sense of security amongst those who use Open Source.
Regardless who is right, both Microsoft and the Open Source community, and the animosity between them, will survive “at least for ever”. Of course, “for ever” in computer software means about 10 years.
Partha Dasgupta is on the faculty of the Computer Science and Engineering Department at Arizona State University in Tempe. His specializations are in the areas of Operating Systems, Cryptography and Networking. His homepage is at http://cactus.eas.asu.edu/partha.