• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Open Source Software, An Overview And Outlook
 

Open Source Software, An Overview And Outlook

on

  • 1,672 views

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 ...

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.

Statistics

Views

Total Views
1,672
Views on SlideShare
1,670
Embed Views
2

Actions

Likes
0
Downloads
47
Comments
0

1 Embed 2

http://www.squidoo.com 2

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Open Source Software, An Overview And Outlook Open Source Software, An Overview And Outlook Document Transcript

    • 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 ©2007 Learning Tree International. All rights reserved.
    • LEARNING TREE INTERNATIONAL White Paper C O N T E N T S 1. Introduction . . . . . . . . . . . . . . . . . . . .1 1. Introduction 1.1 Definition of Free Software . . . . . . . 1 1.1 Definition of Free Software 1.2 Licenses. . . . . . . . . . . . . . . . . . . . . . 2 The omnipresence of information technology has made 1.3 A Brief History Lesson . . . . . . . . . . . 3 the notion of software familiar to nearly everyone. Without really being able to define it, we are all in contact with 2. Systems . . . . . . . . . . . . . . . . . . . . . . .4 this abstract concept on a daily basis. Software is what 2.1 Architecture and Integration. . . . . . . 4 makes our personal computers useable, makes our tele- 2.2 The Linux Kernel: Characteristics phones work, enables us to view and publish information and Future Developments . . . . . . . . . . . 5 on the Internet, to communicate with correspondents, 2.3 GNU/Linux Distributions . . . . . . . . . 6 to store and process information in businesses and governments, to listen to music or watch films, and the 3. Development Environments . . . . . . . .9 list goes on and on. Although you cannot use it with- 3.1 GCC . . . . . . . . . . . . . . . . . . . . . . . . 9 out hardware, software is also independent to a certain extent, since it can function on different computers, be 3.2 Scripting Languages . . . . . . . . . . . . . 9 added, removed and copied, for example. 3.3 Java and .NET . . . . . . . . . . . . . . . . . 9 Information technology that is referred to as “proprietary” 4. Free Software in a Network . . . . . . .10 treats software like a product, the use of which is leased, 4.1 Infrastructure . . . . . . . . . . . . . . . . . 10 most often—but not always—through a commercial exchange that limits the possible uses (often) and the 4.2 Web Services . . . . . . . . . . . . . . . . . 11 possibility of reviewing, modifying and copying the 4.3 Other Internet Services . . . . . . . . . 12 software (always). 5. The Workstation . . . . . . . . . . . . . . . .12 Free software is defined rather simply by the complete 5.1 Graphical Environments . . . . . . . . 12 freedom that its authors offer to those who receive it. Simply imagine anything you could do to, or base on, a 5.2 Office Software . . . . . . . . . . . . . . . 14 software program. That is the complete definition of 5.3 The Internet and Communication . . 15 what is meant by free software: 5.4 Multimedia . . . . . . . . . . . . . . . . . . 15 1. Freedom to use the software, regardless of the 6. Resources. . . . . . . . . . . . . . . . . . . . .16 purpose, context or who you are. 2. Freedom to examine how the software works, About the Author . . . . . . . . . . . . . . . . .17 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-800-843-8733 • www.learningtree.ca Open Source Software: An Overview and Outlook 1 ©2007 Learning Tree International. All rights reserved.
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper Some of the points in this definition may be surprising, One last common misconception is that copies of free such as the freedom of use, as many people believe this software cannot be distributed commercially. Actually, applies to all software. However, there are examples to everyone, not only the original authors, is granted the contrary, such as some kinds of freeware (a term permission to distribute the software commercially. often confused with “free software” where “free” is It is also completely acceptable for the original free meant as in “free speech”) which, if free of charge, can software or a modified version to be sold. be used only in an academic or scholastic context. 1.2 Licenses This is not considered to be free software. In fact, access Without getting into too much legal detail, this funda- to the source code for freeware is rarely granted. Access mental aspect of the freedom to redistribute copies of to a software program’s source code (which explains the software allows us to categorize free software, or the term “open source software” which may be used rather the legal licenses that accompany them, into in place of “free software,” emphasizing access to the two major groups: source code instead of freedom) makes it possible to both examine the software and develop variations on • Licenses that apply to all copies of the original it, which would make no sense, of course, if it were not or modified software explicitly permissible to use those variations. • Licenses that allow for the distribution of the One widespread myth concerns a redistribution original or modified software according to other obligation that allegedly applies to any variations devel- terms (for example, not granting the freedoms oped. In addition to the fact that this would not make cited above) any sense (at what stage of modification would one be It is important to remember that the software licensing obligated to redistribute it?), the simple right to privacy terms are freely determined by the people who hold ensures the use of free software, whether or not it has the copyrights to them. Often forgotten, this means been modified, without having to notify anyone. “the right to copy” and not necessarily a “restriction We should, however, take a closer look at the last on copying” by the authors of the original software point of this definition. It is the driving force behind (developers, publishers, companies, or governments, the development of free software, which promotes etc.). The first type of license requires that any redis- knowledge sharing and encourages cooperation tribution of the original or derived software must be among users and developers, whether or not they carried out according to the same terms. In particular, are programming specialists, without obligation. it completely preserves the right to access the source The motivation for participating in this knowledge code and grants the related freedoms that enabled the exchange (since software is, first and foremost, original software to be modified in the first place. The information) is probably best explained by the second type allows for the distribution of proprietary fundamental principles of this movement: software (meaning software for which at least one of the freedoms listed above is not offered). • Philosophical motivations: People prefer to live in a world of communication rather than Although the details might seem complicated, it is a world of secrets. important to note that a user is not directly concerned • Political motivations: Within the context of an by any particular limitation, even if he uses a modified institution, for example, the free use of software version of the software. Likewise, a distributor—such enables those governed to communicate with as a publisher or the manufacturer of equipment that their government with full confidence. includes the software, for example—who decides to • Commercial motivations: The software that is preserve the terms of distribution of a derived soft- at the heart of a company’s business will be used ware program (only mandatory for the first group of more than if it were distributed with limitations, licenses) does not have to worry about any legal issues. and will thus gain more value. This is, in fact, an extremely common situation. • Industrial motivations: Efforts and costs are Clearly, the first group of licenses offers greater shared by the parties involved, who improve the guarantees of the continued existence of the software. software and correct its errors and security flaws. It is less likely to be fragmented into variations with ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 2
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper functionalities that are difficult to reintegrate into a Until the end of the 1970s, information technology single software program and that might have become was dominated by large, very costly systems reserved incompatible (“forks”). However, the second group for use by major organizations (such as banks, of licenses offers an advantage when it comes to insurance companies and central governments), and promoting compatibility with formats or exchange these systems were completely incompatible with one protocols. In this way, their use is promoted in another. In fact, software was often free for most of completely proprietary software, therefore also the terms we have mentioned, mainly because user promoting the interoperability between free and requirements made it inconceivable for the supplier proprietary software, as well as among proprietary not to provide the source code for quality control and software programs. This is exactly how TCP/IP, the adaptation purposes. In addition, the redistribution network protocol of the Internet, has grown. of copies only really made sense for the supplier, who The software we will examine here will have various was very willing to redistribute it. types of licenses, mostly belonging to the first group, At the beginning of this same decade, at AT&T’s Bell but there will also be many examples of software Laboratories, Kenneth Thompson and Dennis distributed through licenses in the second group. The Ritchie created, from scratch, the first UNIX operating typical representatives of these two groups are: system. It emphasized simplicity, modularity, ü The GPL (GNU General Public License) which, and portability of both the system itself and its using a conservative estimate, applies to 60% of applications. (This is why Ritchie would develop, with what forms a “Linux system.” Brian Kernighan, the programming language C). It turned out that, due to anti-trust legislation, AT&T ü The BSD (Berkeley Software Distribution) license, did not have the right to pursue commercial activities which applies to free UNIX BSDs, as well as many in the field of information technology. Instead they network utitilities. used the UNIX system internally and pursued its One last note here on what is meant exactly by derived development, freely allowing anyone who asked for it software: It must import a significant portion of the to obtain the UNIX software and its source code. source code of a software program to be in this category. Simply juxtaposing free software with other software At the time, aside from a few major companies, the in distribution (e.g., archive, CD-ROM, DVD), or even type of mini-computer (we were not yet talking about installing them jointly, is not what is meant by “derived micro-computers) capable of running this system software,” so it is perfectly legitimate. There are very only existed at universities, where it spread rapidly for few limitations on distribution rights, compared to the operational or scientific research needs, but especially usual practices of proprietary software. Also, in the event for research and development on the operating systems of a violation, there is no risk of criminal penalties for themselves. For over a decade, the development of “piracy”—only a loss of distribution rights, subject to a UNIX was distributed between AT&T and several resolution of the problem (by publishing the source universities, in particular the University of California, code and the software according to the proper terms). Berkeley. Later, AT&T’s UNIX became a commercial product, while Berkeley’s version continued to be dis- 1.3 A Brief History Lesson tributed freely. Free information technology has existed for as long as In 1984, Richard Stallman was a computer scientist information technology has existed. The phenomenon at the Massachusetts Institute of Technology (MIT). His only appears to be new, because the fantastic dissemi- ideas were encouraged by the kind of cooperation that nation of computers in businesses and homes has also enabled the development of UNIX, and by the growing brought about a sharp rise in proprietary software in irritation he felt encountering more and more software the last two decades. In fact, this popularization of that he was unable to correct or improve, not for tech- information technology tools has accelerated the nical but for legal reasons. He decided to launch the development of free software since the end of the 1980s. GNU project: ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 3
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper ü Its objective: To write a full system (operating 2. Systems system, tools and applications) that was free, in the sense that it offered all the freedoms listed 2.1 Architecture and Integration above. He wanted these freedoms to be guaran- As we have seen, “GNU/Linux” is a system largely teed by a software distribution license (and not based on UNIX architecture, the model for most only by some nonspecific form of tolerance). operating systems (including Microsoft Windows), ü GNU is an acronym for “GNU’s Not UNIX,” especially regarding its modularity. a subtle way to affirm being a UNIX system even What was not usual was the combination formed if unrelated to the heritage of legacy UNIX. It is to create a complete software system from various pronounced somewhat like the word “new”. autonomous origins: the Linux (or other!) kernel, ü UNIX was chosen as a model because it was GNU and other tools, graphics management (X11), well thought out, it was simple and modular, desktop environments (Gnome, KDE), network several of its components were already free, and servers, applications, and others. The strong standard- it was well known to a broad community of ization of programming interfaces in the UNIX world programmers. eliminated most concern about how the ensemble would function. 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 Architecture of a GNU/Linux system project, gave rise to the GNU system planned by (and most UNIX systems) Stallman. What everyone now calls “Linux” should more fairly be called “GNU/Linux.” What remained to be done was a thorough integra- At the same time, over the next fifteen years, the tion making it possible to deploy the system within a development of the Internet would not only provide reasonable timeframe and provide the tools necessary this system with new, important free software to manage updates, administration and security over the (such as Web servers, e-mail, communication, etc.), long term. This is the burden of all operating systems, but also the infrastructure that allowed its users which are also often comprised of a large number of and developers to continue their work. In fact, it third-party components. The major difference here is was no accident that the success of free software that it was possible to have several contributors accompanied the popularization of the Internet involved as integrators. These are the distribution in the university spheres, and then among publishers. companies, governments and individuals. ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 4
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper Fragmentation and the resulting incompatibilities that might have been a concern never occurred, What hardware is supported? because the distributors worked using software To access a given piece of hardware, an operating from combined development efforts, (almost) system must have drivers that are able to communicate always published all their specific tools, and their with it. In the case of Microsoft Windows, these drivers common interest was maximum interoperability. are often written by the hardware manufacturer, or Some of these publishers were commercial by Microsoft (who has information provided by the companies; others were not. manufacturer), or through a collaboration between them. For free operating systems, and Linux in A commercial company that offers a completely, particular, there are some different scenarios: free system is not required to provide images of its installation media, or even the binary code for the • The manufacturer may publish the source code for a driver for Linux under a license permitting its software it is distributing, as a free download. Strict inclusion into all distributions without any problems. compliance with the licenses only requires that • The manufacturer may publish or provide the the company provide the source code for the free specifications of its hardware, upon request, thus software provided to customers, and that it must not allowing external developers to write a driver claim to limit said customers’ rights. All significant under a free license. distributions, even commercial distributions, take • The manufacturer may provide a binary driver, this even further by publicly offering a download without its source code (it is therefore not free, of the source code for all their software and by even if it is available for download at no charge). licensing their specific tools into free software. • The manufacturer may provide nothing at all Before we present an overview of these distributions, and may refuse to reveal the specifications of we are going to take a closer look at the basis of its hardware. a GNU/Linux system: the Linux kernel. What is The first two situations, which are by far the most referred to as the user space consists of a large common, result in the hardware being supported by number of software applications that provide the kernel without annoyance to the user. However, network services (e.g., Web, e-mail, remote access, sometimes a lag occurs between the release of the etc.), as well as the working environment (both in hardware on the market and the release of a production console mode and in graphic mode) for a developer driver. or a user. These topics will be addressed in the The latter two scenarios are problematic. A non-free chapters below. driver, even when offered at no charge, will certainly make the hardware function, but often on only a 2.2 The Linux Kernel: Characteristics subset of the architectures supported by Linux (Intel and Future Development 32-bit certainly, AMD 64-bit often, and others almost An operating system’s kernel is its base. First, it never). Even in this case, the user must accept the accesses the hardware (disks, network interfaces, presence in the most critical part of the system (the peripherals) on behalf of the applications and kernel) of a “black box” that few developers have been utilities. Second, it distributes a certain number of able to examine and improve, and which can only be resources (memory, CPU’s execution time) among updated by a single entity. the tasks, and among users. This special position In fact, it is notable that these drivers are often of a implies that it manages the first steps of system less-than-average quality and present real stability startup, as well as data access control and security. problems. Moreover, no third-party company can It is therefore an essential component, even though provide in-depth support with this type of unknown it is generally small in size compared to all the variable in the system. This concerns only a small software installed. percentage of hardware, even if it does include the 3D management of a few high-end consumer graph- The Linux kernel is the unique result of the work ics cards. The last scenario (no information) generally of several thousand programmers over a period leads to a complete lack of any driver. This can be of about fifteen years. It is in its sixth generation the case for relatively low-end hardware, such as RTC (currently 2.6) since Version 1.0. software modems and WiFi USB controllers. ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 5
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper The philosophy of its designers (above all, Linus A similar strategy is “paravirtualization,” which Torvalds) combines necessity with pragmatism. requires the modification of virtual machines hosted On one hand, the kernel must contain everything on systems’ kernels (an operation that is obviously that structurally cannot be put elsewhere (drivers, |easy when the systems are free). The solution offered memory management, multitasking), as well as by Xen, based on a resource monitor above which certain functions that could be implanted in the several Linux systems can operate, is already being user space (network protocols, firewall, file systems), deployed in industrial settings. One last possibility is most often for performance reasons. In the end, a to extend the Linux kernel so that it has environ- compromise is struck between the meticulousness ments partitioned to several groups of applications necessary to ensure a stable, maintainable system (“containers”). New developments spring up all and efficiency. the time! From the very earliest versions, the characteristics One last field worth mentioning is real time, which of the Linux kernel have been those featured in is often critical in test or measurement information modern operating systems: technology, where Linux can already be used in its ü Multiple platform (e.g., Intel 32- and 64-bit, traditional versions. However, when time constraints PowerPC, SPARC, ARM, etc.) are very tight or very strict, it may be necessary to ü Preemptive multitasking with dynamic priorities modify the system to take them into account at the lowest level. An initial idea, consisting of running the ü Static priorities (soft real time) Linux kernel itself as a specific task of a real-time ü Virtual memory management, including hard kernel (RTLinux, RTAI, Xenomai), has resulted in disk pagination active developments for several years and has attracted ü Support for many native file systems (e.g., ext3, the interest of the industrial sector. Another approach XFS, JFS and others) or foreign file systems makes it possible to include real-time characteristics (e.g., FAT, NTFS, HFS, etc.) more easily in a traditional kernel, which also benefits ü TCP/IP, routing, IPSec, firewall, and quality of more traditional uses of Linux (high server availability, service (QoS) management acquisition, and multimedia transmission). ü “Plug-and-play” support, peripheral hot plugging (USB, Firewire, PCI, etc.) 2.3 GNU/Linux Distributions Besides the characteristics that made the Linux When installing a GNU/Linux system, the user or Kernel successful and are very similar to what other system administrator interfaces with a distribution, or systems offer (UNIX or others), the Linux kernel has finished product, available on a CD-ROM or a DVD, seen many innovations, many offering improved which includes the Linux kernel, the GNU environ- performance and flexibility. Most of these were the ment, and much more. The quality of a distribution result of the availability of its source code, enabling depends not only on the quality of the software many academic and industrial research teams to use included, but also on: it as a basis. ü A judicious selection of software programs offered and their versions One very active field is virtualization, the objective of which is to make systems function as autonomously ü Intensive quality testing as possible on a single physical machine. This is how ü The flexibility of the installation program several instances of different operating systems (Linux, ü The simplicity and efficacy of the administration Microsoft Windows, etc.) can run simultaneously. One and configuration tools very well-known product that is not free is VMware, ü The software maintenance tools: installation which, in its server version, is based on a mini Linux of supplementary software, updates, etc. system. Similar free software does exist: QEmu and ü The possibility of applying critical patches Virtual Box. Very recently, KVM (Kernel Virtual without risk Machine) infrastructure was introduced into the kernel ü Procedures for reporting problems to take advantage of the extensions of the new Intel and AMD processors in this field. ü Relevant, updated documentation ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 6
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper Not all of these points are of equal importance. This One of the most interesting characteristics of most depends on whether you are a system administrator, distributions is the presence of sophisticated a developer familiar with Linux or UNIX, or a work- software installation and update management station user. In one decade, we have seen distributions tools. Experience has shown that GNU/Linux and software evolve and improve to meet the needs of distributors have gone further than most proprietary the first group, as well as those of the last group. systems to streamline the day-to-day and long-term management of installed software. Among the most common distributions in the industry are Red Hat, Debian and SuSE. Others that Whether with Red Hat/SuSE/Mandriva (RPM are or were variations of the first two are also very [Red Hat Package Manager] system) and especially common, such as Mandriva and Ubuntu. Without as- with Debian and its derivatives, each file of the sessing their quality, less common distributions are of- system and each application is installed through ten specifically intended for members of a specialized what is called a package, which includes a lot of audience or for specific uses (such as system repair or information on the software (versions, dependencies, for installation on low-end machines), including Gen- files, etc.), making it possible to validate and auto- too, Kubuntu, Xubuntu, and Slackware, among others. matically resolve any problem involving interactions Red Hat offers its distribution exclusively through between components (presence of libraries/DLL graduated service contracts (from the workstation to and their versions, conflicts, version changes, etc.). the high-availability server), which does not prevent In practice, if a given software program must be quasi-clones, like CentOS from appearing (since all installed, and if it is available in the form of a package the software comprising it is free). Fedora, a distribu- on your distribution site (Debian offers more than tion developed in cooperation with a large community, fifteen thousand packages), all you have to do is type is available for download and is used as a test bench a single command or click on a single button to install for Red Hat. it. If other software must be installed or updated to The situation is similar with SuSE, developed and do this, it will be installed or updated automatically. distributed by Novell, which also offers the This is also true, to a large extent, for entire system OpenSuSE distribution for download. updates. 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. ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 7
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper Automatic Software Installation with the Synaptic Tool Available for Debian and Ubuntu Other Free Systems Embedded Computing The GNU-Linux combination is not the only free We talk about embedded computing as a system. Arising from the historic UNIX of UC computer system that is often designed for Berkeley, there are also three very reputable UNIX a precise use. This is a situation that is just systems in the networking world (TCP/IP was as common for multimedia equipment as created originally on BSD): it is for a WiFi access point, an industrial • FreeBSD, which is intended for the same process control system, or even a telephone general uses as GNU/Linux or a PDA. • NetBSD, which emphasizes portability on Free systems have numerous advantages in several architectures this context: • OpenBSD, which emphasizes security • Easy to adapt to new architecture All the popular applications of Linux are available (if it has not already been done) on these systems, both on the server end and for • No royalties to pay to a third-party the workstation. Many tools that are considered to publisher be key on GNU/Linux, like network utilities or the • Readily available development SSH secure remote access server, come from BSD, environment and applications and Open BSD in particular. • Ability to modify them to give them Another UNIX system that used to be proprietary, a low memory imprint Solaris by SUN Microsystems, has become free. • Real-time capabilities Solaris 10 can thus be downloaded or obtained upon request for PC or SPARC architecture, and its source In fact, GNU/Linux (and BSD) operate on code is available. A plan known as Nexenta is in many kinds of network, multimedia, tele- the works, to combine the OpenSolaris kernel and communications, and industrial process the GNU environment in the form of a variant of control equipment. the Ubuntu distribution. Perhaps soon, alongside GNU/Linux, there will also be GNU/Solaris? ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper 3. Development Environments also for developing effective processing applications for data of various origins and formats, graphics tools, Web 3.1 GCC applications, and more. At first, developers of free software tried to create Among the most popular are Perl, which is unbeatable environments that would enable the creation of new for textual data processing, and Python, which is ideal software: systems—as we have seen—and before for learning programming, has a very disciplined those, development tools. structure, and is adapted both to major projects and The C programming language and its descendants to small tools. The Ruby and PHP languages must also were the initial focus of developers, since most be mentioned. operating systems (beginning with UNIX and Linux) All of these have libraries that enable them to and their utilities are written in C. The C compiler interface easily with UNIX and Windows systems, of the GNU project, known as the GNU C Compiler, networks, databases, directories, the Internet, and quickly became the GNU Compiler Collection, since more. It is possible, using these languages, to quickly it was not long before it also handled additional develop complex applications that function just as languages, such as C++, Objective C, ADA, etc., and well on GNU/Linux, UNIX, Mac OS X and Microsoft now also include the more recent Java. Windows. GCC is essential for developing system applications PHP Hypertext Processor stands out from this group. or other applications on GNU/Linux or BSD, on Originally designed for small Web applications, it is other UNIX systems, and even on Microsoft now in its fifth generation, is adapted for much Windows. It is one of the compilers that handles larger-scale projects, and is also used to run forums the most target architectures (many more than Intel for associations, company intranets, and even the and Intel-compatible processors) and different Yahoo! portal. languages. It is easily portable and is well supported by its developers and by manufacturers for producing 3.3 Java and .NET optimized code for the most recent variations of Java, designed by SUN Microsystems, and .NET, processors, such as 32- or 64-bit Intel or AMD designed by Microsoft, are highly integrated, very rich processors. development infrastructures, based on virtual machines GCC comes with a debugger (gdb), which is running above the operating system. They offer capable of interfacing with integrated development complete project management environments. environments (such as Kdevelop and Anjuta) and several performance analysis tools to identify the The long-awaited headline event of 2007 was the critical parts of a program. The sophisticated XCode complete release as free software by SUN of the development environment (not free), provided by source code of its Java virtual machine. The Java Apple with Mac OS X, is based on GCC. world was familiar with free software for a long time, through thousands of free libraries and applications, 3.2 Scripting Languages and free development environments such as Eclipse by IBM. Until recently, though, the heart of Java, its Beyond the traditional UNIX scripting languages top-notch virtual machine, was still not free; it was (Bourne Shell, C Shell, KornShell) for which free only usable at no charge. SUN’s entire Java develop- implementations exist which administrators of Linux, ment and deployment environment is now free. UNIX, and even Windows (with the free software cygwin or Microsoft SFU) systems use every day, The effects of this change will likely be minor at first. more evolved languages are becoming very popular At least Java will be much more easily integrated on all of these platforms. They are invaluable for into GNU/Linux and BSD distributions. Eventually, system and network administration, of course, but we can expect to see better Java support in GCC, a ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 9
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper convergence of various competing free virtual machines, 4. Free Software in a Network improved support for embedded computing in Java, and better performance in general. 4.1 Infrastructure TCP/IP was developed and became widespread .NET, besides being a (not free) product of Microsoft, because its communication protocols were public, is the specification of an architecture, a set of their design was the result of general collaboration, standardized programming interfaces, and a family and the software that implemented it was published of languages, including C#, which is close to the under free licenses. This is why we saw all systems, Java philosophy. free or not free, adopt it, and the Internet, as well as The Mono project implements this standardized intranets, become widespread all over the planet. architecture and strives for complete compatibility Software that runs a TCP/IP network is completely with the reference version from Microsoft. Today, integrated into the free GNU/Linux and BSD Mono is compliant with .NET 2.0 specifications, operating systems. It is a place where, for the past except for a few partially implemented elements, decade, free software has had no trouble such as Windows.Forms (planned for the end of establishing itself as a reliable, inexpensive 2007). Work on the transition to Version 3.0 of .NET and effective solution. is already underway. A compiler that is completely compatible with Visual Basic.NET was recently Linux and BSD have advanced features in terms of announced. 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 A .NET application running with Mono These software programs make it easy to deploy a on GNU/Linux 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 ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 10
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper In short, Samba can do everything Windows can Naturally, it implements all the functionalities do in a network in a transparent manner. It is still necessary to provide Web services both on the missing one important functionality: the ability to Internet and in intranets, including: replace an Active Directory domain controller. This is ü Virtual hosting of numerous Web sites on already possible on an experimental basis with the a single server Samba development version, which should be officially validated as stable in 2007. ü 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 A heterogenous network with GNU/Linux and Microsoft Windows 4.2 Web Services According to statistics from Netcraft, Apache is Apache Architecture the most widely used Web server on the Internet (nearly 60%). It is the result of the development Web applications, among others, often rely on a of one of the first Web servers, NCSA HTTP Server. relational database with which they communicate This explains where the name “Apache” comes using the SQL language. The most widespread from: Over ten years ago, it was a simple set of database server, particularly for the Web, is MySQL. patches on top of a NSCA server, transforming it Designed to improve raw performance at the into a “patchy server”, which eventually became expense of certain functionalities, MySQL is starting the “Apache Web Server.” to position itself as the best alternative to proprietary Since then, the Apache Foundation has been RDBMS (Relational Database Management System) established that directs the development of this by offering advanced functionalities such as stored strategic software for all Internet users, as well as procedures or clustering. for other projects, such as the Tomcat Java Another free RDBMS, PostgreSQL, aims to application server. At the heart of Web infra- satisfy the most demanding users and developers structure, Apache continues to evolve. It is by offering these functionalities since its first versions now in its third generation (2.2 after 1.3 and (it is in its eighth generation) while covering most of 2.0) and is still compatible with multiple platforms the SQL 92 standard. (UNIX, Linux and Windows). ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 11
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper 4.3 Other Internet Services 5. The Workstation A multitude of free server software programs 5.1 Graphical Environments covers all Internet protocols. They are often, as for the Web, the top products in terms of compliance The software architecture of the graphical interface for with standards, performance, security and reliability. all current UNIX systems, whether free or not, is similar. The display and the input devices (keyboard, mouse, E-mail, for example, was created with the free tablet, etc.) are managed by a display server (known as software sendmail, which remains a common an “X11 server”) on which are displayed a number of component in many UNIX systems. The relative clients that are the components of the graphical desk- complexity of its configuration made mail servers top as well as the applications themselves. that were more easily administrated, such as Exim and Postfix, very popular. This makes it possible to directly display graphical applications running on various machines (possibly All of these servers use smart filters against from different systems) on a single desktop. Thus, unsolicited e-mail, like SpamAssassin, or against a workstation (applications and display on the same viruses (which mainly pertain to systems that are machine) can be installed just as easily as a thin client not free but that it is good to detect downstream) giving access to applications running on applications such as Clamav. servers where most, if not all, software is installed. It To conclude, the following are a few of the top free is also easy to display the desktop of a Linux or BSD products for some services, among many others: system on a Windows machine, since the most wide- ü Proftpd and vsftpd for FTP file transfer spread free implementation of X11 (X.org) has been ü Jabber for instant messaging ported to Microsft Windows (Xming or cygwin). ü VNC for multiplatform GUI remote access What will determine the look and feel of a graphical desktop will be a set of applications such as the ü SQUID as an HTTP and FTP proxy window manager (which draws the borders and man- (cache, filtering and authentication) 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: ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 12
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper ü Novell and Red Hat proposed two parallel technolo- composition manager, such as Compiz or Beryl, offer gies to improve ergonomics with various effects: the following, among other effects: XGL and AIGLX. These two technologies are com- ü A virtual desktop system that is distributed patible; they differ mainly in their communication over the surfaces of a cube; with graphics drivers. ü A mechanism for quickly scaling windows ü Various research teams, including the one working so that they can all be seen at the same time on the Metisse project at INRIA [French National (similar to the exposé feature on Mac OS X); Institute for Research in Computer Science and ü Transparency management. Control], used Linux and X11 to imagine new ways Everything functions without any problems on to organize the applications’ “widgets.” machines that are not cutting edge, with low-end Mandriva integrated Metisse into its 2007 version. graphics cards and low-powered processors. XGL and AIGLX technologies are quickly becoming The rapid development around these technolo- stable enough to be offered as the default on certain gies, and the general enthusiasm that they incite, distributions such as SuSE or Ubuntu. XGL and AIGLX, lead us to believe that we have not seen in cooperation with a particular window manager or everything yet... A 3D vision of desktops and windows on AIGLX ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 13
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper 5.2 Office Software OpenOffice.Org is certainly the most well-known specifications of major calls for proposals in the free office suite, which functions just as well on industry. Proprietary office suites may no longer Windows, Mac OS X, UNIX or Linux. In its Version 2, be able to afford to leave it out. it is largely comparable to Microsoft Office, exchanges ü MS Office 2003 uses OpenXML, a data format documents rather well with Microsoft Office, and is based on XML, as its default which Microsoft even more advanced in certain other aspects, such as wants to standardize. the default use of an open, standardized data format based on XML. Among developments we should expect in Although there remain some partial incompatibilities OpenOffice, in addition to the further improvement with respect to Microsoft Office data formats, things of interoperability with proprietary formats, is the are developing in the right direction: integration of a multilingual grammar check. Currently, only the spell check is multilingual. ü Microsoft and Novell are working together to improve the interoperability of the two suites OpenOffice is not the only free office suite. KDE and (they still have to clarify their positions regarding Gnome have been working for a long time and are a few patents). now offering stable products which, although less ü The Open Document format of OpenOffice is an complete than OpenOffice, are lighter: KOffice for ISO standard and is starting to be required in the KDE and the pair Abiword+Gnumeric for Gnome. OpenOffice.Org and Abiword on a Gnome desktop ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 14
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper 5.3 The Internet and Communication 5.4 Multimedia If a free software program can be said to have made Let us begin by debunking a myth, which is certainly fantastic progress, it is the Mozilla Firefox Web a relic from a bygone era: It is possible, without any browser. In just two years, it has become the browser problem, to save your CDs in MP3 format (or even of approximately 20% of users, and is even more better, Ogg Vorbis) and listen to them, synchronize popular in continental Europe. These percentages your portable player, watch a DVD and DivX, and reflect mostly Windows users. For Linux users, even design your own using your vacation videos, the number is certainly closer to 80%. The broad on GNU/Linux. success of Firefox, regardless of the system used, is There are many software programs that can be used easy to explain: for this, and some of them are just as well known on ü Ease of browsing with tabs proprietary systems. We will list just a few: ü High level of security ü gthumb and The GIMP for managing photos ü Compliance with the WWW Consortium’s and images (equivalent of Adobe Photoshop) (W3C) HTML standards ü XMMS, Audacious or RhythmBox for managing ü Many extremely useful extensions and listening to music (advertisement and flash blocker, privacy ü GRIP or Sound Juicer for saving CD audio protection, etc.) ü MPlayer, VLC, Gstreamer or Xine for The future of the Internet seems to be headed toward watching films applications with rich interfaces (AJAX). Firefox has ü Kino and Avidemux for importing, manipulating a strong advantage in this respect with its XUL infra- and creating your own films structure (pronounced “zool”), which makes it easier to build Web pages with developed graphical elements ü Ekiga for using telephony and video conferencing (WYSIWYG tables and fields, among others). over the Internet As for video games, we cannot compare Linux to the In application suites from the Mozilla series, we most well-known platforms, even if Linux could be must also mention the e-mail client Thunderbird, installed on XBox or PlayStation; however: which also runs on multiple platforms and is a serious competitor of its proprietary alternatives. This appeals ü Free games of all types exist, as does free to the general public, like Firefox, and for similar educational software reasons. ü A few major game titles for “PC” are available Another e-mail client worth taking a look at is for Linux (such as Quake and Doom) Evolution. Now developed mainly under the direction ü The more seasoned gamer may be happy to of Novell, it allows Linux and UNIX users, in run free versions of Quake, the excellent addition to reading and writing e-mail, to manage (and free) flight simulator Flight Gear, and a daily planner and address book, both individually most of the major game titles for “PC” through and collaborating within a group. the (non-)emulator Wine. In the field of group work, multiple-platform However, music and movie lovers may be disappointed solutions exist, but the main pitfall remains compat- at first when they install a distribution of GNU/Linux. ibility with Microsoft Exchange or with Microsoft It is likely that they won’t immediately be able to hear Outlook. OpenExchange and OpenGroupware server MP3s, or read DVDs or other kinds of video. Strangely software, as well as special connectors for client tools, enough, this type of “out-of-the-box” Linux system may eventually make it possible to achieve better has no problem playing the less popular, high-quality interoperability and, therefore, smoother transitions. Ogg and Theora audio and video formats. ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 15
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper What is the difference? Well, it is purely legal… 6. Resources and does not directly concern the inhabitants of all countries. Many multimedia formats are Linux and Open Source News Sites protected by software patents, a notion that is Linux Weekly News: www.lwn.net/articles foreign to people in Europe, but that prevents Slashdot: www.slashdot.org GNU/Linux distributors from offering us the libraries that make it possible to read them on their installation medium. On the other hand, Free Software Directories and Repositories it is completely legal to add these libraries Freshmeat: www.freshmeat.net later, just as easily as any other software, over SourceForge: www.sourceforge.net the Internet. Savannah GNU software repository: savannah.gnu.org What is even more disturbing is that some formats are protected by encryption against copying (digital rights management or DRM), Free Software Fundation which has the perverse effect of making it www.fsf.org impossible for software for which the source www.fsfeurope.org code is public, to read them. In the most extreme versions, these processes tend to make Embedded Systems and Real-Time Computing it impossible to read anything as soon as non- locked software or hardware is present. As for Linux Devices: www.linuxdevices.com DVDs, protections have been bypassed for a long time by teenagers, but installing a library Perspectives on Free and Open Source Software that allows it is not legal everywhere (it is in http://mitpress.mit.edu/catalog/item/default. Europe), so again it must be installed over asp?ttype=2&tid=11216 the Internet. The time it takes to download these few files Open Sources: Voices from the provides a good opportunity to think about the Open Source Revolution implications of these systems (which, after multimedia, are starting to be used for office Dircted by Chris DiBona applications) designed to make it difficult, or http://www.oreilly.com/catalog/opensources/ book/toc.html even impossible, to enjoy one’s own data and to give an external organization more power over computer systems than their owners have. GNU/Linux Distribution Sites For the same uses, for each of these inconvenient www.redhat.com formats, there is always a documented, open, www.debian.org non-patented format that is managed by free software. www.ubuntu.com www.opensuse.org www.mandriva.com www.gnusolaris.org (Nexenta) www.openbsd.org www.freebsd.org www.netbsd.org ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 16
    • 1-800-843-8733 • www.learningtree.ca LEARNING TREE INTERNATIONAL White Paper About Learning Tree International About the Author Learning Tree International is a leading worldwide Jean-Pierre Messager provider of vendor-independent training to managers Independent Consultant on and IT professionals in business and government Open SourceTechnology organizations. Since 1974, over 1,700,000 course jpm@xiasma.net participants from over 13,000 organizations worldwide A former mathematics and computer science have enhanced their skills and extended their knowledge teacher and researcher, and then an engineer under the guidance of expert instructors with real- for an open source software service company, world experience. Learning Tree develops, markets and Jean-Pierre Messager is an independent delivers a broad, proprietary library of instructor-led consulting engineer on free information courses focused on the latest information technologies, technology (network, security and computing) management practices and key business skills. and is a Learning Tree course author and Learning Tree International annually trains over instructor on the topics of UNIX, Linux and 87,000 professionals in its Education Centers around Free Software, as well as Web Development. 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 the Editor about Learning Tree products and services, call 1-800-THE-TREE (1-800-843-8733), or visit our Frank L. Schmidt, Jr Web site at www.learningtree.ca schmidtf@att.net 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 Atlanta Los Angeles Boston Chicago Learning Tree International as an instructor, course author, and technical editor. Washington, DC New York City Toronto London Paris Ottawa Stockholm Tokyo ©2007 Learning Tree International. All rights reserved. Open Source Software: An Overview and Outlook 17 WP Open Source 0706Final CN