Open Source: A Strategic Overview

Introduction

Of the all folk sayings that one can turn to for guidance, "If something sounds too good to be true, that's because it probably is" would be accepted as one of the most reliable. This is particularly true for Information Systems professionals, whose survival depends on a healthy dose of skepticism towards claims of wondrous functionality and sterling reliability.

Therefore when reports emerged in the late 90's about this new operating system called Linux which ran on inexpensive hardware, provided tremendous functionality, and was available free for the downloading, most audiences reacted with reasonable skepticism. The proposition that this new environment could displace entrenched proprietary offerings and play a significant role in enterprise information systems infrastructure was dismissed by most as highly speculative.

However current experience has demonstrated that this is one of the few cases where something that sounded too good to be true actually delivered some of its exceptional promise.


Value proposition

This article will attempt to achieve the following


Definition

A piece of software is Open Source when:

Most Open Source software is licensed under a standard license called the GPL (General Public License). However developers of Open Source applications are free to apply whatever license they wish, so as a result there are many different Open Source licenses. The most common alternate license is the BSD (Berkeley Software Distribution) license.

Which Open Source license is applied makes no difference if your plans are to acquire the software and make use of it personally or within your organization, regardless of whether you make modifications. You are welcome to implement as many instances of any Open Source application as you like.

The specific terms of the different licenses becomes important only if you are planning to include or use Open Source software in a software product for which you intended to impose restrictions, e.g. a license fee.

Other significant points to keep in mind in regards to Open Source software licensing:


Components

A typical system which makes use of Open Source software will contain the following components:

The Open Source software environment is the result of the collective efforts of software developers working as project teams. These teams work on the maintenance and enhancement of software which independently and competitively provision different system components. As a result it would be impractical for many organizations, and hopeless for most individuals, to integrate all of these components to build a useful system. Hence the necessity of distributors.

Distributors generally do not develop software. Rather, they add value to the software developed by these diverse projects by collecting, integrating, and testing the individual software components required to provide a functional and integrated environment.

For most users of Open Source the choice of Distributor is more important than the choice of the individual components. We will go into detail on Distributors later, but first let's look at the major components which will be common to all Open Source systems.

Kernel

Open Source kernel's provide the same function as all Operating System kernels; hardware management and an environment for process execution.

There are two major Open Source kernels. The one with the highest profile is the Linux kernel.The strength of the Linux kernel over the alternatives is broad hardware, distributor, and application support.

The other major kernel is the BSD kernel family. The BSD kernel exists in three major variations; Open BSD, Free BSD, and the Mach kernel which forms the basis of Macintosh's OS X.

The BSD kernels have two major strengths. First, the license allows for distribution of derivative works without requiring distribution of the source, making it a more attractive platform for proprietary software development. Second, the BSD kernels tend to be compact and focused on security and reliability, making them an excellent platform for applications requiring high security and availability.

Regardless of the kernel, all Open Source environments share a common set of core utilities and networking code based on the Berkley Software Distribution. These tools include utilities for file system and user account maintenance, network configuration and diagnostics, a suite of C language development tools, and large software component libraries. As a result much of the skill set, many procedures, and much software is transferable between systems based on different kernels.

It should be noted that the majority of development tools and applications are available in versions ported to most, if not all, major kernels.

Graphical environment

Many Open Source based systems, particularly servers, run effectively using text only interfaces. This is the basis, in large part, for Open Sources reputation for hardware efficiency and stability; they can avoid the overhead and complexity of a graphical environment where not required.

However modern applications demand a graphical interface. This leads us to a common component of all Open Source based systems, the X windows environment, which has served as the default client graphic server on Unix based systems for 20 years.

A key advantage of X windows is it was designed from inception for network independence. A workstation user can work with applications running on the local workstation or remote servers without seeing any difference in behavior. This allows the development of applications with rich graphical interfaces while avoiding distributing software components to the workstation.

Desktop environments

On it's own X windows does not provide the functionality most users would expect of a graphic environment, such as the ability to resize and relocate individual windows or to copy and paste objects between applications. Most systems will run a .window manager. on top of X windows which provides the functionality we associate with a graphical environment.

As a result for any particular workstation you have a choice of running it:

There are two major desktop environments available for Open Source platforms; Gnome and KDE (K Desktop Environment). The two environments offer similar functionality. Historically Gnome has had stronger vendor support, however KDE has broader implementation and appears to becoming the predominate environment for most users.

Practically most client workstations will employ either the KDE or Gnome desktop environment. The choice is best made by using the default of the distribution that you choose.


Application frameworks

Open Source environments have traditionally been designed, developed, and used by software developers. So it is not surprising that one of the great strengths of Open Source systems are application environments.

Many of the popular commercial application platforms are available for purchase for execution on Open Source operating systems. However there are also many high quality Open Source application environments:

Qt

The Qt application framework from Trolltech is the basis for the KDE desktop environment. Qt allows for the development of platform independent applications in C++ for X windows (Linux, BSD), Microsoft Windows and Mac OS X. The framework is free for development and deployment on Open Source platforms, but requires a fee for deployment to Windows and OS X.

Mono

Mono is an Open Source implementation of the ECMA standard portion of .net and the CLI (Common Language Infrastructure). It allows the development of C# based applications that can be run under Gnome (with work underway for support under KDE) or on Windows.

Java

The Java 2 platform, version 1.4, is available for Linux, as well as the Eclipse IDE (Integrated Development Environment).

LAMP

The acronym LAMP stands for Linux, Apache, MySql, and PHP/Python/Perl; the Linux server operating system, Apache web server, MySQL database, Python and Perl programming languages, and PHP HTML extensions. LAMP is the most popular architecture for Web based applications, regardless of operating system, and is the foundation for large sites like Yahoo, Amazon.com, and E*TRADE.

ZOPE

Zope is a web application development framework based on the Python programming language.

Tomcat

Tomcat is an implementation of Java Servlet and JavaServer Pages which works in conjunction with the Apache web server to provide a framework for Java based web applications.


Applications

There are thousands of applications available for Open Source based systems. For example, the Debian distribution of Linux has 9,100 packages available for installation.

Needless to say there is an Open Source application to address almost any requirement. However there are a few applications worth specific mention.

Open Office

Open Office is the Open Source version of the Star Office suite, which is owned by Sun. The suite offers a word processor, spread sheet, and presentation graphics package. Open Office provides similar functionality to the Microsoft suite, and while it can successfully read many Office files it does have difficulty dealing with some esoteric features. As long an individual does not require frequent exchange of files with users of Microsoft Office, Open Office is a viable alternative for the majority of users.

Firefox

Firefox is an Open Source web browser. While it.s roots can be traced to Netscape Navigator, the current version of Firefox has been essentially re-written. Firefox is available for Linux, Microsoft Windows, and OS X. With the addition of the available JavaScript and Flash plug-ins, Firefox provides a superior browsing environment to Internet Explorer, being less vulnerable to security exploits and offering pop-up ad blocking.

The companion e-mail client, Thunderbird, provides a graphical client for POP3 or IMAP based e-mail. The separate Firefox and Thunderbird application replace the integrated Mozilla suite, which continues to be supported.

The GIMP

The GIMP (Gnu Image Manipulation Program) is a raster image (bit map) editing program. It offers a broad range of functionality, and a wide range of input and export formats.


Distributors

When we discussed the components of an Open Source system we noted that Open Source systems are the product of tens of thousands of independent developers working on thousands of different projects.

Each of these development projects deliver a set of source code files, usually in C or C++, which are made available on a public server for downloading.

Anyone is welcome to download these source code files and make whatever use of them they like. However building a useful system using this approach would be a daunting task

Distributors take on the task of acquiring, integrating, compiling, and packaging the various components required to establish a useful working system. Distributors also develop and provide tools to assist with installation and configuration of their environment.

Each distribution offers a different set of components and applications, and are often focused towards a specific set of requirements.

Red Hat Linux

Most readers will have heard of the Red Hat distribution. Red Hat is focused on enterprise server implementations, and is available only with a paid support program. It is the .safe. choice for large scale server implementations of an Open Source platform.

SuSe Linux

SuSe is one of the longest established distributions available. It is notable for it.s acquisition by Novell, who provides paid, professional support programs for the distribution. It is focused on providing an alternative to Windows for client workstations.

Fedora Linux

Fedora is a companion distribution to Red Hat, orientated towards desktop use. While Red Hat provides some assistance to the Fedora project, the distribution is maintained by developers independent of Red Hat, and no paid support is available for Fedora from Red Hat.

Debian Linux

Debian is notable as being the only distribution which is entirely community, i.e. volunteer, supported. It offers one of the largest sets of available applications, places a high priority on stability and reliability, and includes only components which are free of restrictions on use or distribution.

FreeBSD

The FreeBSD distribution is based on the BSD kernel, rather than the more familiar Linux kernel. It is often used as the basis for commercial products since, unlike the GPL (Gnu Public License) used for the Linux kernel, the BSD license does not require that source code be published when products using BSD licensed code are redistributed.

OpenBSD

The OpenBSD distribution.s focus is security and reliability, and is widely used as a platform for network servers requiring high security.


Opportunities

Until recently it was been fair to dismiss Open Source as a hobbyist novelty that had limited application in most IT organizations. However this situation has now changed; Open Source offers a compelling alternative as in many key applications.

Where it is a viable alternative, Open Source offers compelling advantages:

Web application servers

With a number of application frameworks (LAMP, Zope, Tomcat), content management systems (Bricolage), and the leading web server (Apache) being available, Open Source provides the premiere platform for the implementation of web applications of all kinds.

Network services and infrastructure

Much of the IT infrastructure of an organization, such as client configuration (DHCP), name resolution (DNS), file and print services, Virtual Private Networking (VPN), and mail services (SMTP, IMAP) can be provided using Open Source based tools. These solutions are often more reliable, and always more configurable, than proprietary offerings. In addition to these basic services, several large scale commercial databases (e.g. Oracle) can be hosted on Open Source platforms.

Limited function/thin clients

Open Source based clients are the ideal choice when kiosk or limited functionality workstations are required. By distributing the bare minimum of software to the client (e.g. stripped down Kernel, X windows) security is enhanced, and implementation and support costs are minimized.


Challenges

Availability of applications

The most significant issue limiting adoption of Open Source platforms by organizations remains the availability of applications.

Few commercial applications are available in native versions for Open Source platforms. Often there are Open Source alternatives available, but they generally lack in functionality, documentation, or support necessary to be viable in most organizations.

Hardware support

Many hardware vendors do not provide drivers, or provide low level hardware specifications so that community developers can develop drivers, for Open Source platforms. As a result one has to be careful when acquiring hardware to ensure the availability of drivers. Of particular issue are wireless network adapters, power management in laptops, and advanced graphic cards.


Conclusion

I hope you have found this overview a useful starting point for your investigation of Open Source systems. These platforms offer a compelling opportunity to provide solutions with an unprecedented degree of control over the systems lifecycle, and should now be included in the solutions evaluation process of most organizations.



Author notes:

Mark Olson, I.S.P., has been using Open Source software since 1995, and speaking and teaching on Open Source since 1999. He is a senior systems professional, and is currently a Supervisor within Information Services at The City of Calgary.

© 2006 Mark N. Olson