open source software, an overview and outlook

18
©2007 Learning Tree International. All rights reserved. Open Source Software An Overview and Outlook Author: Jean-Pierre Messager English Translation: TransPerfect Translations Technical Editor, English Version: Frank L. Schmidt, Jr. 1-800-843-8733 www.learningtree.ca

Upload: carl-sawatzky

Post on 14-Jun-2015

1.145 views

Category:

Technology


4 download

DESCRIPTION

Explore the world of “free software” with this comprehensive study. Included are sections on Architecture and Integration, the Linux Kernel, GNU/Linux Distributions, Development Environments, Free Software in a Network, the Workstation, and more.

TRANSCRIPT

Page 1: Open Source Software, An Overview And Outlook

©2007 Learning Tree International. All rights reserved.

Open Source Software An Overview and Outlook

Author: Jean-Pierre Messager

English Translation: TransPerfect Translations

Technical Editor, English Version: Frank L. Schmidt, Jr.

1-800-843-8733 www.learningtree.ca

Page 2: Open Source Software, An Overview And Outlook

C O N T E N T S

L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

11-800-843-8733 • www.learningtree.ca©2007 Learning Tree International. All rights reserved.

Open Source Software: An Overview and Outlook

1. Introduction

1.1 Definition of Free Software

The omnipresence of information technology has made the notion of software familiar to nearly everyone. Without really being able to define it, we are all in contact with this abstract concept on a daily basis. Software is what makes our personal computers useable, makes our tele-phones work, enables us to view and publish information on the Internet, to communicate with correspondents, to store and process information in businesses and governments, to listen to music or watch films, and the list goes on and on. Although you cannot use it with-out hardware, software is also independent to a certain extent, since it can function on different computers, be added, removed and copied, for example.

Information technology that is referred to as “proprietary” treats software like a product, the use of which is leased, most often—but not always—through a commercial exchange that limits the possible uses (often) and the possibility of reviewing, modifying and copying the software (always).

Free software is defined rather simply by the complete freedom that its authors offer to those who receive it. Simply imagine anything you could do to, or base on, a software program. That is the complete definition of what is meant by free software:

1. Freedom to use the software, regardless of the purpose, context or who you are.

2. Freedom to examine how the software works, down to the smallest detail. This implies that access to its source code (what its authors wrote) is granted, not just what enables it to run on a given system (its object code).

3. Freedom to modify the software (which also implies having access to its source code) and to use the improved, extended, integrated version in the functioning of another software program.

4. Freedom to redistribute a copy of the software in its original or modified form, as well as any soft-ware derived from it (contrary to a widespread myth, this is never an obligation). This freedom can be exercised by giving it away, making it available for downloading, integrating it into hardware, or by selling it.

1. Introduction . . . . . . . . . . . . . . . . . . . .11.1 Definition of Free Software . . . . . . . 1

1.2 Licenses. . . . . . . . . . . . . . . . . . . . . . 2

1.3 A Brief History Lesson . . . . . . . . . . . 3

2. Systems . . . . . . . . . . . . . . . . . . . . . . .42.1 Architecture and Integration . . . . . . . 4

2.2 The Linux Kernel: Characteristics and Future Developments . . . . . . . . . . . 5

2.3 GNU/Linux Distributions. . . . . . . . . 6

3. Development Environments . . . . . . . .93.1 GCC . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2 Scripting Languages. . . . . . . . . . . . . 9

3.3 Java and .NET . . . . . . . . . . . . . . . . . 9

4. Free Software in a Network . . . . . . .104.1 Infrastructure . . . . . . . . . . . . . . . . . 10

4.2 Web Services . . . . . . . . . . . . . . . . . 11

4.3 Other Internet Services . . . . . . . . . 12

5. The Workstation . . . . . . . . . . . . . . . .125.1 Graphical Environments . . . . . . . . 12

5.2 Office Software . . . . . . . . . . . . . . . 14

5.3 The Internet and Communication . . 15

5.4 Multimedia . . . . . . . . . . . . . . . . . . 15

6. Resources. . . . . . . . . . . . . . . . . . . . .16

About the Author . . . . . . . . . . . . . . . . .17

Page 3: Open Source Software, An Overview And Outlook

2Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

Some of the points in this definition may be surprising, such as the freedom of use, as many people believe this applies to all software. However, there are examples to the contrary, such as some kinds of freeware (a term often confused with “free software” where “free” is meant as in “free speech”) which, if free of charge, can be used only in an academic or scholastic context.

This is not considered to be free software. In fact, access to the source code for freeware is rarely granted. Access to a software program’s source code (which explains the term “open source software” which may be used in place of “free software,” emphasizing access to the source code instead of freedom) makes it possible to both examine the software and develop variations on it, which would make no sense, of course, if it were not explicitly permissible to use those variations.

One widespread myth concerns a redistribution obligation that allegedly applies to any variations devel-oped. In addition to the fact that this would not make any sense (at what stage of modification would one be obligated to redistribute it?), the simple right to privacy ensures the use of free software, whether or not it has been modified, without having to notify anyone.

We should, however, take a closer look at the last point of this definition. It is the driving force behind the development of free software, which promotes knowledge sharing and encourages cooperation among users and developers, whether or not they are programming specialists, without obligation. The motivation for participating in this knowledge exchange (since software is, first and foremost, information) is probably best explained by the fundamental principles of this movement:

• Philosophical motivations: People prefer to live in a world of communication rather than a world of secrets.

• Political motivations: Within the context of an institution, for example, the free use of software enables those governed to communicate with their government with full confidence.

• Commercial motivations: The software that is at the heart of a company’s business will be used more than if it were distributed with limitations, and will thus gain more value.

• Industrial motivations: Efforts and costs are shared by the parties involved, who improve the software and correct its errors and security flaws.

One last common misconception is that copies of free software cannot be distributed commercially. Actually, everyone, not only the original authors, is granted permission to distribute the software commercially. It is also completely acceptable for the original free software or a modified version to be sold.

1.2 Licenses

Without getting into too much legal detail, this funda-mental aspect of the freedom to redistribute copies of the software allows us to categorize free software, or rather the legal licenses that accompany them, into two major groups:

• Licenses that apply to all copies of the original or modified software

• Licenses that allow for the distribution of the original or modified software according to other terms (for example, not granting the freedoms cited above)

It is important to remember that the software licensing terms are freely determined by the people who hold the copyrights to them. Often forgotten, this means “the right to copy” and not necessarily a “restriction on copying” by the authors of the original software (developers, publishers, companies, or governments, etc.). The first type of license requires that any redis-tribution of the original or derived software must be carried out according to the same terms. In particular, it completely preserves the right to access the source code and grants the related freedoms that enabled the original software to be modified in the first place. The second type allows for the distribution of proprietary software (meaning software for which at least one of the freedoms listed above is not offered).

Although the details might seem complicated, it is important to note that a user is not directly concerned by any particular limitation, even if he uses a modified version of the software. Likewise, a distributor—such as a publisher or the manufacturer of equipment that includes the software, for example—who decides to preserve the terms of distribution of a derived soft- ware program (only mandatory for the first group of licenses) does not have to worry about any legal issues. This is, in fact, an extremely common situation.

Clearly, the first group of licenses offers greater guarantees of the continued existence of the software. It is less likely to be fragmented into variations with

Page 4: Open Source Software, An Overview And Outlook

3Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

functionalities that are difficult to reintegrate into a single software program and that might have become incompatible (“forks”). However, the second group of licenses offers an advantage when it comes to promoting compatibility with formats or exchange protocols. In this way, their use is promoted in completely proprietary software, therefore also promoting the interoperability between free and proprietary software, as well as among proprietary software programs. This is exactly how TCP/IP, the network protocol of the Internet, has grown.

The software we will examine here will have various types of licenses, mostly belonging to the first group, but there will also be many examples of software distributed through licenses in the second group. The typical representatives of these two groups are:

ü The GPL (GNU General Public License) which, using a conservative estimate, applies to 60% of what forms a “Linux system.”

ü The BSD (Berkeley Software Distribution) license, which applies to free UNIX BSDs, as well as many network utitilities.

One last note here on what is meant exactly by derived software: It must import a significant portion of the source code of a software program to be in this category. Simply juxtaposing free software with other software in distribution (e.g., archive, CD-ROM, DVD), or even installing them jointly, is not what is meant by “derived software,” so it is perfectly legitimate. There are very few limitations on distribution rights, compared to the usual practices of proprietary software. Also, in the event of a violation, there is no risk of criminal penalties for “piracy”—only a loss of distribution rights, subject to a resolution of the problem (by publishing the source code and the software according to the proper terms).

1.3 A Brief History Lesson

Free information technology has existed for as long as information technology has existed. The phenomenon only appears to be new, because the fantastic dissemi-nation of computers in businesses and homes has also brought about a sharp rise in proprietary software in the last two decades. In fact, this popularization of information technology tools has accelerated the development of free software since the end of the 1980s.

Until the end of the 1970s, information technology was dominated by large, very costly systems reserved for use by major organizations (such as banks, insurance companies and central governments), and these systems were completely incompatible with one another. In fact, software was often free for most of the terms we have mentioned, mainly because user requirements made it inconceivable for the supplier not to provide the source code for quality control and adaptation purposes. In addition, the redistribution of copies only really made sense for the supplier, who was very willing to redistribute it.

At the beginning of this same decade, at AT&T’s Bell Laboratories, Kenneth Thompson and Dennis Ritchie created, from scratch, the first UNIX operating system. It emphasized simplicity, modularity, and portability of both the system itself and its applications. (This is why Ritchie would develop, with Brian Kernighan, the programming language C). It turned out that, due to anti-trust legislation, AT&T did not have the right to pursue commercial activities in the field of information technology. Instead they used the UNIX system internally and pursued its development, freely allowing anyone who asked for it to obtain the UNIX software and its source code.

At the time, aside from a few major companies, the type of mini-computer (we were not yet talking about micro-computers) capable of running this system only existed at universities, where it spread rapidly for operational or scientific research needs, but especially for research and development on the operating systems themselves. For over a decade, the development of UNIX was distributed between AT&T and several universities, in particular the University of California, Berkeley. Later, AT&T’s UNIX became a commercial product, while Berkeley’s version continued to be dis-tributed freely.

In 1984, Richard Stallman was a computer scientist at the Massachusetts Institute of Technology (MIT). His ideas were encouraged by the kind of cooperation that enabled the development of UNIX, and by the growing irritation he felt encountering more and more software that he was unable to correct or improve, not for tech-nical but for legal reasons. He decided to launch the GNU project:

Page 5: Open Source Software, An Overview And Outlook

4Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

ü Its objective: To write a full system (operating system, tools and applications) that was free, in the sense that it offered all the freedoms listed above. He wanted these freedoms to be guaran-teed by a software distribution license (and not only by some nonspecific form of tolerance).

ü GNU is an acronym for “GNU’s Not UNIX,” a subtle way to affirm being a UNIX system even if unrelated to the heritage of legacy UNIX. It is pronounced somewhat like the word “new”.

ü UNIX was chosen as a model because it was well thought out, it was simple and modular, several of its components were already free, and it was well known to a broad community of programmers.

Shortly thereafter, Richard Stallman created the Free Software Foundation to promote and support this project and free software in general.

In 1991, the GNU system was complete, except for one noteworthy part: its heart, its “kernel.” (This is the part of a system that manages the hardware and distributes resources among applications.) The GNU system was also very popular as a working and developing environment on proprietary UNIX systems. A Finnish student, Linus Torvalds, devel-oped—at first as a hobby—a functional kernel with the contributions of several hundred developers who communicated over the Internet.

The combination of this kernel developed with GNU tools, and of the application environment of the GNU project, gave rise to the GNU system planned by Stallman. What everyone now calls “Linux” should more fairly be called “GNU/Linux.”

At the same time, over the next fifteen years, the development of the Internet would not only provide this system with new, important free software (such as Web servers, e-mail, communication, etc.), but also the infrastructure that allowed its users and developers to continue their work. In fact, it was no accident that the success of free software accompanied the popularization of the Internet in the university spheres, and then among companies, governments and individuals.

2. Systems

2.1 Architecture and Integration

As we have seen, “GNU/Linux” is a system largely based on UNIX architecture, the model for most operating systems (including Microsoft Windows), especially regarding its modularity.

What was not usual was the combination formed to create a complete software system from various autonomous origins: the Linux (or other!) kernel, GNU and other tools, graphics management (X11), desktop environments (Gnome, KDE), network servers, applications, and others. The strong standard-ization of programming interfaces in the UNIX world eliminated most concern about how the ensemble would function.

What remained to be done was a thorough integra-tion making it possible to deploy the system within a reasonable timeframe and provide the tools necessary to manage updates, administration and security over the long term. This is the burden of all operating systems, which are also often comprised of a large number of third-party components. The major difference here is that it was possible to have several contributors involved as integrators. These are the distribution publishers.

Architecture of a GNU/Linux system (and most UNIX systems)

Page 6: Open Source Software, An Overview And Outlook

5Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

Fragmentation and the resulting incompatibilities that might have been a concern never occurred, because the distributors worked using software from combined development efforts, (almost) always published all their specific tools, and their common interest was maximum interoperability. Some of these publishers were commercial companies; others were not.

A commercial company that offers a completely, free system is not required to provide images of its installation media, or even the binary code for the software it is distributing, as a free download. Strict compliance with the licenses only requires that the company provide the source code for the free software provided to customers, and that it must not claim to limit said customers’ rights. All significant distributions, even commercial distributions, take this even further by publicly offering a download of the source code for all their software and by licensing their specific tools into free software.Before we present an overview of these distributions, we are going to take a closer look at the basis of a GNU/Linux system: the Linux kernel. What is referred to as the user space consists of a large number of software applications that provide network services (e.g., Web, e-mail, remote access, etc.), as well as the working environment (both in console mode and in graphic mode) for a developer or a user. These topics will be addressed in the chapters below.

2.2 The Linux Kernel: Characteristics and Future Development

An operating system’s kernel is its base. First, it accesses the hardware (disks, network interfaces, peripherals) on behalf of the applications and utilities. Second, it distributes a certain number of resources (memory, CPU’s execution time) among the tasks, and among users. This special position implies that it manages the first steps of system startup, as well as data access control and security. It is therefore an essential component, even though it is generally small in size compared to all the software installed.

The Linux kernel is the unique result of the work of several thousand programmers over a period of about fifteen years. It is in its sixth generation (currently 2.6) since Version 1.0.

What hardware is supported?To access a given piece of hardware, an operating system must have drivers that are able to communicate with it. In the case of Microsoft Windows, these drivers are often written by the hardware manufacturer, or by Microsoft (who has information provided by the manufacturer), or through a collaboration between them. For free operating systems, and Linux in particular, there are some different scenarios:

• The manufacturer may publish the source code for a driver for Linux under a license permitting its inclusion into all distributions without any problems.

• The manufacturer may publish or provide the specifications of its hardware, upon request, thus allowing external developers to write a driver under a free license.

• The manufacturer may provide a binary driver, without its source code (it is therefore not free, even if it is available for download at no charge).

• The manufacturer may provide nothing at all and may refuse to reveal the specifications of its hardware.

The first two situations, which are by far the most common, result in the hardware being supported by the kernel without annoyance to the user. However, sometimes a lag occurs between the release of the hardware on the market and the release of a production driver.

The latter two scenarios are problematic. A non-free driver, even when offered at no charge, will certainly make the hardware function, but often on only a subset of the architectures supported by Linux (Intel 32-bit certainly, AMD 64-bit often, and others almost never). Even in this case, the user must accept the presence in the most critical part of the system (the kernel) of a “black box” that few developers have been able to examine and improve, and which can only be updated by a single entity.

In fact, it is notable that these drivers are often of a less-than-average quality and present real stability problems. Moreover, no third-party company can provide in-depth support with this type of unknown variable in the system. This concerns only a small percentage of hardware, even if it does include the 3D management of a few high-end consumer graph-ics cards. The last scenario (no information) generally leads to a complete lack of any driver. This can be the case for relatively low-end hardware, such as RTC software modems and WiFi USB controllers.

Page 7: Open Source Software, An Overview And Outlook

6Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

The philosophy of its designers (above all, Linus Torvalds) combines necessity with pragmatism. On one hand, the kernel must contain everything that structurally cannot be put elsewhere (drivers, memory management, multitasking), as well as certain functions that could be implanted in the user space (network protocols, firewall, file systems), most often for performance reasons. In the end, a compromise is struck between the meticulousness necessary to ensure a stable, maintainable system and efficiency.

From the very earliest versions, the characteristics of the Linux kernel have been those featured in modern operating systems:

ü Multiple platform (e.g., Intel 32- and 64-bit, PowerPC, SPARC, ARM, etc.)

ü Preemptive multitasking with dynamic priorities

ü Static priorities (soft real time)

ü Virtual memory management, including hard disk pagination

ü Support for many native file systems (e.g., ext3, XFS, JFS and others) or foreign file systems (e.g., FAT, NTFS, HFS, etc.)

ü TCP/IP, routing, IPSec, firewall, and quality of service (QoS) management

ü “Plug-and-play” support, peripheral hot plugging (USB, Firewire, PCI, etc.)

Besides the characteristics that made the Linux Kernel successful and are very similar to what other systems offer (UNIX or others), the Linux kernel has seen many innovations, many offering improved performance and flexibility. Most of these were the result of the availability of its source code, enabling many academic and industrial research teams to use it as a basis.

One very active field is virtualization, the objective of which is to make systems function as autonomously as possible on a single physical machine. This is how several instances of different operating systems (Linux, Microsoft Windows, etc.) can run simultaneously. One very well-known product that is not free is VMware, which, in its server version, is based on a mini Linux system. Similar free software does exist: QEmu and Virtual Box. Very recently, KVM (Kernel Virtual Machine) infrastructure was introduced into the kernel to take advantage of the extensions of the new Intel and AMD processors in this field.

A similar strategy is “paravirtualization,” which requires the modification of virtual machines hosted on systems’ kernels (an operation that is obviously |easy when the systems are free). The solution offered by Xen, based on a resource monitor above which several Linux systems can operate, is already being deployed in industrial settings. One last possibility is to extend the Linux kernel so that it has environ- ments partitioned to several groups of applications (“containers”). New developments spring up all the time!

One last field worth mentioning is real time, which is often critical in test or measurement information technology, where Linux can already be used in its traditional versions. However, when time constraints are very tight or very strict, it may be necessary to modify the system to take them into account at the lowest level. An initial idea, consisting of running the Linux kernel itself as a specific task of a real-time kernel (RTLinux, RTAI, Xenomai), has resulted in active developments for several years and has attracted the interest of the industrial sector. Another approach makes it possible to include real-time characteristics more easily in a traditional kernel, which also benefits more traditional uses of Linux (high server availability, acquisition, and multimedia transmission).

2.3 GNU/Linux Distributions

When installing a GNU/Linux system, the user or system administrator interfaces with a distribution, or finished product, available on a CD-ROM or a DVD, which includes the Linux kernel, the GNU environ-ment, and much more. The quality of a distribution depends not only on the quality of the software included, but also on:

ü A judicious selection of software programs offered and their versions

ü Intensive quality testing

ü The flexibility of the installation program

ü The simplicity and efficacy of the administration and configuration tools

ü The software maintenance tools: installation of supplementary software, updates, etc.

ü The possibility of applying critical patches without risk

ü Procedures for reporting problems

ü Relevant, updated documentation

Page 8: Open Source Software, An Overview And Outlook

7Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

Not all of these points are of equal importance. This depends on whether you are a system administrator, a developer familiar with Linux or UNIX, or a work- station user. In one decade, we have seen distributions and software evolve and improve to meet the needs of the first group, as well as those of the last group.

Among the most common distributions in the industry are Red Hat, Debian and SuSE. Others that are or were variations of the first two are also very common, such as Mandriva and Ubuntu. Without as-sessing their quality, less common distributions are of-ten specifically intended for members of a specialized audience or for specific uses (such as system repair or for installation on low-end machines), including Gen-too, Kubuntu, Xubuntu, and Slackware, among others.

Red Hat offers its distribution exclusively through graduated service contracts (from the workstation to the high-availability server), which does not prevent quasi-clones, like CentOS from appearing (since all the software comprising it is free). Fedora, a distribu-tion developed in cooperation with a large community, is available for download and is used as a test bench for Red Hat.

The situation is similar with SuSE, developed and distributed by Novell, which also offers the OpenSuSE distribution for download.

As for Debian, it is the result of work performed by volunteer developers working through a non- commercial organization. It has an excellent reputation among professionals. Debian has become the basis for most new Linux distributions, and word has spread outside of the traditional Linux world of networks and systems, such as Knoppix or Ubuntu.

One of the most interesting characteristics of most distributions is the presence of sophisticated software installation and update management tools. Experience has shown that GNU/Linux distributors have gone further than most proprietary systems to streamline the day-to-day and long-term management of installed software.

Whether with Red Hat/SuSE/Mandriva (RPM [Red Hat Package Manager] system) and especially with Debian and its derivatives, each file of the system and each application is installed through what is called a package, which includes a lot of information on the software (versions, dependencies, files, etc.), making it possible to validate and auto-matically resolve any problem involving interactions between components (presence of libraries/DLL and their versions, conflicts, version changes, etc.).

In practice, if a given software program must be installed, and if it is available in the form of a package on your distribution site (Debian offers more than fifteen thousand packages), all you have to do is type a single command or click on a single button to install it. If other software must be installed or updated to do this, it will be installed or updated automatically. This is also true, to a large extent, for entire system updates.

Page 9: Open Source Software, An Overview And Outlook

�Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

Other Free SystemsThe GNU-Linux combination is not the only free system. Arising from the historic UNIX of UC Berkeley, there are also three very reputable UNIX systems in the networking world (TCP/IP was created originally on BSD):

• FreeBSD, which is intended for the same general uses as GNU/Linux

• NetBSD, which emphasizes portability on several architectures

• OpenBSD, which emphasizes security

All the popular applications of Linux are available on these systems, both on the server end and for the workstation. Many tools that are considered to be key on GNU/Linux, like network utilities or the SSH secure remote access server, come from BSD, and Open BSD in particular.

Another UNIX system that used to be proprietary, Solaris by SUN Microsystems, has become free. Solaris 10 can thus be downloaded or obtained upon request for PC or SPARC architecture, and its source code is available. A plan known as Nexenta is in the works, to combine the OpenSolaris kernel and the GNU environment in the form of a variant of the Ubuntu distribution. Perhaps soon, alongside GNU/Linux, there will also be GNU/Solaris?

Automatic Software Installation with the Synaptic Tool Available for Debian and Ubuntu

Embedded ComputingWe talk about embedded computing as a computer system that is often designed for a precise use. This is a situation that is just as common for multimedia equipment as it is for a WiFi access point, an industrial process control system, or even a telephone or a PDA.

Free systems have numerous advantages in this context:

• Easy to adapt to new architecture (if it has not already been done)

• No royalties to pay to a third-party publisher

• Readily available development environment and applications

• Ability to modify them to give them a low memory imprint

• Real-time capabilities

In fact, GNU/Linux (and BSD) operate on many kinds of network, multimedia, tele- communications, and industrial process control equipment.

Page 10: Open Source Software, An Overview And Outlook

9Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

3. Development Environments

3.1 GCC

At first, developers of free software tried to create environments that would enable the creation of new software: systems—as we have seen—and before those, development tools.

The C programming language and its descendants were the initial focus of developers, since most operating systems (beginning with UNIX and Linux) and their utilities are written in C. The C compiler of the GNU project, known as the GNU C Compiler, quickly became the GNU Compiler Collection, since it was not long before it also handled additional languages, such as C++, Objective C, ADA, etc., and now also include the more recent Java.

GCC is essential for developing system applications or other applications on GNU/Linux or BSD, on other UNIX systems, and even on Microsoft Windows. It is one of the compilers that handles the most target architectures (many more than Intel and Intel-compatible processors) and different languages. It is easily portable and is well supported by its developers and by manufacturers for producing optimized code for the most recent variations of processors, such as 32- or 64-bit Intel or AMD processors.

GCC comes with a debugger (gdb), which is capable of interfacing with integrated development environments (such as Kdevelop and Anjuta) and several performance analysis tools to identify the critical parts of a program. The sophisticated XCode development environment (not free), provided by Apple with Mac OS X, is based on GCC.

3.2 Scripting Languages

Beyond the traditional UNIX scripting languages (Bourne Shell, C Shell, KornShell) for which free implementations exist which administrators of Linux, UNIX, and even Windows (with the free software cygwin or Microsoft SFU) systems use every day, more evolved languages are becoming very popular on all of these platforms. They are invaluable for system and network administration, of course, but

also for developing effective processing applications for data of various origins and formats, graphics tools, Web applications, and more.

Among the most popular are Perl, which is unbeatable for textual data processing, and Python, which is ideal for learning programming, has a very disciplined structure, and is adapted both to major projects and to small tools. The Ruby and PHP languages must also be mentioned.

All of these have libraries that enable them to interface easily with UNIX and Windows systems, networks, databases, directories, the Internet, and more. It is possible, using these languages, to quickly develop complex applications that function just as well on GNU/Linux, UNIX, Mac OS X and Microsoft Windows.

PHP Hypertext Processor stands out from this group. Originally designed for small Web applications, it is now in its fifth generation, is adapted for much larger-scale projects, and is also used to run forums for associations, company intranets, and even the Yahoo! portal.

3.3 Java and .NET

Java, designed by SUN Microsystems, and .NET, designed by Microsoft, are highly integrated, very rich development infrastructures, based on virtual machines running above the operating system. They offer complete project management environments.

The long-awaited headline event of 2007 was the complete release as free software by SUN of the source code of its Java virtual machine. The Java world was familiar with free software for a long time, through thousands of free libraries and applications, and free development environments such as Eclipse by IBM. Until recently, though, the heart of Java, its top-notch virtual machine, was still not free; it was only usable at no charge. SUN’s entire Java develop-ment and deployment environment is now free.

The effects of this change will likely be minor at first. At least Java will be much more easily integrated into GNU/Linux and BSD distributions. Eventually, we can expect to see better Java support in GCC, a

Page 11: Open Source Software, An Overview And Outlook

10Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

convergence of various competing free virtual machines, improved support for embedded computing in Java, and better performance in general.

.NET, besides being a (not free) product of Microsoft, is the specification of an architecture, a set of standardized programming interfaces, and a family of languages, including C#, which is close to the Java philosophy.

The Mono project implements this standardized architecture and strives for complete compatibility with the reference version from Microsoft. Today, Mono is compliant with .NET 2.0 specifications, except for a few partially implemented elements, such as Windows.Forms (planned for the end of 2007). Work on the transition to Version 3.0 of .NET is already underway. A compiler that is completely compatible with Visual Basic.NET was recently announced.

4. Free Software in a Network

4.1 Infrastructure

TCP/IP was developed and became widespread because its communication protocols were public, their design was the result of general collaboration, and the software that implemented it was published under free licenses. This is why we saw all systems, free or not free, adopt it, and the Internet, as well as intranets, become widespread all over the planet.

Software that runs a TCP/IP network is completely integrated into the free GNU/Linux and BSD operating systems. It is a place where, for the past decade, free software has had no trouble establishing itself as a reliable, inexpensive and effective solution.

Linux and BSD have advanced features in terms of access control and security:

ü Routing, filtering, and network traffic monitoring: firewall, fault analysis and reporting

ü Security gateways: IPSec and other virtual private network protocols

As for applications on which the proper functioning of even a heterogeneous network relies, we can list free software programs that are often considered to be the best in their respective categories:

ü The domain name server BIND

ü The DHCP server from the ISC

ü Several LDAP directory servers, among them OpenLDAP

ü NFS Version 3 or 4 for file sharing between UNIX systems

ü CUPS for printing services

These software programs make it easy to deploy a homogenous network of UNIX or Linux systems. Microsoft Windows systems use different protocols. The Samba software suite speaks these protocols, with performance levels that are sometimes superior to those reached by Windows. It is thus possible for a Linux system to be:

ü NetBIOS authentication server or client

ü NetBIOS domain controller

ü Active Directory authentication client

ü File sharing server or client

ü Printing service server or client

A .NET application running with Mono on GNU/Linux

Page 12: Open Source Software, An Overview And Outlook

11Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

In short, Samba can do everything Windows can do in a network in a transparent manner. It is still missing one important functionality: the ability to replace an Active Directory domain controller. This is already possible on an experimental basis with the Samba development version, which should be officially validated as stable in 2007.

4.2 Web Services

According to statistics from Netcraft, Apache is the most widely used Web server on the Internet (nearly 60%). It is the result of the development of one of the first Web servers, NCSA HTTP Server. This explains where the name “Apache” comes from: Over ten years ago, it was a simple set of patches on top of a NSCA server, transforming it into a “patchy server”, which eventually became the “Apache Web Server.”

Since then, the Apache Foundation has been established that directs the development of this strategic software for all Internet users, as well as for other projects, such as the Tomcat Java application server. At the heart of Web infra- structure, Apache continues to evolve. It is now in its third generation (2.2 after 1.3 and 2.0) and is still compatible with multiple platforms (UNIX, Linux and Windows).

Naturally, it implements all the functionalities necessary to provide Web services both on the Internet and in intranets, including:

ü Virtual hosting of numerous Web sites on a single server

ü Running CGI programs

ü Embedded scripting languages such as PHP, Perl, Python, etc.

ü Server authentication and data encryption (SSL)

ü User authentication (flat files, DBM bases, LDAP)

ü Proxy and URL rewriting

Web applications, among others, often rely on a relational database with which they communicate using the SQL language. The most widespread database server, particularly for the Web, is MySQL. Designed to improve raw performance at the expense of certain functionalities, MySQL is starting to position itself as the best alternative to proprietary RDBMS (Relational Database Management System) by offering advanced functionalities such as stored procedures or clustering.

Another free RDBMS, PostgreSQL, aims to satisfy the most demanding users and developers by offering these functionalities since its first versions (it is in its eighth generation) while covering most of the SQL 92 standard.

A heterogenous network with GNU/Linux and Microsoft Windows

Apache Architecture

Page 13: Open Source Software, An Overview And Outlook

12Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

4.3 Other Internet Services

A multitude of free server software programs covers all Internet protocols. They are often, as for the Web, the top products in terms of compliance with standards, performance, security and reliability.

E-mail, for example, was created with the free software sendmail, which remains a common component in many UNIX systems. The relative complexity of its configuration made mail servers that were more easily administrated, such as Exim and Postfix, very popular.

All of these servers use smart filters against unsolicited e-mail, like SpamAssassin, or against viruses (which mainly pertain to systems that are not free but that it is good to detect downstream) such as Clamav.

To conclude, the following are a few of the top free products for some services, among many others:

ü Proftpd and vsftpd for FTP file transfer

ü Jabber for instant messaging

ü VNC for multiplatform GUI remote access

ü SQUID as an HTTP and FTP proxy (cache, filtering and authentication)

5. The Workstation

5.1 Graphical Environments

The software architecture of the graphical interface for all current UNIX systems, whether free or not, is similar. The display and the input devices (keyboard, mouse, tablet, etc.) are managed by a display server (known as an “X11 server”) on which are displayed a number of clients that are the components of the graphical desk-top as well as the applications themselves.

This makes it possible to directly display graphical applications running on various machines (possibly from different systems) on a single desktop. Thus, a workstation (applications and display on the same machine) can be installed just as easily as a thin client giving access to applications running on applications servers where most, if not all, software is installed. It is also easy to display the desktop of a Linux or BSD system on a Windows machine, since the most wide-spread free implementation of X11 (X.org) has been ported to Microsft Windows (Xming or cygwin).

What will determine the look and feel of a graphical desktop will be a set of applications such as the window manager (which draws the borders and man-ages their movement), the file manager, and various panels (also known as the “taskbars”). The most popular desktop environments are Gnome (GNU Object Model Environment) and KDE (Kool Desktop Environment). All GNU/Linux distributions offer both. Most of them, however, have chosen Gnome as the default environment. In fact, nothing prevents you from having applications from both environments cohabitating on a single desktop, due to the presence of the X11 server. The developers of both projects also work together to ensure that their software is compatible.

The level of ergonomics reached by these two environments is comparable to those of top proprietary systems in the field (Apple Mac OS X and Microsoft Windows). Over the past few years, new ideas have been conceived in the world of graphical interfaces that take advantage of the power of recent hardware. In this field, free systems are not lagging behind. On the contrary:

Page 14: Open Source Software, An Overview And Outlook

13Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

ü Novell and Red Hat proposed two parallel technolo-gies to improve ergonomics with various effects: XGL and AIGLX. These two technologies are com-patible; they differ mainly in their communication with graphics drivers.

ü Various research teams, including the one working on the Metisse project at INRIA [French National Institute for Research in Computer Science and Control], used Linux and X11 to imagine new ways to organize the applications’ “widgets.”

Mandriva integrated Metisse into its 2007 version. XGL and AIGLX technologies are quickly becoming stable enough to be offered as the default on certain distributions such as SuSE or Ubuntu. XGL and AIGLX, in cooperation with a particular window manager or

composition manager, such as Compiz or Beryl, offer the following, among other effects:

ü A virtual desktop system that is distributed over the surfaces of a cube;

ü A mechanism for quickly scaling windows so that they can all be seen at the same time (similar to the exposé feature on Mac OS X);

ü Transparency management.

Everything functions without any problems on machines that are not cutting edge, with low-end graphics cards and low-powered processors.

The rapid development around these technolo- gies, and the general enthusiasm that they incite, lead us to believe that we have not seen everything yet...

A 3D vision of desktops and windows on AIGLX

Page 15: Open Source Software, An Overview And Outlook

14Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

5.2 Office Software

OpenOffice.Org is certainly the most well-known free office suite, which functions just as well on Windows, Mac OS X, UNIX or Linux. In its Version 2, it is largely comparable to Microsoft Office, exchanges documents rather well with Microsoft Office, and is even more advanced in certain other aspects, such as the default use of an open, standardized data format based on XML.

Although there remain some partial incompatibilities with respect to Microsoft Office data formats, things are developing in the right direction:

ü Microsoft and Novell are working together to improve the interoperability of the two suites (they still have to clarify their positions regarding a few patents).

ü The Open Document format of OpenOffice is an ISO standard and is starting to be required in the

specifications of major calls for proposals in the industry. Proprietary office suites may no longer be able to afford to leave it out.

ü MS Office 2003 uses OpenXML, a data format based on XML, as its default which Microsoft wants to standardize.

Among developments we should expect in OpenOffice, in addition to the further improvement of interoperability with proprietary formats, is the integration of a multilingual grammar check. Currently, only the spell check is multilingual.

OpenOffice is not the only free office suite. KDE and Gnome have been working for a long time and are now offering stable products which, although less complete than OpenOffice, are lighter: KOffice for KDE and the pair Abiword+Gnumeric for Gnome.

OpenOffice.Org and Abiword on a Gnome desktop

Page 16: Open Source Software, An Overview And Outlook

15Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

5.3 The Internet and Communication

If a free software program can be said to have made fantastic progress, it is the Mozilla Firefox Web browser. In just two years, it has become the browser of approximately 20% of users, and is even more popular in continental Europe. These percentages reflect mostly Windows users. For Linux users, the number is certainly closer to 80%. The broad success of Firefox, regardless of the system used, is easy to explain:

ü Ease of browsing with tabs

ü High level of security

ü Compliance with the WWW Consortium’s (W3C) HTML standards

ü Many extremely useful extensions (advertisement and flash blocker, privacy protection, etc.)

The future of the Internet seems to be headed toward applications with rich interfaces (AJAX). Firefox has a strong advantage in this respect with its XUL infra-structure (pronounced “zool”), which makes it easier to build Web pages with developed graphical elements (WYSIWYG tables and fields, among others).

In application suites from the Mozilla series, we must also mention the e-mail client Thunderbird, which also runs on multiple platforms and is a serious competitor of its proprietary alternatives. This appeals to the general public, like Firefox, and for similar reasons.

Another e-mail client worth taking a look at is Evolution. Now developed mainly under the direction of Novell, it allows Linux and UNIX users, in addition to reading and writing e-mail, to manage a daily planner and address book, both individually and collaborating within a group.

In the field of group work, multiple-platform solutions exist, but the main pitfall remains compat- ibility with Microsoft Exchange or with Microsoft Outlook. OpenExchange and OpenGroupware server software, as well as special connectors for client tools, may eventually make it possible to achieve better interoperability and, therefore, smoother transitions.

5.4 Multimedia

Let us begin by debunking a myth, which is certainly a relic from a bygone era: It is possible, without any problem, to save your CDs in MP3 format (or even better, Ogg Vorbis) and listen to them, synchronize your portable player, watch a DVD and DivX, and even design your own using your vacation videos, on GNU/Linux.

There are many software programs that can be used for this, and some of them are just as well known on proprietary systems. We will list just a few:

ü gthumb and The GIMP for managing photos and images (equivalent of Adobe Photoshop)

ü XMMS, Audacious or RhythmBox for managing and listening to music

ü GRIP or Sound Juicer for saving CD audio

ü MPlayer, VLC, Gstreamer or Xine for watching films

ü Kino and Avidemux for importing, manipulating and creating your own films

ü Ekiga for using telephony and video conferencing over the Internet

As for video games, we cannot compare Linux to the most well-known platforms, even if Linux could be installed on XBox or PlayStation; however:

ü Free games of all types exist, as does free educational software

ü A few major game titles for “PC” are available for Linux (such as Quake and Doom)

ü The more seasoned gamer may be happy to run free versions of Quake, the excellent (and free) flight simulator Flight Gear, and most of the major game titles for “PC” through the (non-)emulator Wine.

However, music and movie lovers may be disappointed at first when they install a distribution of GNU/Linux. It is likely that they won’t immediately be able to hear MP3s, or read DVDs or other kinds of video. Strangely enough, this type of “out-of-the-box” Linux system has no problem playing the less popular, high-quality Ogg and Theora audio and video formats.

Page 17: Open Source Software, An Overview And Outlook

16Open Source Software: An Overview and Outlook ©2007 Learning Tree International. All rights reserved.

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

What is the difference? Well, it is purely legal… and does not directly concern the inhabitants of all countries. Many multimedia formats are protected by software patents, a notion that is foreign to people in Europe, but that prevents GNU/Linux distributors from offering us the libraries that make it possible to read them on their installation medium. On the other hand, it is completely legal to add these libraries later, just as easily as any other software, over the Internet.

What is even more disturbing is that some formats are protected by encryption against copying (digital rights management or DRM), which has the perverse effect of making it impossible for software for which the source code is public, to read them. In the most extreme versions, these processes tend to make it impossible to read anything as soon as non- locked software or hardware is present. As for DVDs, protections have been bypassed for a long time by teenagers, but installing a library that allows it is not legal everywhere (it is in Europe), so again it must be installed over the Internet.

The time it takes to download these few files provides a good opportunity to think about the implications of these systems (which, after multimedia, are starting to be used for office applications) designed to make it difficult, or even impossible, to enjoy one’s own data and to give an external organization more power over computer systems than their owners have.

For the same uses, for each of these inconvenient formats, there is always a documented, open, non-patented format that is managed by free software.

6. Resources

Linux and Open Source News Sites

Linux Weekly News: www.lwn.net/articles

Slashdot: www.slashdot.org

Free Software Directories and Repositories

Freshmeat: www.freshmeat.net

SourceForge: www.sourceforge.net

Savannah GNU software repository: savannah.gnu.org

Free Software Fundation

www.fsf.org

www.fsfeurope.org

Embedded Systems and Real-Time Computing

Linux Devices: www.linuxdevices.com

Perspectives on Free and Open Source Software

http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=11216

Open Sources: Voices from the Open Source Revolution

Dircted by Chris DiBonahttp://www.oreilly.com/catalog/opensources/ book/toc.html

GNU/Linux Distribution Sites

www.redhat.com

www.debian.org

www.ubuntu.com

www.opensuse.org

www.mandriva.com

www.gnusolaris.org (Nexenta)

www.openbsd.org

www.freebsd.org

www.netbsd.org

Page 18: Open Source Software, An Overview And Outlook

17©2007 Learning Tree International. All rights reserved.WP Open Source 0706Final CN

1-800-843-8733 • www.learningtree.ca L E A R N I N G T R E E I N T E R N A T I O N A L White Paper

Open Source Software: An Overview and Outlook

About Learning Tree International

Learning Tree International is a leading worldwide

provider of vendor-independent training to managers

and IT professionals in business and government

organizations. Since 1974, over 1,700,000 course

participants from over 13,000 organizations worldwide

have enhanced their skills and extended their knowledge

under the guidance of expert instructors with real-

world experience. Learning Tree develops, markets and

delivers a broad, proprietary library of instructor-led

courses focused on the latest information technologies,

management practices and key business skills.

Learning Tree International annually trains over

87,000 professionals in its Education Centers around

the world. Learning Tree also provides training in a

number of additional cities and on site at customer

locations in 26 countries. For more information

about Learning Tree products and services, call 1-800-THE-TREE (1-800-843-8733), or visit our

Web site at www.learningtree.ca

About the Author

Jean-Pierre MessagerIndependent Consultant on Open SourceTechnology

[email protected]

A former mathematics and computer science

teacher and researcher, and then an engineer

for an open source software service company,

Jean-Pierre Messager is an independent

consulting engineer on free information

technology (network, security and computing)

and is a Learning Tree course author and

instructor on the topics of UNIX, Linux and

Free Software, as well as Web Development.

About the Editor

Frank L. Schmidt, [email protected]

Frank Schmidt has worked as a system

administrator in UNIX for over 20 years, and

in Linux for over 10 years. He is an independent

computer consultant who has worked for

Learning Tree International as an instructor,

course author, and technical editor.

Atlanta Los Angeles Boston

Washington, DC

Chicago

Toronto LondonNew York City

StockholmOttawa TokyoParis