Read an Excerpt
  Open Source Software: Implementation and Management 
 By Paul Kavanagh  DIGITAL PRESS 
  Copyright © 2004   Elsevier Inc. 
All right reserved. ISBN: 978-0-08-049200-1 
    Chapter One 
  Open Source Software:  Definitions and History    
  If you are going to become an advocate for open source software, there are  some definitions, frequently asked questions, and historic issues that will be  raised repeatedly. We will cover them in this chapter.  
  
  1.1 Definition of Terms  
  Open source software is software that must be distributed with source code  included or easily available, such as by free download from the Internet.  The source code should be in the same form that a programmer would  actually use to maintain it—not, for instance, a generated, obfuscated, or  intermediate code form. The license of this software will not restrict others  from distributing the code or modifications and derived works under the  same terms. It will not discriminate against people or fields of endeavor.  Sample licenses are included in an appendix.  
     The Open Source Definition is included in Appendix B. The Open  Source Definition (OSD) was originally written by Bruce Perens for Debian  Linux and was completed in 1997. It is an established definition of open  source that is simple without being too simple, and it includes several  licenses that are acceptable.  
     Some people call software like this, distributed under licenses such as the  GPL, Apache, or Mozilla licenses, "Open Source Software." Others call it  "Free Software." Yet others, particularly in Europe, call it "Free/Libre or  Open Source Software" (FLOSS). Capitalization of these terms varies.  There are other expressions in use also, but the most widely used term  seems to be open source. In this book, we will refer to software that meets  the Open Source Definition as "open source." This is a simple expression  that avoids capitalization and acronyms such as "OSS," both of which are  annoying to read repeatedly.  
     The alternatives to open source can be called proprietary software, commercial  software, or, alternatively, nonopen, nonfree, or closed software.  These may have slightly different meanings, since there can be different  ways of failing to meet the tests of open source. Some of these terms may  strike a reader as derogatory, although that is not intended, probably  because in our society "freedom" and "openness" sound more attractive than  their opposites. For our purposes, it will be helpful to have a term for these  alternatives. We will refer to software that does not completely meet the  OSD as "closed code." In this use we are following Lawrence Lessig in his  book, The Future of Ideas. If a piece of software (a product) combines open  and closed elements, such as Apple OS X, it will be defined as closed. So any  software product, as licensed, will be defined as either open or closed.  
     There is a third term that we will use in two special cases. Some software  is offered under different licenses. It may be offered to some groups as open  source and to others as closed. Note that to meet the terms of the OSD (to  be considered open source), this must be at the user's discretion. This is a  hybrid licensing model.  
     We can also apply the term hybrid when looking at a group of products.  If a group of products is purchased or installed together, some of which are  open source and some closed code, we will call the result a hybrid system.  An example would be IBM WebSphere, which includes Apache (open  source) and some other products that are closed code.  
     First, we will deal with a few frequently asked questions.  
  
  1.1.1 What Is Free Software?  
  Many people prefer the term free software to open source software. The term free  software dates from 1984, when the idea and arguments for it were first published  by Richard Stallman. The idea is not that software should be free "as in  beer," or available at no charge, but that it should be free "as in speech," so  you can review it and change it as you need to. The position of the Free Software  Foundation is simply and well stated, including criticism of the open  source position, at the Free Software Web site, http://www.gnu.org/.  
     The term open source dates from 1997, when a group of people, including  Eric Raymond, Tim O'Reilly, and Bruce Perens, decided that the term  free software and some of the arguments employed in support of it were  making the idea less attractive to many businesses. They decided, as a marketing  decision, to emphasize technical and practical advantages of open  source software rather than arguments from principle. Those positions are  stated by Eric Raymond and others at the open source Web site http://  www.opensource.org.  
     Everyone should probably read these documents at some point. While  they refer, with a few minor exceptions, to the same licenses and the same  software products, some people are more motivated by the "free software"  aspect and others less so. This book is intended for the pragmatic manager,  who will establish the value of a particular open source product by comparing  it with competitive products on a case-by-case basis using traditional  measures, including price, functionality, reliability, support, and documentation.  Open source code may in fact improve certain measures of quality,  such as the ability to freely customize a product, to review the code to determine  how some function is implemented, or to support custom extensions.  Open source products also appear to have lower prices in many cases. If so,  these products will do well in our evaluation on those measures.  
  
  1.1.2 What Are Good Examples of Open Source?  
  Flagship products of open source software include:  
  * The Apache Web server, with a share of 65 percent of installed worldwide    Web servers and still growing  
  * The Linux operating system, used on millions of servers, which demonstrates    that no system is too large and complex to be developed as    open source  
  * The GNU C/C++ language suite, used to build Linux and Apache    and thousands of programs on almost every operating system  
  
     These programs are huge, have been used by millions of people over many  years, and have developed a reputation for reliability and customer satisfaction.  There are thousands of other examples. Some are less well known than  Apache and Linux and have even more users, such as the ubiquitous Internet  BIND and Sendmail programs. Others are not so big or well known and may  have a few thousand or a few hundred users. A good place to see a sample of  open source projects is SourceForge (http://sourceforge.net).  
  
  1.1.3 Is It Necessary to Adopt Open Source Wholesale?  
  It is possible to assemble a complete "platform" from open source software,  and many of the most popular open source programs work well together.  Some small startup companies have done this. For most people, open  source solutions will be adopted one product at a time. Most adopters will  not be able to, or desire to, discard all closed code software at this time, and  there is no reason they should need to. Many new solutions, such as IBM  WebSphere, contain a mixture of open software and closed code.  
     It is possible to run open source products on existing Windows installations,  or to migrate closed code programs you already have to run on Linux.  
  
  1.1.4 Does "Open Source" Mean Linux?  
  It is possible to adopt open source without using Linux at all. Many developers,  for example, may use open source on Windows. On servers, for  example, Apache is an open source Web server that runs on Windows and  UNIX servers and IBM mainframes as well as Linux.  
     On workstations, OpenOffice rivals Microsoft Office in functionality  and can be installed from CD or the Internet in less than five minutes for  no cost on Windows desktops. The Mozilla open source browser can be  chosen, for instance, to standardize on a single browser for Windows and  the Mac.  
     We will look at some scenarios for Linux and some for other open  source products.  
  
  1.1.5 Does Open Source Require Different        Business Methods?  
  It is not necessary to adopt an open source approach to development or distribution  in order to use open source software, and most organizations do  not. Many companies develop closed code software products that run on  open source software and sell them for a profit; this includes almost every  large software company today—IBM, HP, Oracle, SAP, and Apple. Other  companies develop applications that run on open source for their own business  purposes—for instance, Google, Amazon, or eBay—without feeling in  any way restricted by open source licensing or development models.  
     It is never a problem to develop an application for your own use in an  organization, to sell or distribute an application written in an open source  language, or to run on an open source platform. Nor is it a problem to distribute  the open source software alongside yours.  
     If you change or extend the open source software and redistribute it,  you may have responsibilities under the license. In that situation, it is necessary   to look carefully at the license and choose one that works for your  business model.  
  
  
  1.1.6 Will All Systems Be Open Source One Day?  
  Given current installed systems and sales trends, we can be certain that over  the next few years open source and closed code software will coexist. In the  long run, there is reason to expect some balance. There are advantages to  open source but also limits.  
     First, both commercial and government organizations have legitimate  reasons for secrets. Organizations such as the CIA and Merrill Lynch, both  of which have deployed open source quite widely, are never going to open  up all their code for public scrutiny.  
     Second, some classes of applications appear to be more likely to fit the  open source model than others. There is very little market share for open  source in commercial ERP and CRM systems or in large commercial databases.  This may change, and the development of open source for these  enterprise systems may be a matter of time, but it would certainly take  many years for that to happen. Alternatively, we may discover rules of  thumb that limit the open source model to certain areas only and find that  some complex business areas never really become open source.  
     Third, there could be a trend back toward closed code applications.  Some people argue that a new wave of innovation might demonstrate the  added value that closed code companies can offer. Others say that changes  in the legal climate, such as patent law, might be introduced that would tilt  the balance in favor of closed code systems again.  
  
  1.1.7 Is Open Source a Fad That Will Go Away?  
  The information technology business has seen its share of fads. But this  seems more like a trend of the kind we see in other industries as they mature.  Mature products such as office suites often become commodities. Mature  services often become organized to more closely reflect where the real costs  lie—in this case, in service and support rather than the original code.  
     Already, the majority of organizations have some role for programs such  as Linux, Apache, and Perl. It is likely that at some point most organizations  will have some open source widely deployed. So far, we are seeing  open source software improve, if anything, more rapidly than closed code  software. The open source cost advantage may narrow if closed code prices  come down, but it is going to continue to exist.  
  
  1.2 A Brief History of Software  
  In this section, we will look at the closely entwined histories of open source  software, UNIX-like operating systems, Linux, the Internet, and the World  Wide Web.  
  
  1.2.1 Early Years  
  In the 1950s, the first modern business computers were introduced, based on  work done during World War II. These were practically one-of-a-kind  machines, running custom programs written in binary code, later assembler  language. They were extremely expensive and it was thought by some (such  as a famous IBM market estimate) that only a few might ever exist.  
     In the 1960s, commercial mainframes were introduced by several companies.  These were custom programmed for applications, usually in  COBOL or FORTRAN. System software (e.g., the important programs  such as CICS, IMS, programming languages, sort, and other utilities) was  developed in assembler language. A major success of the System/360, introduced  by IBM in 1964, was that for the first time, the same assembly language  ran on all the related systems, so that system software could run on a  family of computers.  
  (Continues...)  
     
 
 Excerpted from Open Source Software: Implementation and Management by Paul Kavanagh  Copyright © 2004   by Elsevier Inc..   Excerpted by permission of DIGITAL PRESS. All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.