|
What Is Open Source Software? |
IntroductionOpen source software has increasingly made inroads in various classes of computer software from relatively simple games and utilities to full-fledged operating systems and office productivity suites. Although open source software is generally not backed by corporations, open source developers have repeatedly proven that stable, secure, high-quality software can be produced and distributed for only a fraction of the cost of traditional “closed source” software. Closed Source SoftwareThe operating systems and applications with which most computer users are familiar are designed as what may be referred to as “closed source”. The creation of software begins with writing source code. The source code is a text-based representation of the instructions to be executed by the computer. It typed into the computer by the programmer and saved to a source file. Commonly used programming languages for writing source code are Visual BASIC, Java, C and C++. Since the computer’s CPU does not understand instructions written in a programming language, the source code must first be translated or compiled into machine code. Machine code is a very abstract representation of the program instructions, where every distinct instruction is represented as a unique series of 1’s and 0’s. It is because machine language is difficult to read, write and modify that programmers use a programming language when writing the source code. Software refers collectively to everything from individual programs such as text editors and web browsers to office productivity suites and operating systems. Simply put, an operating system may consist of many individual pieces of software designed to work together as an organic whole to control the overall functioning of the computer. Such functions include managing files, managing memory, and providing a means for the user to interact with and control the computer via keyboard and mouse. Whether you buy software for Windows at a store, download it, or order it online, you will receive it in what is referred to as a binary format. What this means is that you receive the compiled form of the software. Rarely will you ever receive or have access to the actual source code. Most software manufacturers keep the source code secret may take extensive efforts to prevent users and other unauthorized people from getting access to it. Although the rationale for keeping the source code secret varies from one manufacturer to another, the general guiding principal is that the software represents an investment in terms of time and resources to write, test, debug, manufacturer, ship and advertise. To allow anyone to have access to the underlying source code would theoretically allow anyone to modify, recompile, and redistribute the software as if it was their very own. In additional to the potential loss of quality control, the manufacturer may also be concerned about the loss of revenue if any proprietary information is leaked to its competitors. It is for such reasons that software manufacturers generally release their products as closed source. In other words, you may use the software on the provision that you pay for it, but you are now allowed to have access to the underlying source code. An important point to remember is that paying for the software does not transfer ownership of the software to you. The money you pay is more akin to a licensing fee. The manufacturer still officially reserves ownership writes to the software, including the right to define proper and improper uses of the software, and whether it may be copied and redistributed to other parties. Open Source SoftwareOpen source software is produced with a different philosophy about the distribution of the underlying source code. The open source movement grew out of the early days of computing when programmers working for universities and industry free shared their software developments in a spirit of mutual collaboration. Although they became overshadowed by the appearance of corporations of increasingly influential software corporations beginning in the early 1980’s, the open source community never died out. In fact, it continued to flourish. The principals of open source development prevail to this day. Although an individual, group, or company may be the final decision-maker as to what features the software should have and when new versions should be released, the source code is freely available to others. You may wonder why anyone would be interested having a copy of the source code for some software they use. Most users would not need the source code or even know what to do with it; they simply need the compiled software to install and use on their computers with as little fuss as possible. The beauty of the open source model for software development is that those users who use the software and are also experienced programmers may wish to have access to the source code so they can customize the software for their own use, or to collaborate with the owners of the software to make it even better for others users. An open source software project can easily involve from tens to hundreds of programmers in the process of making the software increasingly better. They contribute by adding new features, finding and fixing bugs, improving stability and security and documenting the software so users can get the most use out of it. It has been found that far from becoming a nightmare of managing the many programmers working on the same software project, the open source development model has been resoundingly successful in producing many quality software products. Software projects have been known to suffer or even fail from the increased overhead of managing large groups of programmers. Interestingly, this has generally not been the case with open source. Some implicitly agreed upon principals in the open source community have served to minimize this overhead. Although open source software products are principally designed for the Unix and Linux operating systems, many are also available for the Windows operating system. Examples of successful open source products include the Mozilla web browser (an open source version of Netscape Navigator), the OpenOffice.org office suite, and the Linux operating system. The design of an operating system is a very complex task and requires great technical skill and planning. Linux has grown from a small, modest, one-man project started by Linus Torvalds in 1993 to become a major contender with Microsoft Windows. Some would claim that Linux is not only comparable to Microsoft Windows but even superior to the Windows operating systems, including Windows 2000 and XP. Open Source vs. “Free”Another synonymous term for open source software is free software. It is important for the reader to understand that free does not necessarily mean free of charge. There is no rule that says that a company cannot charge money for distributing and supporting open source software. In fact, many companies that distribute open source software charge not for the software per se, but for the modest costs of duplicating, packaging, advertising, shipping, and (most important of all) supporting the software. The support side is especially lucrative. As everyone knows, no software product is absolutely perfect in that no one ever requires technical assistance in installing and using it. Free simple refers to the fact that the source code is freely available to whoever would like to see it, modify it, and redistribute it. In fact, open source software products are distributed under a number of different software licenses which differ from conventional software licenses in one particularly important aspect. Whereas conventional licenses follow the form of a copyright which restricts or absolutely prohibits the user from copying and redistributing the software, open source licenses are designed to protect the rights of developers and users. If a developer releases software under an open source license, one of the provisions is that no one else may assume ownership of the source code or restrict access to it, even if they modify it in any way. Any modifications of the source code must also be freely released under the open source license. It is in this context that free is to be understood in a similar way as in the context of freedom. Open Source ControversiesIt is worth mentioning that the issue of open source versus closed source software is highly controversial for some. Some defenders of closed source software have downplayed the open source model as a viable means of creating high-quality software products. Unsubstantial claims have been made that closed source software is more reliable, more secure, and of better quality than open source software. Such claims miss the point that many dedicated, capable programmers devote their time to the betterment of open source software, largely for little or no financial gain. Eric S. Raymond, an open source advocate, has argued that while gaining notoriety is a motive, the primary motive for open source programmers is the satisfaction of creating quality software while solving interesting problems. There may be a higher overall morale in the open source community, as developers have the freedom choose the tasks they wish to work on, as opposed to being assigned to tasks they may or may not want. While the majority of open source proponents are amicable to the idea that a company has the right to keep its source code secret, a minority feel that ALL software code should be freely shared. Likewise, most have no problems with the idea of a company such as Red Hat, a major distributor of the Linux operating system, charging money to sell and support open source software. However, a minority feel that charging money for any software is wrong. The Future of Open SourceAs a computer science major and a computer user, I am very interested in the future of open source software. I feel that open source software development shows potential to encourage competition, resulting in a broader choice of high-quality, low-priced software. Even if you do not choose to use open source software, you may very well benefit from the open source software movement if it continues to thrive and grow. The next five to ten years could prove to be interesting. ReferencesEric S. Raymond is something of an official spokesperson and advocate for open source development. A series of essays relating to this topic are available at http://www.catb.org/~esr/. The Free Software Foundation (FSF) was founded in the early 1980’s by Richard M. Stallman to foster the development of free software. The FSF web site is located at http://www.gnu.org/fsf/fsf.html. The Open Source Initiative (OSI) is a non-profit corporation dedicated to managing and promoting the Open Source Definition. Their web site is located at http://www.opensource.org. Mozilla is an open source web browser available for the Windows, Macintosh, and Linux operating systems. It is freely available at http://www.mozilla.org. OpenOffice.org is an office productivity suite consisting of a word processor, spreadsheet, presentation manager, drawing program and HTML editor. It is comparable to Microsoft Office and freely available at http://www.openoffice.org. Many different individuals and companies distribute competing “flavors” of Linux. Although the core functionality is the same throughout, each distributor includes their own selection of value-added features, which may include commercial, third-party software. There are more Linux-oriented web sites that you can shake a stick at. For the beginner, I would suggest checking out http://www.linux.org and www.distrowatch.com. |