Company

Linuxcare at Work

Open Source Developers

Community Center

Careers

Press Center

Contact Us



Understanding Linux Solutions: A Technology Overview by Linuxcare, Inc. Linuxcare Custom Solution Program


INTRODUCTION
Open Source software development and distribution is fundamentally different from that of traditional proprietary software. This paper will answer the following questions:

  1. What is Open Source software?
  2. How is Open Source different from proprietary software?
  3. How does the Open Source development process work?
  4. How is Linux developed, distributed, and supported?

1. WHAT IS OPEN SOURCE SOFTWARE?
 
Open Source refers to software distributed under a legal license, such as the GNU General Public License (GPL), that permits free distribution and requires open availability of the source code. All the essential portions of the Linux operating system--its heart, or kernel, and most of the utilities that make up the operating system--are published under the GPL.

  • Open Source licenses, such as the GPL, guarantee anyone the right to read, redistribute, modify, and use the software freely.
  • Under many Open Source licenses, including the GPL, modifications of existing software must be distributed under the same license as the original software. The source code to any changes or improvements must be made available to the public.
  • Most Open Source software is not developed by one single vendor, but by a distributed group of programmers. Typically, Open Source software development is guided by project maintainers who address technical or end-user requirements rather than vendor agendas.
  • Nobody "owns" Open Source software, which is freely available for download over the Internet. Linux distribution vendors such as Red Hat, Caldera, SuSE, and others package existing Open Source software and provide a more convenient way for their customers to obtain the software.
  • The GPL is one example of an Open Source license. Other examples include the BSD license, the MIT X License, the Artistic License, and the IBM Public License. All accomplish the same basic objectives: free distribution and openly available source code. All Open Source licenses meet the Open Source Definition, which is described at http://opensource.org/osd.html.


What are some examples of Open Source software?

Many of the leading Internet and networking software programs are Open Source software:

  • Linux, the Web's leading operating system (running 31% of Web servers, versus 24% for Windows and 17% for Solaris)(1)
  • Apache, the leading Web server (running 55% of the Web sites on the Internet)(2)
  • Sendmail, the leading Internet mail server(running more than 75% of email servers on the Internet)(3)
  • BIND, the leading Domain Name Server (DNS) platform
  • Samba, a cross-platform networking server
  • Perl, a scripting language
  • Mozilla, the browser from Netscape/AOL
  • MySQL, a database

The Open Source model unties the knot between the product vendor and support services. Because source code is available to all, vendors are able to focus on a part of the value chain and build competitive services without fear of proprietary lock-outs.

2. HOW IS OPEN SOURCE DIFFERENT FROM PROPRIETARY SOFTWARE?
 
With traditional proprietary software, the purchaser obtains only executable code--the ones and zeros that computers understand, but that are unreadable by humans. The company that develops the software holds the worldwide monopoly on its source code, and becomes the only place where the code can be modified, updated, or fixed. With Open Source software, the source code is freely available, giving developers the ability to isolate and fix bugs and to customize the software to their needs.

A common illustration equates using proprietary software with driving a car with the hood permanently welded shut. Under this scenario, if the engine were to break down, the owner would have to return the car to the manufacturer for repair. Without access to the engine, neither the owner nor the car dealer would be able to fix the problem. Open Source software is like a car with a hood that opens. Car owners can fix problems themselves, or choose a repair service that best fits their needs. In the proprietary software model, the best company to provide support is the company that manufactures the software. The manufacturer is the only company that truly understands the source code, has access to it, and can modify or fix it when it breaks.

In the Open Source software model, there is no single manufacturer. Open Source software is developed by distributed teams of programmers around the world. So there is no exclusive source for expertise, modifications, or bug fixes. Distribution vendors such as Caldera, Red Hat, SuSE, and TurboLinux are not primarily manufacturers, but rather packagers and distributors of free software developed by others.

The Open Source model unties the knot between the product vendor and support services. Because source code is available to all, vendors are able to focus on a part of the value chain and build competitive services without fear of proprietary lock-outs. Therefore, the best provider of shrink-wrapped Linux products is the vendor that best understands packaging, distribution, point-of-sale promotion, and branding. The best provider of Linux customer services is the vendor that specializes in service, building deep technical expertise and superior service delivery systems.

The bottom line is that the Open Source software development model, by creating--and protecting--an open playing field, encourages vendor specialization and fosters honest competition, ultimately giving the customer more choice, flexibility, and control.

What are the advantages of Open Source software versus proprietary software?

  • Stability. Open Source software is often more reliable and stable than proprietary software. This is because Open Source projects have large numbers of contributors and follow an iterative development, debugging, and testing cycle. The best known Open Source projects such as Linux have more contributors and testers than a traditional software company could afford to deploy on a project.
  • Cost. Open Source software is free. This results in immediate savings on licensing fees and upgrading costs. And the larger the project, the greater the savings--for example, there is no charge for additional client connections to an Open Source database.
  • Security. In the proprietary software model, developers compete to discover and exploit or publicize security holes. The Open Source peer review process redirects developer competition toward preventing security breaches in the first place. Additionally, there are no hidden APIs that can be exploited.
  • Flexibility. Open Source code can be modified to fit customer requirements. Drivers can be developed or modified without reverse-engineering unpublished APIs.
  • Choice of vendors. In the Open Source model, vendors compete purely on the basis of their ability to add value to a shared platform, not on the basis of proprietary secrets.
  • Reduced risk. The Open Source development model effectively spreads risks over a large pool of programming talent. And it provides a hedge against obsolescence--for example, if a company that develops Open Source software goes out of business, the code could thereafter be maintained in perpetuity by other developers. Cisco Systems recently decided to release print spooler software under an Open Source license to reduce its dependency on in-house programming staff.4

3. HOW DOES THE OPEN SOURCE DEVELOPMENT PROCESS WORK?
 
To understand the Open Source software development process it is important to acknowledge the roles of the various participants who take part in creating the code.

Project Maintainer/Developer

  • Has a personal need or "itch" for which there is no working code available
  • Determines the software license
  • Writes the first code release and puts it up on the Internet
  • Sets up a Web site, mailing lists, and version control services (e.g. VCS)
  • Builds and leads the development team, usually from volunteers
  • Approves official releases

Development Team

  • Adds features, fixes bugs, creates patches, writes documentation

Users/Debuggers

  • Find bugs, point out design flaws, and request new features

After the project maintainer puts up the first release, both users and the development team submit ideas to the project mailing lists. Patches come in from developers to the project maintainer. The maintainer incorporates improvements and releases a new version to the development team and users. As momentum builds, more people get involved, and the software evolves. Developers are rewarded by the immediately visible recognition of their contributions to the product.

Linux is probably the best-known example of a successful Open Source development project.

Improvements and bug fixes developed and submitted by companies such as Linuxcare are included in Linux releases based on technical merit alone.

Continued in next column



4. HOW IS LINUX DEVELOPED, DISTRIBUTED, AND supportED?
 
What is Linux?
 
Linux typically refers to the operating system built around the Linux kernel, a wide variety of GNU libraries and utilities, and many different Open Source projects. The Linux kernel is a small, though central, part of the overall operating system. The overall operating system comprises:

  • The Linux kernel, which handles process scheduling, memory management, symmetric multi-processing (SMP), device drivers, etc.
  • GNU C libraries (libc5, glibc6), the base API for the GNU system
  • GNU utilities, the shells, file utilities, compilers, linkers, etc.
  • X Windows, which handles graphical display
  • GNOME or KDE, which handles graphical user interface
  • Many other programs and utilities

AN OVERVIEW OF LINUX
 
Who owns Linux?
 
No one person or corporation owns Linux. It is created and distributed by a community of highly technical and committed contributors all over the world. Each of the components of Linux is an Open Source project that is managed by a different project maintainer.

How is the Linux kernel developed and updated?
 
The Linux kernel is developed and updated following the Open Source development model discussed previously. Linus Torvalds is the project maintainer, with final authority over what goes into the kernel. Because of the complexity of the project, he is aided by a group of appointed project maintainers who are responsible for various components of the code.

A large number of developers worldwide contribute to improvements to Linux. Any developer can submit a patch that includes source code changes to the kernel mailing list. The patch is reviewed by Linus and his project maintainers. They decide whether or not to include it in the next release based on technical merit, not commercial reasons. Thus, there is no single company directing the development path of the Linux kernel.

What is the difference between the development and stable release?
 
There are two separate code trees for Linux: the stable version and the development version. The stable version, which gets updated every few months, only includes code that is time-tested and proven. This is what is released to end users and businesses. Production releases have even version numbers, e.g., 2.0, 2.2, 2.4, etc. The development version is where developers can experiment with advanced technology and try new ideas. When there is a lot of activity, a new development kernel release can come out as often as three times a day. The Open Source philosophy is "release early and release often." This has proven to be an efficient way to discover and eliminate problems before they become deeply rooted. New features are worked out in the development kernel first and then are included in the stable kernel. Development releases have odd version numbers, e.g., 2.1, 2.3.x, etc.

What does a Linux distribution vendor do?
 
A Linux distribution includes the Linux kernel plus utilities, programming tools, window managers, and other software that make up a full operating system. Distribution companies, such as Caldera, Red Hat, SuSE, TurboLinux, and nonprofit organizations such as Debian, download the latest Open Source packages from the Internet, QA them, add utilities such as installation programs, and package them on a CD-ROM with a manual. The underlying code in each distribution is exactly the same. Slight differences may occur in the following:

  • hardware installation programs
  • default X-windows configuration
  • graphical systems management tools
  • proprietary software packages (very few)

In the vast majority of cases, Linux applications are compatible with all distributions of Linux, which accounts for the aphorism "Linux is Linux is Linux." When a new Linux kernel is released, it is put up on the main Linux kernel site, www.kernel.org. The distribution companies then package it and provide it as an update on their Web sites. Distribution vendors take the kernel as is, with all changes and fixes that are contributed by members of the development community. Each distribution company releases new distributions about twice a year. The Open Source development model discourages distribution vendors from forking the Linux code base into incompatible code streams. The GPL specifies that additions, modifications, and extensions to Linux are distributed in source code form whenever executables are made available. If a distribution company were to acquire development expertise and attempt to build unique features into Linux, its innovations would be released back to the development community. Truly valuable changes would then be included in the next release of Linux and/or freely adopted by other distribution vendors, eliminating any competitive advantage. Currently, the vast majority of fixes, patches, and additions to Linux are contributed by independent developers. Each one of these modifications improves the stability and functionality of Linux. Competitive pressures mean that Linux distribution vendors really have no choice as to which patches and fixes are included in their upcoming versions. Rather, the decision is made for them by the Linux project maintainers, who have final say over what goes into a new Linux release. Therefore, improvements and bug fixes developed and submitted by companies such as Linuxcare are included in Linux releases based on technical merit alone.

How does the Linux industry work?
 
The Linux industry consists of software developers, distribution vendors, application vendors (ISVs), hardware vendors, and services vendors.

Who develops Linux code?
 
Tens of thousands of independent programmers contribute code to project maintainers for inclusion in Linux.

Who packages Linux software and sells it?
 
Distribution companies such as Caldera, Red Hat, SuSE, and TurboLinux, as well as nonprofit organizations such as Debian, package Linux on a CD-ROM with a manual and sell it via retail, VAR, and direct channels.

Who develops applications for Linux?
 
Software development firms such as Corel, Sun (StarOffice), Oracle, SAP, and many others, as well as independent programmers, develop applications that run on Linux.

Who bundles Linux with their hardware?
 
Companies such as Dell, IBM, and VA Linux Systems sell Linux pre-installed on their computer systems.

Who provides support, service and training for Linux?
 
Linuxcare is the only company dedicated exclusively to providing enterprise-class technical support, training, certification, and professional services for the Linux platform. Linuxcare provides these services to companies across the Linux industry: developers, software vendors, distribution companies, hardware OEMs, and enterprise customers. It should be noted that while distribution companies offer support options exclusively for their Linux distribution, most outsource support. For example, Red Hat outsources support to Collective Technologies and The Sutherland Group; Caldera outsources support to Multi-User Solutions; TurboLinux outsources support to Linuxcare.

THE LINUX INDUSTRY AND ADDITIONAL RESOURCES


 

FOOTNOTES

  1. The Internet Operating System Counter, http://www.leb.net/hzo/ioscount/index.html
  2. The Netcraft Web Server Survey, http://www.netcraft.com/survey
  3. Sendmail, Inc. study; see http://www.sendmail.com/company/index.html
  4. 4The Magic Cauldron, http://www.tuxedo.org/~esr/writings/magic-cauldron/


 
Professional Services | University | Labs | Technical Support | About Us
 
Support Yourself| Kernel Central | Software Directory | Web Directory
Viewpoints | Product Comparisons | Linux for Business | Goodies
 
Feedback | Careers | Privacy Notice | Legal Notice

Copyright © 1999-2000 Linuxcare, Inc. All rights reserved.