InformIT

The Advantages of Adopting Open Source Software

Date: May 6, 2005

Sample Chapter is provided courtesy of Sams.

Return to the article

This chapter focuses on the advantages of going with an open source solution. It looks at application availability, software costs, license management, and other issues that must factor into a decision of whether to adopt open source in your environment.

Open Source Advantages

Before you commit to the adoption of open source, Critical Thinking 101 mandates that you ask the question, "Why?" This section attempts to answer that question from a variety of perspectives. Open source has impact not just for developers and in-house IT managers, but also potentially for every person throughout the value chain of an organization from management to knowledge workers to suppliers, customers, and partners.

By and large, the effects of open source are advantageous with benefits ranging from lower costs to simplified management to superior software. These advantages include the following:

Taking a comprehensive and critical view of open source should raise some questions as well, regarding drawbacks. There have been several criticisms by detractors of open source, but most of these can be mitigated or relegated to myth status. Here’s a short list of possible concerns (each of which are discussed in subsequent sections):

Open Source Solutions

Talking to people who are in IT or IT-related fields (resellers, analysts, and even press), you find that even though most have heard of open source, five out of six don’t know the breadth or depth of open source solutions that are available. It’s also generally assumed that open source mainly means Linux or maybe Linux and Apache. As the open source movement gains momentum, and particularly as established vendors market open source concepts, these perceptions will change. Offerings include the following:

At this point, it’s possible (although maybe not practical for the majority of organizations) to completely run a small or medium business using open source solutions. A $20 million Utah business in Novell’s backyard is entirely open source—it has never paid a dime for software licensing fees. This company supports 70 users, provides an external website, includes desktop applications, customer resource management applications and internal databases, and even sells its main line-of-business products packaged with open source components. Open source produces savings in licensing fees, hardware costs (the average company computer is a Pentium II), and management resources (the CTO is also the IT manager and spends about two hours per week on administration). Estimates of open source savings are between 7%–10% gross annual sales, which, in this case, is a significant portion of net profit. This is an example of a viable company that, without open source, probably wouldn’t be in business.

This example isn’t typical (nor will it be) of open source implementations, but it is pointed out to illustrate the breadth and depth of solutions that are available and the market expansion that’s possible though open source. Open source adoption will be a matter of substitutes and complements: Substitute where open source is as reliable, scalable, and feature equivalent to proprietary software and complement existing and established and proprietary IT services with open source when it’s cost-effective.

A more detailed discussion of what’s currently available follows.

Operating System—Linux

We’ve already talked about Linux and its place in the application stack. It’s the foundation or basis for any IT service or application. In general, the Linux operating system provides the following features:

The following are just a few of the general, high-level Linux services available:

Of course, many more features and services of the Linux operating system are available, but those just listed are the most common and are found in practically every distribution for every platform. Part of the appeal of Linux is that it is available on a broad variety of hardware platforms from custom-built microdevices to IBM mainframes. The following is a short list of available Linux platform ports:

Linux distributions are available from multiple sources. Again, a distribution usually consists of the core Linux operating system packaged with administration utilities, documentation, installation media, custom libraries, desktop interfaces, and common drivers. Distributions can be use-specific (for example, workstations, servers, or applications) or hardware platform-specific. The following sections discuss the most common Linux distributions and a little background for each.

SUSE Linux

SUSE’s (pronounced soo sah) development history includes extensive experience with enterprise organizations. SUSE has both workstation and server versions of Linux and was used to leverage integrated and bundled software through Linux to provide quality solutions. These aspects all mesh well with Novell’s history and strategic direction. This is discussed in more detail later.

SUSE originated in Germany as a Unix consulting company. With the advent of Linux, SUSE evolved to provide personal and professional versions of Linux plus distributions that included services geared to corporate networks and enterprise use. SUSE includes an extensive and unique (to SUSE) administration program called YaST (Yet another Setup Tool) that has become the most powerful installation and system management tool in the Linux world. Driver support is excellent, and desktops included are KDE and GNOME.

All of these factors plus the company culture, market share, and market potential contributed to the decision for Novell to acquire SUSE (http://www.novell.com).

Red Hat

Red Hat is probably the most widely known of the Linux distributors because it was one of the first to provide Linux in an easy-to-install package—and it was the first Linux-centric company to go public. Formed in 1994, Red Hat specialized in providing Linux packaging, service, and support while keeping everything included with their offerings open source. Red Hat employs between 600–700 employees and retains developers who have contributed to the Linux community, most notably Red Hat Package Manager (RPM), a system for updating Linux services and utilities, which is open source (http://www.redhat.com).

Red Hat’s product line has evolved to provide the Red Hat Enterprise Linux (RHEL) line, several versions of Linux targeted at enterprise companies, including workstation (WS), advanced server (AS), and enterprise server (ES). Each of these versions require license fees and an ongoing subscription fee for maintenance and support—a requirement that has drawn ire from customers and has been the basis for disparaging comparisons to Microsoft and their "vendor lock-in" strategy. Red Hat also now "sponsors" Fedora Core, a Linux distribution supported by the open source community that is freely available and intended to replace the consumer version of Red Hat Linux.

Debian

The Debian distributions are prominent for several reasons. First, the Debian Project is solidly based on "free software philosophies" with no official ties to any profit-oriented companies or capitalistic organizations. The second head of the Debian Project, Bruce Perens, was instrumental in the development of the Debian Social Contract and the Debian Free Software Guidelines, which are the basis of the Open Source Definition (OSD), the guidelines that are used to determine whether a software license is truly "open source." Debian’s free heritage is a draw for organizations that are leery of corporate control.

Debian distributions are also available on a wide variety of platforms, including 11 different computer architectures, and there are a wide range of services, with over 8,500 packages in the current distribution. Entry to the Debian community requires proficiency levels and philosophy commitments, and results include thorough testing across all distributions.

The Debian development process is a structured system of voting and hierarchy that tends to produce stable releases. The major voiced concern with Debian is that officially stable code is too dated to be valuable (http://www.debian.org).

Mandrakelinux

Mandrakelinux is a classic example of forking. The objective of MandrakeSoft, a French software company, was to provide a version of Linux that was optimized for the Intel Pentium processor. Mandrake started with a version of Red Hat and added a control center that simplified the management of peripherals, devices, hard drives, and system services for Linux. Mandrake is a popular desktop distribution and more widely used among Europeans (http://www.mandrakesoft.com).

Turbolinux

Turbolinux is a major supplier of Linux distributions in the Asia Pacific countries, with strengths in the area of Asian language support. Turbolinux is particularly popular in China and is being used to build backbones for both government and corporate networks (http://www.turbolinux.com).

Other Distributions

In addition to those mentioned previously, several other Linux distributions are platform- or geographic-specific. Gentoo Linux is a modular, portable distribution that is optimized for a single, specific machine according to one of thousands of package-build recipes. Red Flag Linux is a distribution supported by a venture capital arm of China’s Ministry of Information Industry. Conectiva is a Brazilian company that provides Linux in Portuguese, Spanish, and English for Latin America.

United Linux was an attempt by several Linux distribution companies to consolidate efforts around common installation and integration issues for enterprise companies. These companies included SUSE, Turbolinux, Conectiva, and Caldera (now SCO), and their objective was to dilute the dominance of Red Hat in the enterprise market. SUSE provided most of the engineering on the project that produced an enterprise-based distribution, but the effort was disbanded after SCO filed suit against IBM.

Server Services

Linux, as an operating system, has appeal across a broad spectrum from embedded devices to mainframes. There is, however, a superset of enhanced services that are available for mission-critical applications. Two open source projects that have evolved to become significant elements of an enterprise-class IT infrastructure are Beowulf and Samba.

Beowulf

Beowulf is a commodity-based cluster system designed as a low-cost alternative to large mainframes or supercomputers. A cluster is a collection of independent computers that are combined and connected to form a single unified system for high-performance computing or to provide high availability.

Donald Becker at NASA started the Beowulf Project in 1994 for solving highly computational problems for Earth and Space Sciences projects. Using off-the-shelf commodity hardware connected via Ethernet, Becker was able to build a 16-node cluster that immediately was of interest to universities and research institutions. Succeeding implementations of Beowulf have provided cluster-computing solutions that rival some of the fastest supercomputers.

Today, Linux is the operating system of choice for Beowulf clusters (called Beowulfs). Beowulf is managed and enhanced through an open source community (http://www.beowulf.org) and consists of a number of pieces of software that are added to Linux. The Beowulf architecture is flexible and accommodates a broad range of applications ranging from science to engineering to finance, including financial market modeling, weather analysis, simulations, biotechnology, data mining, and more. For an application to take advantage of cluster processing, it must be enabled for parallel processing, which allows computing tasks to be divided among multiple computers with messages between them.

Samba

Samba provides seamless file and print services to SMB/CIFS clients. In simple terms, Samba makes a Unix or Linux computer look like a Windows computer to anyone who is accessing it through a network. Samba was originally developed by Andrew Tridgell at Australian National University, who was trying to link a Windows PC to his Linux system for file access. The Microsoft networking system is based on the Server Message Block (SMB) protocol—Samba is SMB with a couple of "a"s added. From a Windows workstation, a Unix or Linux server appears just like a Windows server with the capability to map drives and access printers.

Samba has evolved to include the next generation of SMB, the Common Internet File System (CIFS) and currently includes file and print services as well as the capability to provide domain services, Microsoft’s NT version of access management. Samba is also available on IBM System 390, OpenVMS, and other operating systems.

Samba is available under the GNU General Public License (GPL) with an online community at http://us1.samba.org. Samba has been very popular for two reasons. First, it simplifies the process of network management and administration by providing more access without additional client requirements. Second, and probably more important, it provides a stealth entry point for Linux, eliminating barriers to interoperability and adoption.

Desktop Services

The open source equivalent to Microsoft Windows isn’t a single package solution. As the movement continues, a potential Windows killer is feasible. Today, open source desktop solutions include desktop interfaces (GNOME, KDE), an office productivity suite (OpenOffice), client libraries (Xfree86), and a client application platform (Mozilla).

GNOME

The GNU Network Object Model Environment, or GNOME, is a graphical desktop environment for end users running Linux or Unix. The GNOME free desktop project was started in 1997 by Miguel de Icaza and, in addition to providing a desktop, provides a framework for creating desktop applications. Most commercial Linux distributions include the GNOME desktop as well as KDE. More information on GNOME is found at http://www.gnome.org.

KDE

K Desktop Environment (KDE) originated with Mattias Ettrich in 1996 at the University of Tuebingen as an effort to provide a desktop for Linux in which all applications could have a common look and feel. KDE was built using the Qt toolkit and concerns about licensing restrictions from the toolkit spawned GNOME. Qt was later relicensed under the GNU GPL, eliminating any problems. Both GNOME and KDE are part of freedesktop.org and work to standardize desktop functionality. There are many KDE desktop applications and the community is headquartered at http://www.kde.org.

OpenOffice.org

OpenOffice.org (OOo) is a full office productivity suite designed to compete directly with Microsoft Office. It includes a word processor, spreadsheet, graphics program, presentation program, and an HTML editor, as well as database tools, macros, and more. It also includes conversion tools so that users can go between OpenOffice.org files and Microsoft Office files with little difference.

OpenOffice.org (not OpenOffice due to a trademark dispute) originated as StarOffice, a commercial office suite produced by StarDivision. In 1999, Sun Microsystems acquired StarOffice and in 2000 renamed it and contributed it to the open source movement. OpenOffice.org is available for Unix, Linux, Windows, and Macintosh computers in a host of languages and can be downloaded at http://www.openoffice.org.

Xfree86

The X Window System (X) was originally developed as a windowing, graphical interface for Unix. Graphically, it functions like Microsoft Windows, but architecturally, it is more sophisticated with the capability to graphically display applications from any machine on the network as if it were local according to a true client server model. Xfree86 is an open source implementation of X that consists of a set of client libraries to write X applications in which client and server communicate via the X protocol (http://www.xfree86.org).

Mozilla

Mozilla, as has been mentioned, originated with the release of Netscape Communicator source code to the public. Eric Raymond’s paper and philosophies gained traction at Netscape during the time that Microsoft was foisting Internet Explorer on the market. The Mozilla platform enables more than just a browser and includes an email client, instant messaging client, and HTML editor, as well as other standalone applications. Currently, a full-featured Internet suite is available and Mozilla can be found at http://www.mozilla.org. There are similarities between Mozilla and GNOME as far as being a client application platform. Desktop applications that have been written using GNOME include contact management, accounting, spreadsheet, word processing, instant messaging, and more.

Web Applications and Services

Moving from the operating system toward applications, there are several open source solutions that are available for the creation of applications, such as web application development components and tools. Two major web services are Apache and JBoss.

Apache HTTP Server

The Apache Web Server (its roots were detailed earlier) is the leading HTTP server on the Internet today, hosting over 67% of the websites according to http://www.netcraft.com. Apache is open source with versions running on Linux, BSD, Unix, NetWare, and Windows, as well as other platforms. Apache includes a powerful feature set with scripting, authentication, proxy, and logging capabilities. Popular features include multihoming, the capability to host multiple sites on the same machine, and the capability to password protect pages. Apache is also highly configurable and extensible for third-party customization and modules. Apache has been termed the killer application for the Internet. The Apache community is located at http://httpd.apache.org/.

JBoss

JBoss is a Java-based application server. In the Web sense, an application server is a collection of protocols and services that exchange data between applications. Applications are often written in different languages and run on different platforms, but as long as they are based on open standards, an application server will support them with querying, formatting, repackaging, and customizing content for consumption.

JBoss was designed to be an open source application server that supports the entire Java 2 Enterprise Edition (J2EE) suite of services, including Java Database Connectivity (JDBC), Enterprise Java Beans, Java Servlets, and Java Server Pages (JSP), as well as other content exchange standards such as Extensible Markup Language (XML). With JBoss, distributed applications can be developed that are portable across platforms, scalable, and secure. JBoss can be used on any platform that supports Java.

JBoss Application Server is owned and supported by JBoss, Inc. (http://www.jboss.org), an employee-owned company backed by venture capital and Intel. JBoss provides a line of middleware products and consulting services that support the development of JBoss Application Server.

Development Tools

Open source projects are not limited to packaged solutions only but extend to every facet of solution creation, including programming languages, compilers, and integrated development environments (IDEs). To create good software, you need good development tools, and several options are available depending on the task at hand, the amount of sophistication required, and, of course, personal style.

Python

Python is a portable, interpreted, interactive, object-oriented programming language. Python and Perl are commonly referred to as scripting languages because they are interpreted, but Python developers have great flexibility. Python is a multiparadigm language, making it possible to develop in any of several code styles, including structured programming, aspect-oriented programming, object-oriented programming, and more. Powerful, high-level data types and an elegant syntax are distinguishing characteristics. Python has been extensively used at Google and is considered by programmers, in addition to being powerful, to be more artistic, simple, and fun. Python was started in 1990 in Amsterdam, is owned by the Python Software Foundation, and can be found at http://www.python.org.

Perl

Practical Extraction and Report Language (Perl) was originally designed by Larry Wall in 1987 as a practical language to extract text from files and generate reports. Perl, like Python, is multiparadigm and is referred to as the mother of all scripting languages. Perl has been described as the "glue language" for the Web that enables developers to integrate and tie disparate systems and interfaces together. This is possible, as Perl has borrowed bits and pieces from many programming languages. Slashdot.org, "News for Nerds. Stuff that Matters." is a popular technology weblog that was built using Perl technology.

If you’re looking for evidence that open source isn’t controlled by stuffy corporations with sanitized marketing communications restrictions, you can find it in the industry humor. The name Python was taken from the TV show Monty Python’s Flying Circus. Mozilla was the internal code name for Netscape Communicator and is a contraction of "Mosaic-killer Godzilla." Perl is known as the "Swiss Army Chainsaw of Programming Languages."

PHP

PHP is a prevalent, general-purpose scripting language that is used for web development and can be embedded into HTML. PHP was originally started in 1994 by Rasmus Lerdorf as a way to post his résumé and collect viewing statistics, and was called Personal Home Page Tools. It was rewritten by two Israeli developers, Zeev Suraski and Andi Gutmans, and renamed PHP: Hypertext Preprocessor. PHP is popular as a server-side scripting language and enables experienced developers to easily begin creating dynamic web content applications. PHP also enables easy interaction with the most common databases, such as MySQL, Oracle, PostgreSQL, DB2, and many others. See http://www.php.net/ for more information.

GCC

Scripting languages such as Perl, PHP, and Python are great tools for certain types of solutions, but if you are going to create fast, native applications for a platform, you need a compiler. Richard Stallman wrote the initial GNU Compiler Collection (GCC) in 1987 as a free compiler for the GNU Project. Ten years later it was forked and in 1999, the forked enhancements were integrated back into the main product. GCC is the primary compiler used in developing for Linux and Unix-like operating systems and currently has been ported to support more processors and operating systems than any other compiler, including Mac OS X and NeXTSTEP. Programming languages supported include C, C++, Java, Fortran, Pascal, Objective C/C++, and others. The GCC open development environment community is located at http://gcc.gnu.org/.

Eclipse

Although Eclipse is commonly known as an Integrated Development Environment (IDE), it is more accurately a platform-independent, application development framework. Originally developed by IBM, Eclipse is unique in that it uses a plug-in model to support multiple programming languages. The Eclipse framework was used to develop the popular Java IDE and compiler that most developers know as Eclipse. Eclipse uses a graphical user interface that includes an intuitive workbench with navigator, task, and outline views that help integrate and access web services, Java, and C++ components. You can download Eclipse at http://www.eclipse.org.

Mono

To understand Mono, you need to know a little about .NET. .NET is the Microsoft answer to the complexity of developing Internet applications that integrate existing and often diverse Microsoft development and web services components. .NET is an initiative with the major task of integration being enabled through the Common Language Infrastructure (CLI), a virtual machine, and Common Language Runtime (CLR) that are standard class libraries. CLI and CLR combined allow developers to write applications using any language and a wide range of components and have them compiled and executed in a common byte code. .NET replaces Microsoft’s earlier (and somewhat vulnerable) component object model (COM).

Mono is an open source version of .NET that was originally developed by Miguel de Icaza of Ximian (now Novell). Mono includes both the developer tools and infrastructure needed to run .NET client and server applications on platforms other than Windows. Mono overcomes the single biggest drawback for developers using .NET from Microsoft—the requirement to run on the Windows platform. By bringing the shared source release of the .NET framework to multiple platforms and then building an open source project around extending it, Mono has made the strengths of .NET available to a much wider range of developers. The capability to develop using a variety of languages, all using a common interface and deployable on a number of platforms, is a very compelling development strategy. The Mono community is based at http://www.mono-project.com.

Databases

The bulk of all data has no relevance unless it is presented in context—in relation to other data. The majority of what we see on the Internet, whether it be news clips, product catalogs, directories, customer information, manufacturing statistics, or stock quotes, is content that is extracted from a database. Without underlying database services to provide relation and context as well as querying and reporting, what we see would be far less valuable.

Two relational databases have evolved through open source that contain a respectable amount of the Internet’s web-accessible data: PostgreSQL and MySQL.

PostgreSQL

PostgreSQL (pronounced post-gress-Q-L) originated with the Ingress project at UC Berkeley in the early 1970s. Ingress was commercialized and became the roots for databases Sybase, Informix, and SQL Server. After commercialization, a new effort was started at Berkeley called Postgres. The Postgres project evolved through several versions with new features, but was ended at Berkeley in 1994 because of demands for support. Because Postgres was available through the open source–like BSD license, it was then adopted by the open community, enabled with an SQL language interpreter, and soon renamed PostgreSQL.

PostgreSQL is comparable to commercially available databases, but includes even more advanced technology, such as the capability to simplify object-relational mapping and the creation of new type definitions. A PostgreSQL strength is the capability to eliminate impedance-mismatch that occurs when manipulating data that results when combining object-oriented programming with relational tables. The PostgreSQL site is located at http://www.postgresql.org/.

MySQL

The MySQL database, as mentioned earlier, is a relational database server owned and sponsored by Swedish company MySQL AB, which profits by selling service, support, and commercial licenses for applications that are not open source. MySQL works on a comprehensive collection of platforms, including Linux, Windows (multiple versions), BSD, Solaris, Tru64, AIX, HP-UX, Mac OS X, and more. It is also accessible from multiple languages, including Perl, Python, PHP, C, C++, Java, Smalltalk, Tcl, Eiffel, and Ruby, and it supports the ODBC interface. MySQL is very popular for web-based applications in conjunction with Apache. More information is available at http://www.mysql.com.

Documentation

Early open source projects were known to be light on descriptive documentation. As the movement has matured, reference information for open source projects has become more plentiful and more informative. The open source model itself is being used to generate documentation, training resources, and teaching aids. The most notable body of content is the Linux Documentation Project located at http://www.tldp.org/.

The Linux Documentation Project (LDP for short) originated in 1992 as a place on the World Wide Web where Linux developers could share documentation with each other and with those who were using their software. The LDP is maintained by a group of volunteers who provide a fairly extensive library of help, including feature man pages (feature or command documentation), guides, and frequently asked questions (FAQs).

A guide usually contains lengthy treatment of a general topic, such as network administration, security, understanding the Linux kernel, and so on. The LDP includes guides for beginners as well as advanced developers. HOWTOs are detailed, step-by-step treatments of specific topics from 3-D modeling to battery management to installing Oracle. The current number of HOWTOs is more than 500.

Other open source projects have followed the LDP model, and fairly comprehensive documentation is available for most major projects. Python documentation, for example, ranges from tutorials for beginners who have never programmed to detailed documents on parser generators. Documentation is often translated in multiple languages. LDP guides are available in German, English, Spanish, French, Italian, Portuguese, Russian, and Slovenian.

Open Source Project Sites

Everything discussed to this point can be classified as application enablers—things that get us to the point at which we can create the types of IT solutions that enhance productivity and enable business. Open source components—including the operating system, network services, desktop, development tools, databases—all exist to support applications. In addition to open source infrastructure and tools, thousands of open source applications are available that run the gamut from games to enterprise resource planning (ERP). Most of these projects are hosted at one of several websites that are tailored to hosting, categorizing, and servicing multiple open source projects and their associated communities.

These project sites provide access to and information about open source development efforts based on the type of application field, intended use, platform or environment supported, license type, programming language, and development status. In addition to providing downloads, these sites often include forums for comments, online chat capabilities, mailing lists, news on software updates, and more. Several of the more popular sites are SourceForge, FreshMeat, and forge.novell.com.

SourceForge.net

VA Software produces a web-based software collaboration and development application called SourceForge (http://sourceforge.net/index.php). SourceForge.net is an online instance of SourceForge that is available for the management of open source development projects. Several services, including Concurrent Versioning System (CVS) for version control and distributed collaboration, are available to facilitate online development and management of code. SourceForge.net markets itself as "the world’s largest Open Source software development website, with the largest repository of Open Source code and applications available on the Internet." As of September 2004, SourceForge.net claimed more than 87,000 projects and 913,000 registered users. Basic membership and project management is free, but for $39 per year, users can access a collection of premium services.

Freshmeat

The freshmeat collaboration site (http://www.freshmeat.net) was a central gathering point for developers writing to the Portable Operating System Interface (POSIX), a common Unix (now Linux) standard. Freshmeat hosts applications released under the open source license for "Linux users hunting for the software they need for work or play. freshmeat.net makes it possible to keep up on who’s doing what, and what everyone else thinks of it."

Novell Forge

In April 2003, Novell publicly presented its road map for Linux and open source. At the same time, it announced the launch of Novell Forge, an open source developer resource. Through the Novell Forge site, developers can download, modify, exchange, and update open source code released by Novell, share projects and ideas with the broader Novell development community, and participate in vertical market and technology communities. Since that time, Novell has contributed several products to open source, including the Novell Nsure UDDI Server and Novell iFolder. Novell Forge is located at http://forge.novell.com.

Software Costs

What is the number one reason IT organizations are turning to open source solutions? It shouldn’t surprise you that it’s to save money. It has been estimated that software costs U.S. companies more than any other capital expenditure category, including transportation and industrial equipment. Given the fact that software doesn’t naturally decompose like delivery vans or office chairs, this expense might be justified. But in reality, software costs a lot—maybe too much.

Trying to determine the actual value of software to any particular business or organization is difficult. In some cases, such as financial trading markets in which the value of instant access to information is measured in millions of dollars per minute, if a connection goes down, software costs are easy to justify. In other cases in which a particular application is made available to all with only a few utilizing it, or most using it only occasionally, the standard market value is tough to justify. In different instances, the same software might provide a dramatic range of actual business benefit.

This disparity is what has driven both software vendors and their customers to devise elaborate licensing schemes based on everything from individuals, to workstations, to usage, to sites, to organizations, to connections, and beyond. Although licensing strategies such as site or corporate licensing and software metering have helped to quantify the value of use, they have also introduced management variables that have increased costs to maintain and manage. Plus, licensing schemes have in some cases conditioned the environment for software producers to take advantage of vendor lock-in tactics.

In many respects, the open source movement is a consequence of disparity in use value for the same software in different situations. It is also a result of the vast difference between what software costs to produce compared to what the market will bear—the difference between the actual resources required to develop, debug, and post software by a user community to what a monopolistic market leader can charge to reap a maximum rate of return.

In general, you get what you pay for, but with open source, some interesting dynamics are altering the rules of the software licensing game. The primary area affected is licensing fees. With Linux, there are no licensing fees. You don’t need to pay for extra seats—no cost to make copies and run multiple servers, and no fee differentials for high-end enterprise uses as opposed to simple desktops. It costs nothing to obtain and nothing to share. The GNU GPL under which Linux is protected specifically states, "You have the freedom to distribute copies of free software." This single fact could be worth significant savings to your organization. Eliminate the cost of an operating system for every desktop and every server and you could cut your budget considerably. Add to it an office productivity suite for every desktop and you gain even more.

You might be thinking, "Well, both Red Hat and Novell charge for Linux—what gives?" The Linux kernel is free. What you are paying for with most distributions in which a transaction fee is involved is the packaging, testing, additional services, and utilities that are included with that particular distribution. There is a cost, but it’s significantly less than you would be paying for proprietary software. For example, Novell’s packaged distribution of SUSE Linux Enterprise Server 9 is retail priced at $349 USD. Compare that to Microsoft Windows 2003 at $1,020 USD. That’s a big difference!

This might be elementary, but the savings are not just a one-time benefit with the initial software purchase. Here are several ways that you can significantly reduce software expenses:

Open source can help enterprise companies cut other costs related to software asset management. Some organizations have created entire departments around ensuring that licensing restrictions are enforced and that the company is in compliance with all signed software agreements. With open source, resources used to monitor and enforce software compliance can be repurposed and expensive software asset management solutions can be shelved. The detailed and sometimes tedious business of contract negotiation and determining actual use can be eliminated.

A study conducted by a leading industry analyst firm asked enterprise software purchasers which software-licensing model they preferred. The most frequent response was, "Allow me to pay for what I use." The second most frequent was, "Allow me to pay for the value I derive." Open source helps bring licensing fees in line with value received.

Software licensing fee savings are dramatically evident for organizations that are choosing to eliminate replacement costs by migrating to open source. An article from IT Manager’s Journal details the savings for a company of 300 users. After pricing the cost to upgrade server OS software and email server and client software with associated access licenses, the IT manager was able to implement a superior solution using open source for 25% of the cost of a Windows solution. With the savings, he was able to buy all new hardware and purchase a new Oracle application. Savings of software costs can be significant.

Novell recently migrated from Microsoft Office to OpenOffice.org. With the open source solution, it was possible to get equivalent feature and functionality but immediately trim nearly a million dollars per year off of licensing costs.

Simplified License Management

Simplified license management is almost a given with the elimination of software fees. In addition to the termination of complex licensing negotiations and software asset management efforts, there are no nagging concerns about compliance. In reality, however, all licensing issues aren’t eliminated and that has to do with the fact that the GNU General Public License isn’t the only commonly accepted open source license. A summary of other open source licenses in use will be helpful—but first, a little about how they have evolved.

When Richard Stallman started the GNU Project, he also established the Free Software Foundation, a nonprofit organization that promotes and supports the free software movement. As has been mentioned, the word "free" was a source of confusion in that you were free to give software away, but software wasn’t necessarily without cost. When the Debian Project with a version of GNU/Linux began to grow, a set of guidelines was needed to determine what contributed software could appropriately be included with the distribution and still maintain "free software" status. Bruce Perens, the second project leader of Debian, helped create the Debian Social Contract and the Debian Free Software Guidelines. The Debian Social Contract is a set of moral guidelines that engage users and software makers in an agreement regarding free software. The Debian Free Software Guidelines (DFSG) are the rules used to determine whether software actually is free. These rules include free redistribution, inclusion of source code, allowance for modification, and other specifications that protect integrity and redistribution.

Bruce Perens teamed with Eric Raymond to create the Open Source Initiative (OSI) in 1998, which attempted to stem confusion around "free" by coining the term "open source" and writing the Open Source Definition (OSD) that was similar to the DFSG. (See the complete guidelines at http://www.opensource.org/docs/definition.php.)

Open Source License Templates

So what does all of this have to do with simplified licensing? Plenty. Today, many different open source licenses are used and almost all of them certify their openness by comparing compliance to the Open Source Definition. Here are a few of the more common examples:

Currently, more than 50 licenses have been approved by the Open Source Initiative as adhering to the guidelines of the Open Source Definition. These are maintained and available for use on the OSI website at http://www.opensource.org/licenses. Using any of these licenses ensures that software covered by the license is "OSI Certified Open Source Software" and is classified as "free" software.

Simplified License Management

Pragmatically, how does this affect enterprise licensing concerns? It reduces workload and worry—reduces, not eliminates. In general, the majority of open source licenses are based on the Mozilla Public License, which means that you don’t have to worry about license count, reuse issues, or distribution. If you’re running Linux as a server operating system, there’s no need to count boxes. Just install it whenever and wherever you need, making as many copies as you like. If you have a fully redundant failover cluster in a remote location, there’s no double cost for software. Want to add extra web servers to accommodate a surge in online sales? No charge.

For many organizations, people changes at the desktop are far more frequent than data center servers. Here licensing can be significantly simplified with open source. If you want no licensing worries at all, you can run Linux OS at the desktop and OpenOffice.org as the office productivity suite. The typical user has everything he needs, including word processing, email, browser, file sharing, and more. This is especially relevant to organizations that can fluctuate in size over short periods of time as a result of special projects, mergers and acquisitions, divestitures, and seasonal changes.

It was mentioned that licensing issues would be reduced, not eliminated. Realistically, you would still need to deal with proprietary software that might be running on or in conjunction with open software. Web application services, databases, desktop applications, and even many of the software services that Novell sells still require license management and compliance.

The net result of all this is that you will have far fewer licensing headaches. There won’t be any renewals, contract negotiations, or renegotiations, and no need to spend valuable resources ensuring that you are in compliance with agreements for what could be a significant portion of your software. At minimum, software covered by any of the preceding licenses allows you the freedom to apply it to any use, copy it, modify it if needed, and redistribute it.

If your organization is developing open source software or modifying it for redistribution, you need to look more closely at the main open source licenses at http://www.opensource.org and see which template would be most appropriate to work from.

Lower Hardware Costs

Consider the following quick facts gathered from Novell customers who have implemented Linux:

These cost benefits are fairly typical of the savings that are possible when using Linux as a foundation for applications, networking services, and web services. Linux, in general, makes more efficient use of hardware due to its efficient architecture, economic use of code, and the intense focus that multiple groups have put into kernel performance enhancements.

Linux not only allows IT departments to get more use out of existing hardware, it enables them to more fully take advantage of new scalability and performance features that have been built into the latest hardware. Linux allows you to get more out of Intel Itanium, AMD64, IBM POWER, and IBM zSeries processors.

Some IT organizations are seeing dramatic hardware savings by switching to Linux from proprietary Unix/hardware solutions—Sun/Solaris and IBM/AIX solutions have been particularly expensive. Migrating to Linux on commodity Intel hardware can save a bundle. When Bank of America first started moving from Solaris to Linux, it found it could buy four times the hardware for the same money using regular Intel x86-based hardware (http://www.linuxvalue.com/networkint.shtml). AutoTradeCenter in Mesa, AZ, saved 60% by going with its Oracle application on HP/Intel and Linux rather than Oracle on Sun Solaris (http://www.linuxvalue.com/autotradectr_cs.shtml). Golden Gate University found that Linux in Intel was three to five times less expensive than Solaris on Sun.

Clustering as a business continuance solution has already been discussed, but many companies are moving mainframe processing to Linux grid computers with significant success. The global oil company Amerada Hess, Corp., was able to move its 3D sea-floor rendering application from an IBM supercomputer, which it was leasing for $2 million per year, to a $130,000 Beowulf Linux cluster and get results in the same amount of time. DreamWorks has saved millions of dollars over its previous SGI Unix systems by moving to Intel-based Linux clusters for business operations and rendering (http://www.linuxvalue.com/ncollinsHP.shtml).

Implementing Linux on the desktop can save hardware money as well. The same principles apply with lower-powered hardware being able to perform equally well using open source software. Utility desktops with office productivity, web browser, and email functionality (which is what 80% of office workers only use) can be configured using base or entry-level hardware.

If you’re considering thin-client desktops with Linux (something that’s a lot easier to do with Linux than with Windows), the hardware savings can be even more significant. Client hardware can be reduced to the bare minimum as applications, storage, and everything else is maintained at the data center. The client workstation only needs to have a monitor, keyboard, mouse, network adapter, and CPU. In addition, management costs are minimized as all operations can be done remotely.

Scalability, Reliability, and Security

To this point, we have discussed open source software in general terms and have included desktop and frontend software as well as server OS and back office solutions. This section hones in on several Linux advantages that have aided in its meteoric rise to a full-fledged OS player in the data center. These advantages are scalability, reliability, and security, and generally apply to all Linux distributions.

Scalability

Scalability encompasses several technologies that enable a system to accommodate larger workloads while maintaining consistent and acceptable levels of performance. Three specific scalability areas are clustering, symmetric multiprocessing (SMP), and load balancing.

Clustering

As mentioned previously, the Beowulf Project allows multiple individual Linux machines to be harnessed together in a single, high-performance cluster. Several commercial-grade cluster implementations are available, including Shell Exploration’s seismic calculations, the National Oceanographic and Atmospheric Administration’s (NOAA) weather predictions, and Google. Google is reported to have 15,000 Intel processors running Linux that are used to index more than three billion documents and handle 150 million searches per day. Linux clustering capabilities are outstanding with practical applications from finite element analysis to financial simulations.

Clustering is enabled using separate packages, Beowulf and Heartbeat. Beowulf includes a message-passing interface and bonding network software between parallel virtual machines. This provides for distributed interprocess communications and a distributed file system for applications that have been enabled for parallel processing. Simply said, it puts lots of processors on a single large task sharing data and processing power.

Clustering can also be used to ensure high availability for tasks that are not necessarily computation-intensive but must be up all the time. With a high-availability cluster, multiple (at least two) identical systems are in place with a form of keep-alive monitor or "heartbeat," which monitors the health of nodes in the cluster. If the heartbeat fails on the primary system, a second system takes over providing uninterrupted service. Cluster management is not tied to any particular machine but management services are shared among the cluster nodes so that if any single point fails, the system continues uninterrupted.

What is clustering available for? Any service that demands continuous access is a candidate. Take authentication, for example. An enterprise network might have thousands of users who authenticate each time they access network resources. If the authentication service goes down, everyone is prevented from getting to what they need. High availability ensures that authentication is always possible. E-commerce applications, email, DHCP, FTP, and high-traffic download sites are also candidates for clustering. Linux clustering capabilities provide both powerful parallel processing and enterprise-class high availability at a relatively low cost.

Scalability features that were built into the Linux 2.6 kernel provide for larger file system sizes, more logical devices, larger main memories, and more scalable SMP support, allowing it to comfortably compete on par with most Unix operating systems. Other scalability technologies include Linux support for hyperthreading, the capability to create two virtual processors on a single physical processor, providing twice the capacity to process threads. The NFS4 file system is a secure, scalable, distributed file system designed for the global Internet. With the 2.6 kernel, memory and file sizes can scale to the full limits of 32-bit hardware.

A distinct advantage of open source is that you have multiple groups such as the Linux Scalability Project at the University of Michigan’s Center for Information Technology (CITI) specifically focusing on scalability. Several of the discoveries and advancements made by this group have been incorporated into the Linux 2.6 kernel. Another example is the Enterprise Linux Group at the IBM T.J. Watson Research Center that has worked to increase scalability for large-scale symmetric multiprocessor applications. The breadth and depth of intellectual manpower applied to solving scalability problems is responsible for the accelerated acceptance of Linux as a truly scalable solution.

Symmetric Multiprocessing

Multiprocessor support (simultaneously executing multiple threads within a single process) has long been marketed as a performance-enhancing feature for operating systems on IA-32 hardware. But not until the Linux 2.6 kernel have multiple processors really been much of an advantage. Linux supports both symmetric multiprocessing (SMP) and non-uniform memory architecture (NUMA). Novell SUSE Linux has been tested with more than 128 CPUs, and with hardware based on HP/Intel Itanium 64-bit architecture, there is no limit on the number of supported processors.

Multiprocessor support with two processors can help enhance performance for uniprocessor applications such as games. Multiple processor support performance enhancements become increasingly visible with software compiles and distributed computing programs in which applications are specifically designed for divided computations among multiple processors.

Load Balancing

An early problem of large Internet sites was accommodating the sometimes wild fluctuations in traffic. An onslaught of page views or database queries could completely clog a connection or bring an application server to its knees. The open source technology called squid is widely used for load balancing traffic between multiple web and application servers.

Squid is an open source proxy web cache that speeds up website access by caching common web requests and DNS lookups. Squid runs on a number of platforms, including Unix, Mac OS X, and Windows. Caching eliminates the distance and number of locations that are required to supply an HTTP or FTP request and accelerates web servers, reducing access time and bandwidth consumption. Load balancing is also accomplished with PHP scripts that allocate database requests across multiple databases. A master database is used for updates, and proxy or slave databases are used for queries.

Reliability

As web and commerce sites have become more integral to standard business processes, the requirement for high levels of uptime is much more critical. The staying-on power of Linux when it comes to mean times between required system reboot is outstanding. One Linux shop has an interesting IT management problem. Using diskless, Linux user workstations with shared backend services also running on Linux, the primary point of failure is CPU fans and power supplies. The IT manager has a box of fans and power supplies and 80% of his administration time (he’s only a part-time administrator) is spent replacing worn-out fans and burned-out power supplies. For this company, Linux is extremely reliable.

Many Novell customers have been able to significantly improve reliability by switching from Windows to Linux. A construction company improved uptime from 95% to 99.999% after moving from Windows to SUSE Linux. The Asian Art Museum in San Francisco enjoys the same levels of reliability with its IBM/SUSE implementation, which helps it showcase nearly 15,000 treasures, and ends the need to reboot servers on average twice per month. The modular, process-based Linux architecture allows different services to be upgraded without ever taking the system down. Customers report that Linux servers have gone through dozens of upgrades and have never been rebooted.

IBM has performed extensive Linux stress tests with heavy-stress workloads on Linux kernel components, such as file system, disk I/O, memory management, scheduling, and system calls, as well as TCP, NFS, and other test components. The tests demonstrate that the Linux system is reliable and stable over long durations, and can provide a robust, enterprise-level environment.

It’s worth noting that IBM has ported Linux to every system they sell, including the IBM S/390. Customers for these systems demand absolute reliability and through IBM’s research and testing, they have found that Linux delivers—no "blue screen of death," no memory leaks, no monthly reboots, and no annual reinstalling of the operating system to regain and ensure stability.

SUSE worked with IBM, HP, and Intel to ensure that the SUSE Linux distribution was reliable, scalable, and secure enough for carrier-grade telecommunications service providers. The SUSE Carrier Grade Linux (CGL) solution is quickly becoming a preferred platform for other applications with less stringent reliability requirements, such as financial and retail markets.

Security

And last, but not least, Linux security is a major advantage over other options—particularly Windows. The viruses Love Bug, Code Red, Nimda, Melissa, Blaster, SoBig, and others have collectively cost companies billions and billions of dollars ($55 billion in 2003 according to Trend Micro). But, companies running Windows servers—not those running Linux—have for the most part, incurred this cost.

Windows is estimated to have between 40 and 60 million lines of code, as compared to Linux with around 5 million. Windows code has evolved over the years from a desktop operating system with new functionality and patches added, creating an unwieldy collection of services that is full of potential security vulnerabilities. A major culprit is unmanaged code—the capability to initiate processes with access across OS functions without the protection of a sandbox or protected area. Many Windows modules rely on complex interdependencies that are very difficult to compartmentalize and secure. Outlook is linked to Internet Explorer, and a security hole in one leads to a security breach in the other. Also, technologies such as ActiveX and IIS expose these weaknesses to outside access.

Linux programs are designed to operate in a more secure manner as isolated processes. Email attachments can’t be executed automatically, as are ActiveX controls and other specially built virus files. Linux (and Mac OS X) prevent any real damage occurring on a system unless the user is logged in with the highest levels of permissions as root or administrator. With Windows, workstation users are almost always logged on with these high-level privileges that exploit vulnerabilities.

According to a report by Dr. Nic Peeling and Dr. Julian Satchell, "There are about 60,000 viruses known for Windows, 40 or so for the Macintosh, about 5 for commercial Unix versions, and perhaps 40 for Linux. Most of the Windows viruses are not important, but many hundreds have caused widespread damage. Two or three of the Macintosh viruses were widespread enough to be of importance. None of the Unix or Linux viruses became widespread—most were confined to the laboratory." The vulnerabilities of Windows have also been of higher severity than those of Linux.

From this, you might agree with Security Focus columnist Scott Granneman who writes, "To mess up a Linux box, you need to work at it; to mess up a Windows box, you just need to work on it." Historically, the Linux open community has also been much quicker at detecting security vulnerabilities, creating and testing patches, and providing them to the community for download. The Linux code is open to thousands of "eyeballs" and both the problem and the fix are readily apparent to someone. Word in the open source community is that no major security defect has ever gone unfixed for more than 36 hours.

Security isn’t just about worms and viruses. It also includes the administration framework that controls user access anywhere in the network. Unix-like operating systems such as Linux were designed based on multiuser, distributed architectures with the capability to work on any machine from any location as if it were local. As a result, security mechanisms for the protection of running processes, transmission of data, and authentication are very secure. Using advanced Novell directory technology in conjunction with a Linux network provides a strong layer of additional security.

Governments are choosing Linux for security reasons as well. Although most Linux distributions include a rich collection of preselected packages for automatic installation, as a Linux user you can pick and choose the packages you want installed. Government organizations can create hardened security servers with a specialized set of services and minimal vulnerability by customizing the package list and compiling it according to their own security policies. For example, a server might be compiled to provide only FTP services, which makes it impervious to attacks through email, HTTP, or other common services.

Support

For 46% of the enterprise companies in a Forrester Research 2003 study, "lack of support" was the biggest concern in using Linux and open source software (Forrester Research, The Linux Tipping Point, March 2003). That concern is quickly fading, in part because companies now better understand the open source development model and how to find the wealth of online support that is accessible. In addition, the amount of commercial or vendor support that is now available, even since the Forrester research was conducted, is significantly higher.

The open source community provides support in several ways, including documentation, FAQs, bug reports, webrings, mailing lists, and more. For example, if you examine the Apache HTTP server website for support resources, you’ll find the following:

The support resources mentioned here for Apache are fairly typical of all major open source projects. In fact, many of them use the same open source web applications for discussion groups, bug reporting, and mailing lists. In reality, the support process for open source software is not much different than company-based proprietary software, except for the fact that everything is open and available. Proponents of open source methods claim that as soon as the support methods and sources are understood, it’s easier and faster to get support than from many established commercial support organizations.

That said, there is still ample need for commercial support. Many IT organizations are more than willing to pay for the security and knowledge that when they pick up the phone for help, there will be a skilled, intelligible professional available on the other end. The success of companies such as SUSE and Red Hat, which have built their businesses around consulting and support, are proof that the demand exists. Organizations that demand five 9s (99.999%) of reliability absolutely must have quality support, even onsite if need be, and that type of support for open source is now available from companies such as Novell.

Open source support is being supplied by a number of leading ISVs (independent software vendors) and OEMs (original equipment manufacturers), including Oracle, BMC, Red Hat, IBM, HP, and others. HP provides multiple levels of training on Linux from simple administration to advanced driver development. Hardware and software products from these industry leaders that include open source solutions are covered by enterprise-class support agreements. Support is just one element of a solution that these companies include as part of a total package solution.

In addition, hundreds of small integrators have emerged that provide support and development services for open source software. A quick search of http://www.findopensourcesupport.com yields over 150 providers that supply open source services.

Novell sees the open source support need as a primary opportunity to supply customers with the service and support that they require. The sweeping momentum of open source has created a support vacuum of sorts, and no global software services company is in a better position to fill this need than Novell. Novell was a pioneer in the creation of technical support models from the beginning of networking software in the early 1990s. As a result, the Novell support infrastructure that was created to support networking installations in the largest companies around the world is now focused on open source—and focused with intensity.

Novell can contribute significantly to the support requirements of companies adopting open source in three main categories: technical support at multiple levels, training and education, and consulting:

Finally, Novell support is augmented, amplified, and widely distributed through an extensive world network of Novell channel partners. More than 4,200 globally distributed Novell partners provide services from product sales, to technical support, to integration and setup, to custom development, and more. You can browse to find a Novell support partner at http://www.novell.com/partnerlocator/.

Is Linux support now available? Absolutely! And not just from Novell. Most of the support services just mentioned are also available from leading OEMs and ISVs providing open source solutions. Service, support, and training for open source is of high quality, relevant, and significantly helps to promote open source in the industry. Novell is in a strategic position to promote open source and especially Linux with its SUSE Linux expertise and the position of Linux as a basis for network and application services. The closely related NetWare experience is easily leveraged to further open source in IT organizations around the world.

Deny Vendor Lock-in

In economics, vendor lock-in, also known as proprietary lock-in or more simply lock-in, is a situation in which a customer is dependent on a vendor for products and services and cannot move to another vendor without substantial costs, real and/or perceived. By the creation of these costs to the customer, lock-in favors the company (vendor) at the expense of the consumer. Lock-in costs create a barrier to entry in a market that, if great enough to result in an effective monopoly, might result in antitrust actions from the relevant authorities (the FTC in the United States).

Lock-in is often used in the computer industry to describe the effects of a lack of compatibility between different systems. Different companies or a single company might create different versions of the same system architecture that cannot interoperate. Manufacturers might design their products so that replacement parts or add-on enhancements must be purchased from the same manufacturer rather than from a third party (connector conspiracy). The purpose is to make it difficult for users to switch to competing systems. (Source: Wikipedia, the free encyclopedia.)

"Enraged" is probably the most appropriate description of CIO sentiments toward a certain ISV market leader’s attempts to limit choice through the practice of vendor lock-in. After a quick review of recent history, it’s not hard to conclude that a good deal of the intensity and momentum of the entire open source movement is a reactive backlash to the monopolistic and coercive methods of commercial software vendors.

Many ISVs, including Novell, work to ensure that customers return again and again for services and establish income flows through subscriptions and maintenance. But historically, others have consistently endeavored to limit choice to a single vendor with closed and proprietary solutions. As described in a recent eWeek article, "The economic value of ’open’ lies in the ability for users to walk away from onerous vendor pricing or licensing, the negotiating leverage they have, and the ability to avoid vendor-unique extensions."

The following list includes several of John Terpstra’s definitions of vendor lock-in. John has been part of the open source Samba project since its early days, and has methodically identified several restrictions that illustrate vendor lock-in scenarios:

Open source provides fundamental freedom of choice. Sure, there are differences in distributions and features, but the fact that code is open and available means that in the majority of cases, good features and enhancements will eventually be merged with the mainstream code. Several elements of open source reduce the probability of vendor lock-in. These include open standards, application portability, and alternative selection:

At this point in time, almost every common software solution needed for a typical business is available as an open source solution. Operating system, file sharing, firewall, web server, database, office productivity applications—multiple versions are available for each of these with no interlocking dependencies.

Here are the top vendor lock-in dangers:

Lest you think it hypocritical to point out the blemishes of vendor lock-in in the face of Novell’s 20-plus years as an independent software vendor, we must look at the facts. Novell’s first product was an effort to get Unix, CPM, and DOS machines to work together seamlessly with the capability to share back and forth. If you look at Novell’s history, practically every product produced has had the stamp of interoperability—getting heterogeneous, disparate systems to work together. This includes NetWare with its many clients, eDirectory with its user authentication synchronization, ZENworks with cross-platform management, and now products such as SUSE Linux, Open Enterprise Server, and iFolder. In a way, Novell’s success is a result of providing interoperability and connection services between disparate systems. With a focus on open source and Linux, the tradition of managing flexibility and choice continues.

Quality Software and Plentiful Resources

People like to take potshots at open source—especially threatened ISV executives. Realistically, it’s probably hard to imagine how thousands of developers, from all over the world, without bosses, compensation, deadlines, or fear of retribution can create software solutions that rival the best efforts of proprietary companies. This section takes an in-depth look at the development process, with the objective of illustrating just how open source code gets written. It also shows just how deep the resource pool for open source development and administration talent really is.

Who Are Open Source Developers?

Linux, Apache, and several other mainstream solutions have shown that collaborative open source software projects can be successful. "Why open source works" is the big question—one that reportedly has puzzled even Bill Gates. "Who can afford to do professional work for nothing? What hobbyist can put three man-years into programming, finding all the bugs, documenting his product, and distributing it for free?" Gates once wrote.

Steven Weber, a political science professor at UC Berkeley, has researched the motivations of Linux developers and summarized the reasons why they do what they do in the following categories (Source: The Success of Open Source, Harvard University Press, 2004):

From this research, you can see that open source developers are not merely geeks, united in a hobby-love for computers with code a by-product of their cyber fun. The motivations for development are deep, real, and closely parallel the motivations for almost any other productive endeavor, whether it’s motivated by profit, altruism, self-interest, or religious belief. Bottom line, the open source movement is real, with traction provided by a competent, skilled development force.

What do we know about who open source developers really are? Concrete data on demographics is scarce, but some estimates give us an idea. The credits in the 2.3 version of Linux code listed developers from over 30 countries. The community is definitely far-flung and international. More developers have .com addresses than .edu, indicating that many are working at for-profit institutions. The O’Reilly Open Source Convention attendee list included people from aerospace (Boeing, Lockheed Martin, General Dynamics, Raytheon, NASA); computers and semiconductors (Agilent, Apple, Fujitsu, HP, Intel, IBM, Philips, Intuit Macromedia, SAIC, Sun, Texas Instruments, Veritas); telecom (ATT Wireless, Nokia, Qualcomm, Verizon Wireless); finance, insurance, and accounting (Barclays Global Investors, Morgan Stanley, Federal Reserve Bank, PriceWaterhouseCoopers, Prudential); media (AOL Time Warner, BBC, Disney, LexisNexis, Reuters, USA Today, Yahoo!); and pharmaceuticals (GlaxoSmithKline, McKesson, Merck, Novartis, Pfizer).

A 2002 study conducted by Boston Consulting Group from SourceForge and Linux kernel email lists produced quantified demographics on the Free/Open Source Software community, including the following:

Interesting quotes from survey respondents included the following: "How often in ’real life’ do you find Christians, Jews, Muslims, Atheists, Whites, Blacks, Hispanics, Republicans, Democrats, and Anarchists all working together without killing one another?" (NYC IT consultant), "People will always want to contribute what they know to a project that scratches an itch. Open software will continue to depend on projects that meet people where they need help" (San Jose IT manager).

How Does the Open Source Process Work?

Each open source project can have its own unique process development cycle. After all, there is no forced hierarchy, preferred method, or established "right way" with open source. However, an open source project will generally include the elements illustrated by the flowchart developed by BCG after their 2002 research (see Figure 2.1).

Figure 2.1

Figure 2.1 A general map of the open source development process.

The process can be summed up as follows:

Several key principles facilitate the development of open source software. Without these key elements, it would be much more difficult to completely evolve a project to productive reality. These elements include code modularization, peer review, developers as users, and, of course, an effective communication infrastructure:

And the result? Open source development leads to quality software. Here’s a quantifiable sample of the caliber of open source code. Reasoning is a security inspection service that uses automated technology to uncover coding flaws, such as memory leaks, out-of-bounds array access, bad deallocations, and uninitialized variables. In comparing two open source solutions (MySQL and the Linux TCP/IP stack) to the collection of commercially available versions of each, Reasoning found that defect density in the open source solutions was significantly lower than in the commercial versions.

The defect density per one thousand lines of code for MySQL was .09, as compared to an average of .57 for commercial versions. The defect range for commercial databases was between .36 and .71, still significantly higher than for MySQL. The defect rate for the Linux TCP/IP stack was .10 per thousand lines of code, as compared to a range of .15 for the best of the commercial stacks, up to more than 1.0 for the worst (http://www.reasoning.com).

Linus Torvalds simplifies the concept. "I think, fundamentally, open source does tend to be more stable software. It’s the right way to do things. I compare it to science vs. witchcraft. In science, the whole system builds on people looking at other people’s results and building on top of them. In witchcraft, somebody had a small secret and guarded it—but never allowed others to really understand it and build on it...When problems get serious enough, you can’t have one person or one company guarding their secrets. You have to have everybody share in knowledge."

Summary

This chapter thoroughly explains why open source is a viable solution for the computing environment. The next chapter builds upon this and examines how open source has fared in the real world.

800 East 96th Street, Indianapolis, Indiana 46240