Introduction to Open Source
ENGL-323 Writing for Engineers
Professors Nosworthy and Wood

Scott Parish


Contents





Engineering should adopt open source like models of development to improve global cooperation and productivity.











Abstract:

The open source software movement is captivating portions of the software market. It has done this by providing what some consider a superior model for software engineering and development. Programmers share code freely and exchange ideas in ways that commercial programmers never would have thought possible. The movement itself embraces a variety of licenses and development models, given that they conform to the open source definition. Industries, including engineering, should consider adopting open source.











Introduction to Open Source

Introduction

Software has revolutionized modern life for almost all of the industrialized nations. These changes are far from static; more dust is currently being stirred up than is settling. There are few, if any, fields of human endeavor that are not currently being structured and restructured to take advantage of, and to cope with the new world that software has brought us. Many are adapting quietly to these changes, while others like the Recording Industry Association of America (RIAA) and the Motion Picture Association of America (MPIA) are holding out as long as possible before making these changes.1

The software industry itself, the source of these changes, is not exempt from revolutions and having to adapt to an ever changing environment. The open source software (OSS) movement is one example of sudden this revamping of the software world. The concept of OSS has potential to spread into other fields and could improve the world community as a whole. Engineering should adopt open source like models of development to improve global cooperation and productivity.

Lore

``The world can no longer afford to have all of the expertise in computer science reside in elite places. We have problems to solve, and the world needs to contribute to solving them'' [Hall 1999].

What is open source?

Open source software is a manifestation of the hacker2 aphorism, ``Information wants to be free'' [Clarke 2000]. It is computer programs that are completely free for anyone to use, modify, and redistribute; they even come with the source code, as the name implies. Currently, there are hundreds of these freely available programs and packages, and the list is growing almost daily.3 There are packages that can do almost anything that most popular commercial software does, and all are available at zero cost.

Where did it come from?

Although the term open source has been a very recent word to describe such software (since 1998), the concept has been around for quite some time. ``When I started working at the MIT Artificial Intelligence Lab in 1971, I became part of a software-sharing community that had existed for many years. Sharing of software was not limited to our particular community; it is as old as computers, just as sharing recipes is as old as cooking'' [Stallman 1999]. When commercial software started making large inroads into the computing community, Richard M. Stallman (RMS) started the Free Software Foundation (FSF) organization which has been advocating free software ever since. The original goal of this organization was to write a completely free operating system (OS), a Unix like OS which they termed the Gnu's Not Unix (GNU) project. Although this goal has still not been accomplished, the impact of this project is arguably what led the way for OSS.

```Free software' is a matter of liberty, not price. To understand the concept, you should think of `free speech', not `free beer'" [Stallman 2000b]. Because many people started confusing the word free with its definition of value, the name open source was coined at a February 1998 strategy session. The name was quickly trade-marked by Bruce Parens, and caught on replacing most people's vernacular use of the term free software [Open Source 2000]. Some people, such as Richard M. Stallman (RMS), do not prefer this wording because it does not as strongly portray the freedom aspect of the open source movement [Stallman 1999]. None the less it looks like the name is here to stay.

What kind of software is available as open source?

The selection of OSS software has become quite substantial. A quick look at Freshmeat (http://freshmeat.net/), a non-exhaustive web index of OSS, will reveal thousands of open source packages. These applications range from operating systems, to word processors, to webservers, to graphics manipulation. For almost any general use application there is either an OSS alternative available or one that is in the works. In addition, there are three projects that will either run the Windows operating system under your OSS operating system, or will allow Windows applications to run natively (without emulation) under an open source OS: Wine (http://www.winehq.com/), Bochs (http://bochs.com), and Plex86 (http://www.plex86.org/).

The quality of this software varies drastically, although when most of the projects get out of their development cycles they are quite high quality and rarely crash. Linux, one of the more popular open source operating systems, has a track record of being able to stay up for years without having to be rebooted, very much unlike any of the Windows or Windows NT operating systems.

Why would programmers give away their code?

For open source to have such high quality code in high quantity, there must be motivated programmers, and while there is no single motivating factor, motivation must be quite strong. ``The `utility function' Linux hackers are maximizing is not classically economic, but is the intangible of their own ego satisfaction and reputation among other hackers'' [Raymond 1999]. Often times reasons such as ``giving back to the community'' are stated. Many enjoy programming and view it as a hobby. Others are paid by businesses to write open source, or they work as contractors and contribute code to the open source community from as many projects as their clients will allow. In the second Microsoft Halloween document, one of the authors describes his experience with contributing: ``I'm a poorly skilled UNIX programmer but it was immediately obvious to me how to incrementally extend the DHCP4 client code (the feeling was exhilarating and addictive)'' [Valloppillil 1998b].

The common origin of many open source projects is quite humble. ``Every good work of software (OSS) starts by scratching a developer's personal itch'' [Raymond 1999]. Quite a few of these grow to become quite large and powerful applications though; Apache started in such a way and is used by over sixty percent of all the webservers on the Internet. That is three times Microsoft's twenty percent share of web-server installations, which is Apache's closest competitor [Netcraft 2000]. All this from hundreds of programmers donating some of their spare time.

What improvements has open source brought?

Open source has changed software development by bringing thousands of people together to co-develop. Since all the users of a particular piece of software have the source code to the software, all the users become debuggers and developers of new features. This allows the development to be achieved at speeds that are orders of magnitudes higher the traditional commercial software development. Microsoft realized this in one of their internal documents: ``One of the keys to the OSS process is having many more iterations than commercial software (Linux was known to rev (sic) it's kernel more than once a day!)'' [Valloppillil 1998a].

It also increases the community feeling among developers. Programmers, as open source developers, are not pitted against each other; there are no secrets that must be kept. This directly improves the knowledge base of society as a whole, rather than individual pockets of knowledge. With programmers all over the world contributing and using open source, national boundaries are unnoticed and people of completely different cultures and backgrounds are brought together.

Business models

The whole push from the Open Source Initiative is to try to convince businesses that open source is a viable and possibly optimal model. Many businesses are now dabbling with open source. There are several ways to provide the community with open source software while making money: selling support licenses, selling value added components, contracting for customizations, dual licensing, Compact Disc Read Only Memory (CDROM) and book sales, and the sell it free it model. These are analyzed briefly in the following subsections.

Support Licenses

The support license business model allows a company to make up for one of the conceived limitations of open source while making money. Using this model, a company would release a product as open source and then make a profit selling support contracts. This way mission critical sites can get the help they may need while the general public is still open to use the software. This works out very well, as most individuals have little or no need of support licenses and have limited resources, while the big businesses have much more need of support and also can afford to pay for this support. This is not to say that non-support licensed people are out of luck if they have problems; there are almost always mailing lists5 for each open source product to which a user can post questions for other users to answer. Usually, this will work for users needing genuine help, although it is unreliable because there is no obligation for anyone to answer questions. Most of these companies will also fix bugs at no cost that unsupported people find.

Value added

Value added software is software where the core package is free, but add-ons cost. For instance, the word processor is free but the grammar checking and TEX compatibility modules will cost money. This open source model makes sense in some cases because it will grow your customer base, while making a profit off the few sites that need special features. It is also used in places where part of the package can not be released free for various reasons because of patents or related legal problems. Some do not like this model, though, because it does take away from the freedom of the product.

Watch out, though--a number of companies that associate themselves with the term ``Open Source'' actually base their their business on non-free software that works with free software. These are not free software companies, they are proprietary software companies whose products tempt users away from freedom. They call these ``value added,'' which reflects the values they would like us to adopt: convenience above freedom. If we value freedom more, we should call them ``freedom subtracted'' products [Stallman 1999].

Businesses choosing this model should also be careful, because if they try making pieces of their code that are in high demand proprietary. They will soon find others writing OSS replacements for their modules. This makes the value of using such a model quite questionable, although there are still instances where it can work quite nicely.

Customization

Often projects are released as open source, but specific features can be sponsored. These features, customizations, etc. are then released back into the core product as open source. This business model has a clear advantage in that customer feedback is the business, and once new features are made everybody benefits. Many contractors also use this model whether directly or indirectly. In fact, several websites have been dedicated to such work, CoSource (http://cosource.com/) and sourceXchange (http://www.sourceXchange.com/) are two examples of this. Both websites allow people with money and a project idea or feature to post them there. Programmers can then browse these project requests, and take the project on if interested.

Dual licensing

This often is paired with support licensing. Often business managers will not find software credible to be used unless it comes under what they deem a standard commercial license. Dual licensing is a very good solution to that problem. Most dual licensing is keeping two separate copies of the program code, both with separate licenses. One copy will most likely be open source, while the other will be some proprietary license. The open source one is distributed freely, while the proprietary one is only sold, usually as boxed software. Open source enthusiasts find it somewhat amusing that `suits', their name for business people, would rather pay money than go with a completely free solution.

One possible problem with having two licenses is that when members of the open source community donate sections of code, they will most likely be unwilling to have that code also be dual licensed without providing them with some kind of compensation. This either means that the open source version and the commercial version drift separately, the company provides incentive for the programmers to dual license their contributed code, or the company will have to rewrite all contributed features so that they can sell those parts commercially.

Book and CDROM sales

Many companies make their profit by selling books and boxed software. Redhat is an example of this, and although all of their offerings are available free online, they still get a lot of business for their CDROMs and other offerings.

Sell it, free it

The last model of open source is one which the computer gaming industry, among others, often uses. The steps of this method are to release a product as commercial, make money out of selling it commercially (until there is little or no market left), then release it as open source. While this model doesn't directly benefit the open source community in the ways that most open source products do, it does allow the code for classic computer games to be seen by the world for the educational experience. Also, as there is no market left, there is nothing to be lost by releasing as open source.

Licensing

Open source is a category of licenses. As such there is a small selection of licenses. While the average person may find licensing a trifling subject of discourse, the open source community is quite concerned, often adamant, about the various open source licenses. Huge flamewars6 are fought over these issues. The most popular licenses are the GNU General Public License (GPL), the GNU Lesser General Public License (LGPL), the Berkeley Software Division (BSD) family of licenses, and the X license. Each license has relative strengths and weaknesses, which below are examined.

The GPL

http://www.gnu.org/copyleft/gpl.html

The GPL is the most widely used and most popular of the software licenses. It was made by the Free Software Foundation for their GNU project. The license emphasizes freedom and contains clauses which remove freedom so as to keep freedom. For instance, after releasing code as GPL, the GPL can never be removed. Another interesting aspect of the GPL is that any derived work from GPL must also be GPL. ``In other words, if a developer distributes a product that uses one line of GPL-ed code, then the entire derived work must be covered by the GPL (or something similar.) This `infectious' quality has led some to (rather unfairly) refer to the GPL as the `copy virus'" [Public Software Institute 1998].

Sometimes, this viral-like quality can be advantageous. For instance, in May 2000, Microsoft implemented the Kerberos protocol into their operating systems. Since Kerberose was licensed under BSD, they were able to make non-compatible changes to Kerberos and not release them to the public [Chaney 2000]. Bruce Perens came out quickly and blamed this on the license:

Consider what the case would have been if the Kerberos protocol had been under a license that allowed free use, but demanded the publication of a reference implementation or full documentation for any modifications, under the same terms as the license for the rest of the protocol. Microsoft would have had to turn to another protocol, or design its own, or publish the reference implementation [Parens 2000b].

LGPL

http://www.gnu.org/copyleft/lesser.html

The LGPL is a a subset of the GPL. Originally made for libraries,7 it allows derived products to be under non-open source licenses. ``There are reasons that can make it better to use the Library GPL in certain cases. The most common case is when a free library's features are readily available for proprietary software through other alternative libraries. In that case, the library cannot give free software any particular advantage, so it is better to use the Library GPL for that library'' [Stallman 2000c].

BSD

http://www.xfree86.org/3.3.3/COPYRIGHT5.html

The BSD licenses come in different varieties, but most of them can be summarized as only requiring: that the copyright statement must be preserved in derived works, and that the name of the author and his organization must not be used in promotions without permission. Basically it allows a person to do absolutely anything they want to with the code as long as they fulfill the copyright attribution. This makes it one of the least restraining license there are for open source.

Originally the BSD license had the advertising clause (http://www.xfree86.org/3.3.3/COPYRIGHT6.html), which stated that all derived works had to give copyright notification of University of California Berkeley in any advertisement or documentation. The result was that when multiple organizations started releasing code under this license there were so many copyright mentions that an advertisement would have been impossible. Although this has been fixed, and most of the code has been licensed under the new license, some still use the advertising clause as a reason to not use the BSD License [Stallman 2000a].

X

The X license is much like the BSD license. It uses completely different wording and has never had an advertising clause. This license very clearly states how free it is by saying, ``Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sub-license, and/or sell copies of the Software'' [Open Group 1998]. The only stipulation is that the copyright notice must stay intact.

Many feel that this, or the above BSD license should be used when possible as no limitations are put on the code per the copyright notice clause. This could allow commercial enterprises to `take advantage' of the code for their own gain, however this may not be a bad thing. In fact, being able to reuse code in such a fashion is exactly the reason why some businesses choose to release their code under the X license. If they need to use the code for other things later, they can, and have not shot themselves in the foot.

Other

Those who are interested in the other open source licenses should visit either http://www.gnu.org/philosophy/license-list.html or http://opensource.org/licenses/. Most of the other licenses have reasons why they should not be used, so although most of them are used by several fairly major packages, further use of them is not encouraged.

The future

Open source has just started to set major trends in the industry. Although it has been around for over two decades, its full potential has yet to be fully utilized. The future for open source will be interesting to watch as more business models are developed, as more commercial endeavors join open source, and as the concept spreads to other aspects of life.

Threats to open source

Looking into the future, there doesn't seem to be any dangers that will be able to threaten open source software. The only way for open source to go away is for everyone to stop using it, which currently seems highly unlikely. However some people, such as Bruce Parens, warn that commercial information companies, such as the movie and music industries, may try to ignore open software. ``What use will computers running free software be when they cut you off from outside forms of information?'' [Parens 2000a].

Another tactic that some companies, such as Microsoft, would like to use against free software is patents. ``The worst threat we face comes from software patents, which can put algorithms and features off-limits to free software for up to twenty years'' [Stallman 1999]. The second Halloween document also confirmed that Microsoft may try such tactics when it is mentioned that, ``the effect of patents and copyrights in combating Linux remains to be investigated'' [Valloppillil 1998b].

The final major hurdle to open source is secret hardware. Many hardware companies are not giving out the interface to their designs, which makes it fairly difficult for the open source community to write drivers for this hardware. While most people already using open source will look for such hardware and not purchase it, new open source users often are loaded with this hardware. Since there are no drivers for their hardware, they often feel discouraged from trying open source. The resolution to this problem is uncertain, but one can hope for the best.

Open source hardware

A field that is just starting to be explored is that of open source hardware. Few have actually tried to apply open source to hardware, but there is a growing group of people ready to attempt open hardware development. Mostly, this would not be for whole products, but for certain components.

Closed source information production in the semiconductor industry is not economically efficient. Right now, for any given engineering problem, there are dozens if not hundreds of teams working simultaneously, but in mutual secrecy, towards its solution. The semiconductor industry is engaged in a ridiculous game of concurrent wheel re-invention. Open source concepts can solve this Pareto inefficiency for a large class of problems [Pomerantz 2000].

In fact, there are some projects currently working on open Central Processing Unit (CPU) design. One that got quite a lot of publicity early on is the Freedom CPU (http://f-cpu.tux.org/), a project to make a chip which competes with Intel's or AMD's. Another similar project is opencores (http://www.opencores.org/), also in CPU design. If this trend continues, it may significantly lower the barriers for new businesses and individuals to innovate.

One organization in the software world that the hardware world should look to as an example is the Internet Engineering Task Force (IETF). This amazing organization, with no commercial or government backing to enforce standards, has led the Internet to the place it is today. Almost every protocol and interface used was proposed and standardized through the IETF.

Documents are submitted to the IETF as Internet drafts. Internet drafts are refined and reviewed until the Request For Comment (RFC) editor approves of it, and makes it an RFC. At that time, it is an official standard. All of this happens in a completely open environment where anybody can access the documents at no cost.

It is quite clear that one of the major reasons that the IETF standards have been as successful as they have been is the IETF's open documentation and standards development policies. The IETF is one of the very few major standards organizations that make all of their documents openly available, as well as all of its mailing list and meetings.

Restricting access to work-in-progress documents makes it harder for implementors to understand what the genesis and rational is for specific features in the standard, and this can lead to flawed implementations. Restricting access to the final standards inhibits the ability for students or developers from small startups to understand, and thus make use of, the standards [Bradner 1999].

Needless to say, the future of hardware engineering may be facing a large amount of change in the coming years, possibly decades. The result of this change--open standards, core implementations, and open interfaces--can only benefit the engineering and scientific community. It can only lower the cost of designing new products, while drastically raising the flexibility and features in a given product.

Conclusion

Open source, like software itself, is completely changing how games are played and how life is lived. It is both exciting and enlightening to watch this process of change. People have not even begun to realize the full potential of open source, but as they do, our world and our marketplace become more of a community and less of a rat race. Those who have not yet explored open source should strongly consider getting their feet wet with this truly exhilarating model for development.

Bibliography

natexlab url urlprefix

Bradner 1999
Bradner, S. , Jan. 1999.
Open Sources: Voices from the Open Source Revolution, chapter The Internet Engineering Task Force.
O'Reilly.

Chaney 2000
Chaney, M. , 2000
Michael chaney ask microsoft to open kerberos.
[www document].

Clarke 2000
Clarke, R. , Feb. 2000.
Information wants to be free.
[www document].
URL http://www.anu.edu.au/people/Roger.Clarke/II/IWtbF.html.

Hall 1999
Hall, J. , 1999.
How to build a Beowulf: A Guide to the Implementation and Application of PC Clusters, chapter Forward, xvii.
The MIT Press.

Netcraft 2000
Netcraft. , Apr. 2000.
The netcraft web server survey.
[www document].
URL http://www.netcraft.com/survey/.

Open Group 1998
Open Group. , 1998.
Terms and conditions.
[www document].
URL http://www.x.org/terms.htm.

Open Source 2000
Open Source. , May 2000.
History of the open source initiative.
[www document].
URL http://opensource.org/history.html.

Parens 2000a
Parens, B. , May 2000a.
Editorial: Music bootlegging with napster hurts free software.
[www document].
URL http://technocrat.net/957424958/index_html.

Parens 2000b
Parens, B. , May 2000b.
Open protocols and their licenses.
[www document].
URL http://technocrat.net/958149990/index_html.

Pomerantz 2000
Pomerantz, G. M. , Apr. 2000.
Business models for open source hardware design.
[www document].
URL http://pages.nyu.edu/ gmp216/papers/bmfosh-1.0.html.

Public Software Institute 1998
Public Software Institute. , May 1998.
Free software licensing.
[www document].
URL http://www.publicsoftware.org/licensing/.

Raymond 1999
Raymond, E. S. , Oct. 1999.
The Cathedral and the Bazaar, chapter The Cathedral and the Bazaar.
O'Reilly.

Stallman 1999
Stallman, R. M. , Jan. 1999.
Open Sources: Voices from the Open Source Revolution, chapter The GNU OPERAting system and the free software movement.
O'Reilly.

Stallman 2000a
Stallman, R. M. , Mar. 2000a.
The bsd license problem.
[www document].
URL http://www.gnu.org/philosophy/bsd.html.

Stallman 2000b
Stallman, R. M. , Mar. 2000b.
What is free software.
[www document].
URL http://www.gnu.org/philosophy/free-sw.html.

Stallman 2000c
Stallman, R. M. , Apr. 2000c.
Why you shouldn't use the library gpl for your next library.
[www document].
URL http://www.gnu.org/philosophy/why-not-lgpl.html.

Valloppillil 1998a
Valloppillil, V. , Aug. 1998b.
Halloween I - 1.4.
Internal Microsoft Document.

Valloppillil 1998b
Valloppillil, V. and J. Cohen. , Aug. 1998b.
Halloween II - 1.4.
Internal Microsoft Document.

About this document ...

Introduction to Open Source
ENGL-323 Writing for Engineers
Professors Nosworthy and Wood

This document was generated using the LaTeX2HTML translator Version 99.2beta6 (1.42)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 oss.tex

The translation was initiated by Scott Parish on 2000-07-04


Footnotes

... changes.1
Mention of the RIAA and MPIA are in reference to the RIAA's suit against mp3.com and Napster, and MPIA suits against anyone who distributes DeCSS which is a hacked piece of software which allows people on non-MS Windows operating systems to watch Digital Video Discs (DVDs). For more information see recent news articles:
http://news.cnet.com/news/0-1005-200-1485841.html?tag=st.ne.1002.thed.1005-200-1485841
http://www.wired.com/news/politics/0,1283,35394,00.html
http://slashdot.org/features/00/01/14/181240.shtml
... hacker2
Hacker, unlike the usage that popular media gives, is a computer programming expert. This is not to be confused with a cracker who is somebody who breaks security on machines. See http://abcnews.go.com/sections/tech/geek/geek41.html and http://www.tuxedo.org/ esr/jargon/html/entry/hacker.html
... daily.3
For a partial listing of OSS programs, visit http://www.freshmeat.net/
... DHCP4
Dynamic Host Configuration Protocol
... lists5
A Mailing list lets a group of people all commonly send emails between the whole group. This allows for an online community to help each other, share ideas, and bond.
... flamewars6
A flamewar is a yelling match through email. http://www.tuxedo.org/ esr/jargon/html/entry/flame-war.html
... libraries,7
In fact the name was originally the Library General Public License until RMS decided that the the name should be changed to Lesser General Public License to convey the idea that it should be used sparingly. See: http://www.gnu.org/philosophy/why-not-lgpl.html

Scott Parish 2000-07-04