Introduction to
Free/Open--Source Software
· For any reuse or distribution, you must make clear to others the license terms of
this work.
· Any of these conditions can be waived if you get permission from the copyright
holder.
Your fair use and other rights are in no way affected by the above.
Microsoft Office and Microsoft Windows 98/Me/2000/XP are trade mark of Mi-
crosoft Corporation in the United States and other countries. Linux is trade mark
of Linux Tovalds in the United States and other countries. All other names of prod-
ucts and companies are in general property of their respective companies. Please
note that TM,
C and
R marks are omitted in the text of this document.
2
1 What is Free/Open--Source Software? 12
1.1 Why Choose Free/Open--Source Software? 12
1.2 Process of Writing Software 13
1.2.1 Operating Principles of Computers 13
1.2.2 Binary Code and Source Code 14
1.2.3 Compilers and Interpreters 14
1.2.4 Programming Languages 16
1.3 Free/Open--Source Software and Proprietary Software 16
1.3.1 Software as a Product 17
1.3.2 Issues with Software Products 17
1.3.3 Countermeasures 18
1.3.4 Emergence of Free/Open--Source Software 18
1.4 Releasing Source Code 19
1.4.1 Levels of Releasing Source Code 19
1.4.2 Benefits of Releasing Source Code 20
1.5 Truth and Misconceptions about Free/Open--Source Software 21
1.5.1 “Open--Source” is a Proper Noun 21
1.5.2 “Free Software” and “Free Beer” 22
1.5.3 More Than Just Releasing Source Code 22
1.6 FOSS Technology and Career Paths 23
1.6.1 Skill Sets for FOSS Engineers 23
1.6.2 Types of FOSS Engineers 25
1.6.3 Skill Matrix for FOSS Engineers 26
1.6.4 Career Paths for FOSS Engineers 26
1.7 Chapter Review 27
3
2.3.2 Basic Configuration 39
2.3.3 Drive Formatting/Partitioning 40
2.3.4 Network Configuration 40
2.3.5 Time Zone Selection, Root Password Setting 41
2.3.6 Package Installation 42
2.3.7 Configuration After Software Installation 43
2.3.8 Date, Display and Other Settings 43
2.4 Chapter Review 44
4
3.4.9 Image Processing 69
3.4.10 Computer Graphics (CG) 70
3.4.11 Video 71
3.4.12 Audio, Music 72
3.4.13 Computation, Science and Technology 72
3.4.14 Kana--Kanji Conversion 73
3.4.15 Input of Non--Latin Scripts 73
3.5 Development Environments 74
3.5.1 Languages 74
3.5.2 Integrated Development Environments 75
3.5.3 Development Frameworks 76
3.6 Major GNU/Linux Distributions 76
3.6.1 About Distributions 77
3.6.2 Red Hat Linux, Fedora Core, CentOS, Etc. 78
3.6.3 Turbolinux 78
3.6.4 SUSE Linux 79
3.6.5 Vine Linux 79
3.6.6 Debian GNU/Linux 80
3.6.7 KNOPPIX 80
3.6.8 Ubuntu 81
3.7 Chapter Review 81
5
5 FOSS Development and FOSS Community 99
5.1 Free/Open--Source Software and the FOSS Community 99
5.1.1 FOSS Distribution: Community to Users 100
5.1.2 Types of FOSS Communities 101
5.1.3 User Communities 102
5.2 Development Structure 102
5.2.1 Cathedral-- and Bazaar--Style Development 103
5.2.2 Roles of Project Members 104
5.2.3 Development Resources 104
5.2.4 SourceForge.net 105
5.2.5 BerliOS, FSF/UNESCO Free Software Directory, Savannah 105
5.2.6 Freshmeat.net, Rpmfind.net 106
5.2.7 Getting Involved in Projects 106
5.2.8 Tips for Getting Involved 107
5.2.9 Project Management 108
5.3 Topics Related to FOSS Development 108
5.3.1 Agile Development and Similar Methodologies 109
5.3.2 Stable Versions and Development Versions 110
5.3.3 Project Forks 111
5.3.4 Advantages of Free/Open--Source Development 112
5.3.5 Risks of Free/Open--Source Development 112
5.4 Communication 113
5.4.1 Communication Tools 114
5.4.2 Pros and Cons of Online Communication Tools 114
5.4.3 Offline Communication 115
5.4.4 Participating in Conferences 115
5.5 FOSS Developers 116
5.5.1 FLOSS Surveys 116
5.5.2 Free/Libre/Open--Source Software Japanese Developers
Online Survey 117
5.5.3 Developer Background and Involvement 118
5.5.4 Reason for Getting Involved 119
5.5.5 Reasons for Staying Involved 119
5.5.6 Type of Involvement 120
5.5.7 Global Involvement 120
5.5.8 Compensation 121
5.6 Chapter Review 121
6
6.1.2 Changes in the Software Business 125
6.1.3 Shift from Package Sales to Services 125
6.2 Factors Driving FOSS Business 126
6.2.1 Growth of GNU/Linux Market 126
6.2.2 GNU/Linux in the Japanese Market 128
6.3 Types of Systems Development Using FOSS 129
6.3.1 Market Penetration and Reasons for FOSS System Adoption 129
6.3.2 LAMP and LAPP Systems 130
6.3.3 Java--Based Systems 130
6.3.4 Conventional Applications for FOSS Servers 131
6.4 Entry of Major Vendors into FOSS Business 131
6.4.1 On--Demand Computing and FOSS 132
6.4.2 IBM’s GNU/Linux Branding Strategy 133
6.4.3 Situation for Leading Japanese Manufacturers 134
6.5 Chapter Review 134
7
7.11.2 Training Courses 152
7.12 Chapter Review 152
8
9 Features of FOSS 188
9.1 Performance 188
9.1.1 Innovative and Fast Development 189
9.1.2 FOSS Performance Testing in Japan 189
9.2 Cost 190
9.2.1 Myth of Low Cost 191
9.2.2 Evaluating Total Cost of Ownership (TCO) 192
9.2.3 Cost Reduction Factors 192
9.2.4 Cost Disadvantages of FOSS 193
9.3 Vendor Lock--In 194
9.3.1 What is Vendor Lock--In 194
9.3.2 Examples of Lock--In Business Strategies 195
9.3.3 Separation of Interface and Implementation 196
9.3.4 Free/Open--Source Software and Open Standards 197
9.4 Security 198
9.4.1 Security of Software 198
9.4.2 Is FOSS Really More Secure? 199
9.4.3 “Many Eyes” of Developers 199
9.4.4 Naked Implementation 200
9.4.5 FOSS Security Tools 201
9.5 Educational Benefits 202
9.5.1 Source Code as an Example 202
9.5.2 Using a Debugger to Verify how Source Code Runs 203
9.5.3 Low Cost of Development Environments and Resources 203
9.5.4 Educational Benefits of Communities 204
9.6 Sustainability 205
9.6.1 Necessity of Sustainable Software Development 205
9.6.2 Realizing Sustainable Software Development 206
9.6.3 Scientific Progress and Advancement of Software 206
9.6.4 For the Advancement of Software 207
9
10.3 FOSS Deployment on Desktops 215
10.3.1 Trends in FOSS Desktop Market 215
10.3.2 Phases for Spread of FOSS Desktop Deployment 216
10.3.3 Barriers to Spread of FOSS Desktops 217
10.3.4 Examples of Issues with Japanese Language Environments 218
10.4 Diversity 219
10.4.1 Driving Factors behind Diversity 219
10.4.2 Diversity of Data 220
10.4.3 Diversity of Platforms 220
10.4.4 Diversity of User Interfaces 221
10.5 Standardization Trends and Localization 222
10.5.1 Standardization of GNU/Linux 222
10.5.2 Standardization of Documents 223
10.5.3 I18n, M17n and L10n 224
10.5.4 Examples of Internationalized Applications 225
10
11.6.8 Eclipse 245
11.6.9 Bug Reporting Tools 245
11.6.10 Bugzilla 246
11.7 Chapter Review 246
11
Why Choose Free/Open--Source Software?
low source code to be released as FOSS The processes involved in writing software
understand the importance of source code to software
and the merits of releasing source code, FOSS and proprietary software
Differences between FOSS and proprietary software
keep source code confidential as intellectu- Misunderstandings and the truths about FOSS
Freedom of choice
Philosophy and History of FOSS
sons for the interest in FOSS and the con- Purpose of this course
Learn about significance
Features and Issues with FOSS
tents of the course, you will find out the Understand benefits of
FOSS
Software Components and
Examples of Application
Building
12
What is Free/Open--Source Software?
government policy, and FOSS and e--government. Later chapters explore features
and issues with FOSS, development tools, software components, and examples of
application building.
Programming languages
Overview of typical programming languages
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 3
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Machine language
tion sets stored in memory, in order to exe- Evolution from 8-bit to 16-bit, then 32-bit and now 64-bit
Computer configuration
Storage devices
13
Process of Writing Software
Originally, machine language was shown using eight binary digits (8 bits). This was
later extended to 16--bit and 32--bit languages. Today, machine language is moving
to a 64--bit language.
Byte-code
14
What is Free/Open--Source Software?
1.2.3.1 Compilers
A compiler processes languages for conver-
sion to binary code, and is required for pro- Compilers and Interpreters
gramming languages in which source code Compiler
must be converted into binary code before Converts source code to binary code during compiling
The advantage of a compiler is its ability Interpreter (scripting languages are also a type of
interpreted language)
to produce binary code, which can be di- Source code interpreted at each execution
rectly interpreted by the CPU after com- No compiling required; easy to create codes
piling. This means that there is low over- Inferior performance during execution; not suited for
large-scale systems
head during execution. The downside is an intermediate language before being executed
1.2.3.2 Interpreters
An interpreter processes a programming language by interpreting the source code
written by people. The source code is interpreted each time a program is executed.
The advantage of an interpreter is that it does not require compiling, which makes
it easier to interactively check a program. The downside is low processing efficiency
from interpreting the source code every time it is executed.
Some languages such as Perl are superficially treated as interpreted languages by
users, since the source code is translated into an intermediate language during each
execution. A scripting language is a type of interpreted language frequently used in
many aspects of Web application development, or to temporarily write a relatively
small program in a short amount of time.
15
Free/Open--Source Software and Proprietary Software
Object-oriented extensions of C
Objective-C
FORTRAN, Pascal
compiled into byte--code for a virtual ma- Programming languages that use byte-code interpreter
(Virtual Machine type)
Java, C# (.Net)
so used today, mainly consisting of inter- Perl, PHP, Python, BASIC, LISP, Ruby and many others
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 7
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
date. Also covered are the circumstances Difference between software product and 'goods'
under which FOSS has emerged and come Issues with software products
Problems such as illegal copy and piracy
Emergence of Free/Open-Source
for software. The section explains how the Spotlighted as a novel software paradigm
16
What is Free/Open--Source Software?
formation should be free, and because of OS, applications and other minute software
puters, package software became common- Difference between software and information content
(music, film)
Particularly rampant in
Security holes
Bugs
Winny
gnutella
17
Free/Open--Source Software and Proprietary Software
1.3.3 Countermeasures
Various countermeasures against the use of
illegally copied software have been imple- Countermeasures
mented, such as hardware keys and copy
Measures against illegal Measures to address
lutions have also been adopted such as li- USB dongles, etc.
Bug patches
Digital watermarks
Automatic updates
Cost of maintenance
License keys
Non-technology solutions
censes that govern the use of software. A Software use managed through license
ficult to generate any costs beyond the charges Shift toward being paid for services
Support services
Since FOSS is widely used around the world, An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 12
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
18
What is Free/Open--Source Software?
tions that exist. Source code is not nec- Inadequate just releasing source code
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 13
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
19
Releasing Source Code
There are also major benefits for users. A modify the source code out of need
to handle maintenance
customization, provided that he or she is Ability to fix by oneself if problem occurs (maybe)
knowledgeable enough to modify source code Learn operating principles and acquire technology
Other users
or developer skills. Another benefit for Indirectly benefit from releasing of source code
20
What is Free/Open--Source Software?
communist
Based on selfish idea rather than altruistic
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 16
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
issue of semantics, the correct meanings of Open Source is trademarked in the US by Open Source
Initiative
21
Truth and Misconceptions about Free/Open--Source Software
Free Software is frequently distributed with- Free Software is frequently distributed without charge,
but does not have to be free of charge
out charge, but it does not have to be free You can still conduct business with Free Software
of charge. You can conduct business us- Richard M. Stallman admits to poor choice of words
a business. Free Software is strictly a way Free Beer is beer without charge
Freedom of beer is not guaranteed
Software qualifies as FOSS only when the Must meet Free/Open-Source Software criteria
does the source code actually run, and is it An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 19
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
22
What is Free/Open--Source Software?
vided in order to point out the career de- What skills are required for FOSS engineers?
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 20
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Databases (T1)
FOSS development Networks (T2)
environment Web services (T3)
(D2) etc...
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 21
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
23
FOSS Technology and Career Paths
1.6.1.5 Technology
The Technology skill set covers specialized technical knowledge specific to each appli-
cation field, such as databases, networks and middleware. The Development Basics
skill set covers skills needed by almost all FOSS engineers. In comparison, items in
the Technology skill set are specific to the type of FOSS that is to be developed.
These skills should be acquired as the need arises.
24
What is Free/Open--Source Software?
System administrators
System integrators
Package developers
FOSS developers
Engineers who develop the FOSS itself
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 22
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
25
FOSS Technology and Career Paths
1
2 3
Integrator
1 2
3
1
n
Developer
2
Developer
3
t
1 2
3
1 2
3
Classroom lectures
Hands-on trainings
(Project
Learning)
based
Integra Common
FOSS
System OSS
We need this types
development
O2 OSS Community Participation ◎ ◎ of training course!!
integration
Network
I1 UNIX Operation Training course
UNIX
tion
I2 UNIX System Administration ◎◎ for Linux
Dev.
Env.
We need this types
OSS
◎ ◎ ◎ ◎
Also shown are skills of which engineers are D2 OSS Development Tools
C1 Basics of Computer
of training course!!
Common
C2 Computer Language ◎◎ ◎◎ ◎ ◎
Software Development
◎◎ ◎ ◎
PMBOK
C4 Project Management ◎◎
Training Course
Seminar
T1 Database ↑ ↑ ↑ ↑ ↑ ↑
Package development
FOSS tuning
T2 Network | | | |
development
Web system
T3 Web Service | | | | | |
Code reading
↓ ↓
Technology
T4 Middleware
understanding. T5 Multimedia
T6 Platform
T7 High Performance
|
|
↓ ↓ ↓
|
|
|
|
|
|
↓
T8 Security ◎◎ Security
Seminar
* Legend
* Skill level
- To be learned basic skills - Level 1 : Junior engineers who needs others help
- To be learned advanced skills
extent to which existing training courses - Central skills for the engineer
26
What is Free/Open--Source Software?
work, while being actively involved in FOSS community initiatives outside of the
workplace.
· Name two typically interpreted languages and two typically compiled languages.
· What are the advantages and drawbacks of compiled languages and interpreted
languages?
· When viewing software as a product, what is the main difference between soft-
ware and material goods?
27
Chapter Review
· What measures have proprietary software vendors taken to address the issues of
selling software as a product?
· Which kinds of business models are more adequate for FOSS than selling a
software product?
· Name some benefits to users and some to developers that arise from releasing
software as FOSS.
· What are the differences between FOSS engineers, FOSS application engineers,
and FOSS developers?
28
FOSS Application Fields and Installation of FOSS
Installing GNU/Linux
Examining GNU/Linux installation process
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 25
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
ment is expected to emerge as an applica- network servers were the quickest to adopt FOSS
Embedded systems
FOSS is widely used in embedded environment
Desktops
usability needs to satisfy average users
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 26
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
29
FOSS Application Fields
order to keep their costs down. FOSS used for mail servers and name servers
At first, FOSS was deployed for mail servers Small-scale network servers
and name servers. Today, many FOSS pro- In-house intranet systems
ture firms are particularly heavy users of Factors driving FOSS use for Internet business
maximize their return by using FOSS for Desire to maximize return by reducing system investment
costs
Popularity of e-commerce
system building, as a way of keeping sys- Making inroads into enterprise sector
tem investment costs down. The popular- FOSS gradually making inroads into business applications
ity of e--commerce also drives FOSS adop- Business package software for specific applications
30
FOSS Application Fields and Installation of FOSS
software design. Since the source code for GNU/Linux, NetBSD and other FOSS operating systems
support many different CPU architectures
FOSS is available, porting can be under- Various embedded platforms are supported
taken as long as there is interest from engi- Embedded equipment manufacturers look to FOSS
EMBLIX (since 2000), CE Linux Forum (since 2003)
velopment tools such as the GNU Com- PDAs, mobile phones, car navigation systems
Information appliances
piler Collection (GCC) offer extensive fea- Hard disk recorders, media servers, multimedia equipment
31
FOSS Application Fields
Operating systems such as GNU/Linux and Or many comparable FOSS can be used
FreeBSD were developed as Unix clones Switching from Unix machines to IBM PC-compatible
machines leads to significant cost savings
32
FOSS Application Fields and Installation of FOSS
2.1.5 Desktops
Compared to its success in servers, FOSS has made very little inroads into desktops
used by general users. Practically speaking, Windows dominates desktop terminals
used both at home and by enterprises. Al-
though the Mac OS is used in certain sec- Desktops
tors, there are no other operating systems
Desktop use by general users
beyond Windows and Mac that are widely Last stronghold of proprietary software?
used for desktops. Many users only familiar with Windows or Mac OS
not differ substantially from Windows or Telephone operator terminals, counter terminals
33
Deploying Free/Open--Source Software
CD booting
In addition to deploying FOSS at the op- The package to use GNU software on Windows
Drawbacks
34
FOSS Application Fields and Installation of FOSS
However, there are also downsides to a dual boot environment. Since one hardware
platform is used to switch between multiple operating systems, the operating sys-
tems cannot be used concurrently. Furthermore, a dual boot environment requires
partitioning of the hard drive in order to store multiple operating systems. This can
be difficult to configure if you need to move existing data around within the hard
drive. In addition, it can often take a certain amount of skill to configure a boot
loader. Consequently, a dual boot environment is better suited for intermediate
users compared with CD booting mentioned below.
2.2.2 CD Booting
Today’s PCs are generally capable of booting up by loading the operating sys-
tem from a CD--ROM, instead of booting from a hard drive. CD booting uses
this capability to directly start up from a
CD--ROM. A CD--booting operating sys- CD Booting
tem can also run on a diskless computer.
OS boots directly from CD-ROM
rary files and newly written files operate on Can run on diskless system
User data stored in USB memory, etc.
a RAM disk, which creates a file system in Some OSes save data to CD-R at shutdown
USB memory or other removable media in CD-ROM based, so minimal risk of harming system
Disadvantages
conjunction with the CD--ROM, as a way System cannot be extended
35
Deploying Free/Open--Source Software
Leading examples
provides this layer, but this functionality VMware
coLinux
Drawbacks
ing systems that run on the virtual ma- Slower performance
GNU/Linux running inside of GNU/Linux
due to inevitable
chine is called the guest OS. VMware and overhead (< 10%)
ty of tools for FOSS development has also X Window System and related software
been a factor in the growth of Free/Open-- FOSS and running on Unix are fundamentally unrelated
36
FOSS Application Fields and Installation of FOSS
There are many FOSS programs that run on both Windows and Mac platforms, due
to the availability of source code and tools for porting. Software written in Java
is designed to run on any OS that runs the Java VM, in accordance with Java’s
“Write Once, Run Anywhere” ideal. Using Java applications is an excellent way to
use FOSS.
Cygwin can also be used to run GNU software on Windows. GNU software provides
an extensive set of FOSS tools for Unix.
2.2.5 Cygwin
Cygwin is a package used to run a Unix--like environment on Windows.
It has two major components: a DLL (Dy-
namic Link Library) that emulates the Unix
API (Application Program Interface), and Cygwin
a GNU development tool--chain that uses
Implements GNU/Linux-like environment on
Cygwin can be used to recompile programs API (cygwin1.dll) for emulating Unix APIs
tain types of software cannot be ported Services for Unix (SFU) from Microsoft
37
Installing GNU/Linux
Installing GNU/Linux
Process of installation
1. Running the installer
2. Basic configuration
4. Network configuration
6. Package installation
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 38
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Based on X Window
Using the GUI installer is like using any If GUI cannot be used
Not supporting GUI
38
FOSS Application Fields and Installation of FOSS
Keyboard configuration
Next, choose the keyboard configuration. Many keyboard configurations, depending on the
language
Custom installation
39
Installing GNU/Linux
performed using the classic fdisk tool or Formatting and partitioning tools
Disk Druid
If you are using a new hard drive and in- Also configure boot loader at this point
Hostname
Enable/disable SELinux
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 42
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
40
FOSS Application Fields and Installation of FOSS
If a DHCP server runs on the network segment you will connect to, the simplest op-
tion is to set the hostname to Automatically via DHCP. Discuss the network settings
in detail with your network administrator before deciding on the configuration.
world map, located above the time zone Puerto Rican users should select America/Puerto_Rico
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 43
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
41
Installing GNU/Linux
Individual packages are organized into groups If you chose Custom installation, choose each software
package to install
and sub--groups. The following is a list of Software packages are sorted by group
Desktops
Applications
Development, etc.
dora Core.
· Desktops
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software 44
· Applications
Editors, Engineering and Scientific, Graphical Internet, Text--based Internet, Of-
fice/Productivity, Sound and Video, Authoring and Publishing, Graphics, Games
and Music
· Servers
Server Configuration Tools, Web Server, Mail Server, Windows File Server, DNS
Name Server, FTP Server, PostgreSQL Database, MySQL Database, News Serv-
er, Network Servers, Legacy Network
Server Package Installation (Contd)
opment, GNOME Software Development, Software packages can also be added later on
Software packages can also be added or deleted later using the package manager
system. Today’s distributions come with a very wide range of software and are
42
FOSS Application Fields and Installation of FOSS
often supplied on multiple CDs. You will be required to change the installation
media during the software installation process.
Drive formatting is also performed during this step. You will need to restart your
computer after all of the software packages are installed.
In Fedora Core, you will be asked to agree Fedora Core asks users to agree to license during this
step
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 46
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
43
Chapter Review
Display settings
Configuring X Window System
Other settings
Configure sound card, add general user accounts, etc.
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 47
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
− dual boot
− CD boot
− on virtual machine
44
FOSS Application Fields and Installation of FOSS
− on Windows
− using cygwin
· Name some applications, services, or devices that belong to each of the following
application areas:
− network services
− enterprise systems
− embedded systems
· Name the steps that have to be done when installing GNU/Linux, what is the
purpose of each step?
45
Operating Systems
Servers
FOSS became popular initially as server applications
Desktops
FOSS applications are expected to be suited for
desktops
Development environment
Cost merits for starting development easily
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 48
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Other OS Trends
Microsoft's shared source and activities of Sun
Microsystems regarding its product Solaris
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 49
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
46
Major FOSS and Distributions
3.1.1 Linux
The Linux kernel is the brainchild of Linus Torvalds, at the time a university stu-
dent in Finland. Linux was started in 1991 with the goal of developing a Unix
clone designed to run on PC--compatible
machines. GNU/Linux
A worldwide developer base is involved in
Unix for PC, brainchild of Linus Torvalds
Architectures supported:
tem that runs on a wide range of platforms x86, PPC, Alpha, MIPS, SPARC, S/390, etc.
by IBM and other leading global comput- Diverse range of GNU/Linux systems popular
worldwide
V6, but with networking enhanced. The Unix-compatible OS created by William Joy(Bill Joy) and
Chuck Haley
ed. Nevertheless, BSD was highly influen- Free/Open-Source OSes derived from BSD
Features
tial on the development of Internet--related FreeBSD: Emphasis on stability; frequently used for
servers, etc.
47
Operating Systems
3.1.3 Darwin
Mac OS X is a Unix--based operating system derived from 4.4BSD. OS X is a
major departure from previous versions of the Mac OS. The core of Mac OS X
is Darwin kernel, which is released by Ap-
ple Computer, Inc. as Free/Open--Source Darwin
Software. As an operating system, Mac
Kernel of Mac OS X
GUI and APIs. Many of these components APIs (Cocoa, Carbon), etc.
deliver overall ease of use. The Darwin ker- Founded in April 2002 by Internet Systems Consortium
and Apple Computer
http://opendarwin.org/
48
Major FOSS and Distributions
3.1.4.1 Haiku
BeOS is an operating system originally developed by Be, Inc. Development of BeOS
stopped when Be, Inc. was purchased in 2001. The source code for BeOS was later
released and development was restarted as
OpenBeOS. The name has since changed Other Free/Open-Source Operating
Systems
to Haiku.
Haiku OS (aka OpenBeOS)
Development of BeOS stopped when Be, Inc. was
purchased in 2001
Plan9
Next-generation OS developed by Bell Labs of AT&T
(now of Lucent Technologies), original developers of
Unix
GNU/Hurd
Kernel of operating system based entirely on Free
Software; developed by GNU
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 53
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
3.1.4.2 Plan 9
Plan 9 is a FOSS operating system originally developed by Bell Labs of AT&T
(now of Lucent Technologies). Research for Plan 9 is aimed at developing a next
generation OS concepts to replace Unix. The development of Plan 9 is based on
a distributed network architecture. Under the architecture, all resources including
the CPU are distributed across a network, enabling the entire network to function
organically as a computer.
49
Operating Systems
Other OS Trends
Developments in Solaris OS
Source code released as OpenSolaris in June 2005
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 54
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
50
Major FOSS and Distributions
3.2 Middleware
Middleware is the software layer that lies between applications and the operating
system. Together with the functions that are provided by the OS, middleware pro-
vides applications with a rich service envi-
ronment. This section describes how mid- Middleware
dleware is used as a framework for devel-
Web application frameworks
oping Web applications. It also covers ex- Middleware as a framework for constructing Web
applications
libraries
vast assets. Software libraries are enormous assets
Example of libraries
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 55
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Tomcat
Part of Apache Jakarta Project
JBOSS
Implements Java for J2EE
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 56
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
3.2.1.1 Tomcat
Tomcat is an application server that handles JavaServer Pages (JSP) and Java
servlets. JSP is a Java--based technology for dynamically generating Web pages.
A Java servlet is designed to run a program on the server side.
Tomcat was developed as part of the Jakarta Project, a Java--related sub--project
under the Apache Project. Jakarta Tomcat is approved by Sun Microsystems, the
developers of Java, as the reference implementation for Java servlets and JSP.
51
Middleware
3.2.1.2 JBoss
The JBoss application server was developed by JBoss Inc., previously called JBoss
Group LLC. The software supports Java 2 Platform, Enterprise Edition (J2EE).
JBoss uses Enterprise JavaBeans (EJB), a Java software component for enterprise
systems, to simplify the provision of Java--based Web application services.
JBoss Inc. releases JBoss as FOSS and conducts business by providing consulting
and knowledge transfer services. JBoss is an excellent example of FOSS business.
3.2.2 Libraries
Software is fundamentally implemented through a combination of simple processes,
no matter how complex the software. Software libraries and software components
are collections of subprograms that imple-
ment simple and basic processes. A library Libraries
or component is used by other software to
glibc (GNU C Library)
Software libraries exist for each of the vari- Called C Library because development on Unix
focused on C language
for Java and Perl, respectively. This sec- Ex. GNU Readline
52
Major FOSS and Distributions
Examples of Libraries
Qt graphics interface
developed by SGI
GUI toolkit developed
by Trolltech
Mono (.NET)
Used by KDE
Open Source
OpenMotif
implementation of .NET
GUI toolkit for X
Window System; FOSS .NET framework
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 58
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
3.2.3.2 Mesa
The Open Graphics Library (OpenGL) API is a graphics library that is widely used
to draw 3D computer graphics. The OpenGL specification is defined by Silicon
Graphics, Inc. (SGI). Mesa is the FOSS version of the OpenGL API. Currently, SGI
also provides its own and separate FOSS version of the OpenGL specification, called
the OpenGL Sample Implementation.
3.2.3.3 Mono
Mono is the FOSS implementation of the .Net framework advocated by Microsoft.
Although the .Net framework itself is not FOSS, the specifications for .Net are
released by Microsoft. This has resulted in development aimed at enabling software
that was created under the .Net framework to run on GNU/Linux and other non--
Windows platforms.
53
Servers
3.3 Servers
This section covers server programs that
provide various services through networks. Servers
Many FOSS server programs have been de-
Web server File sharing
POP3/IMAP
Mining server
namazu
DB server
CMS
PostgreSQL/MySQL/Fire
bird XOOPS/Zope
BIND E-Learning, e-
commerce and many
others
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 59
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Today, the Apache Project comprises a vast De facto standard for HTTP servers
History
nent sub--projects such as the Jakarta Project. Developed in 1995 by Rob McCool at NCSA
Apache runs on many other platforms in These developers got in touch and started up Apache
Project
addition to Unix, including Windows and Name originates from a patchy server and the Apache
Native Indian tribe
54
Major FOSS and Distributions
Postfix
Inter-operable with Sendmail
Simple to configure
qmail
Fast, robust
Simple to configure
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 61
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
3.3.2.1 Sendmail
Development of Sendmail was begun in 1982. Sendmail has a very long history of
use. However, many security holes have been discovered in Sendmail due to the age
of its design. The software is also considered to be difficult to configure.
3.3.2.2 Postfix
Postfix was developed as a new generation MTA that retains compatibility with
Sendmail. E--mail transfer is simple to configure compared with Sendmail.
3.3.2.3 Qmail
Qmail is widely known for not having security holes. It is also fast. Due to re-
strictions on distributing modified versions of the program, qmail does not strictly
qualify as Free/Open--Source Software.
55
Servers
Mailman
Web-based list administration
Implemented in Python
E-mail archiving
QuickML
A list created just by sending an e-mail
Implemented in Ruby
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 62
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
3.3.3.1 Mailman
Mailman is a mailing list server written in Python. The software comes with Web
based list administration interface that can be used to manage list from a Web
browser. Features of the software include archiving for reading mailing list traffic.
Mailman also comes with spam mail filtering and file attachment filtering to reduce
traffic.
3.3.3.2 QuickML
QuickML simplifies the process of creating mailing lists. QuickML is implemented
in Ruby. Features of the program include the ability to create a mailing list simply
by sending an e--mail message that contains essential list information. QuickML
automatically deletes mailing lists if there is no list activity after a certain period.
56
Major FOSS and Distributions
POP3/IMAP Servers
qpopper
Qualcomms extension of Berkeley popper
UW-IMAP
Developed by authors of RFC about IMAP
reference implementation
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 63
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
3.3.4.1 Qpopper
Qpopper from Qualcomm is an extension of popper, the POP3 server developed at
UC Berkeley. Features of Qpopper include support for APOP, which uses encrypted
passwords for user authentication. APOP addresses an issue under conventional
POP3 service, in which passwords for user authentication are transmitted in plain
text.
3.3.4.2 UW--IMAP
UW--IMAP is an IMAP server developed by the University of Washington. With
IMAP, all management of e--mail is performed on the server side. With POP3
systems, each users manage incoming e--mail on the client side.
57
Servers
PostgreSQL
Based on POSTGRES (previously Ingres) developed at
UC Berkeley
MySQL
Developed by Swedish company MySQL AB
Firebird
Free/Open-Source version of InterBase from Borland;
released in 2000
3.3.5.1 PostgreSQL
PostgreSQL is based on Ingres, originally developed at UC Berkeley. Ingres later
became POSTGRES95 before gaining popularity as PostgreSQL. PostgreSQL offers
fast database performance and excellent code quality. The PostgreSQL project also
provides its own specialized indent tool for reformatting source code. These features
make PostgreSQL an excellent FOSS.
3.3.5.2 MySQL
MySQL was developed by Swedish company MySQL AB. The software is released
under a dual--licensing format and uses the GNU General Public License (GPL) for
the FOSS release. A commercial license is available for users who wish to modi-
fy MySQL or redistribute MySQL with derivative work but without releasing the
modified or derivative source code.
MySQL has a larger worldwide user base than PostgreSQL. MySQL is frequently
used for the database end of Free/Open--Source Web applications, such as for LAMP
systems.
3.3.5.3 Firebird
Firebird is the FOSS version of InterBase from Borland Software Corporation. Fire-
bird was released in 2000. Firebird should not be confused with Firefox, a Web
browser.
58
Major FOSS and Distributions
dress. http://www.isi.edu/~bmanning/in-addr-versions.html
WebDAV
File sharing and version management specification
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 66
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
3.3.7.1 Samba
MS--Windows networking uses the SMB (Server Message Block) protocol to imple-
ment file and printer sharing. Samba software implements SMB services on Unix,
behaving just like a Windows server.
59
Servers
3.3.7.2 WebDAV
The WebDAV specification implements file sharing and version administration by
extending the HTTP protocol used for the World Wide Web. DAV stands for
Distributed Authoring and Versioning. A WebDAV server can be implemented in
Apache by adding an extension module. WebDAV is also supported by Subversion
and other version control tools.
Examples of directory services include Ac- Central management of user data, etc.
University of Michigan.
ous e--mail. Search systems for desktops Full-text search system in Japanese
Features
have recently drawn interest as one of the Builds index in advance for fast searching
noteworthy technologies. Google Desktop Functions as a WWW full-text search system when used
as CGI
60
Major FOSS and Distributions
Shift to independent
development structure in
61
Servers
3.3.11.1 E--learning
Many FOSS application servers are being proposed for e--learning. Examples of
FOSS e--learning software include Moodle, Atutor, FOSS LMS and CFIVE.
3.3.11.2 E--commerce
OsCommerce is the leading e--commerce application in the FOSS field.
62
Major FOSS and Distributions
CG (Computer Graphics)
Audio, music
Mail and web browser
This operation can be based on graphical MUA (Mail User Agent) Others
Web browser Computation, science
or character user interfaces. This section Document processor
and technology
Office suites
Printing
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 71
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
environment, a mouse is used to point to De facto standard graphics environment for Unix
components such as icons, menus and but- Core development shifted to XFree86 Project, then to
X.Org Foundation
Window Manager
Software to control window size, positioning, overlap,
etc.
63
Desktop Environment
Integrated desktop
environment based on Qt
use of this feature. An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 73
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
64
Major FOSS and Distributions
Evolution
Thunderbird
Wanderlust
Text-based MUAs
Mutt
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 74
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Integrates different
Firefox
browser. Today these compontents are pur- Web browser from
Mozilla project;
lynx
65
Desktop Environment
3.4.5 Editors
An editor is software used to efficiently create text documents. An editor program is
specifically designed to edit a document without a document structure or character
attributes, unlike a document that is han-
dled by a word processor. Popular FOSS Editors
editors include Emacs, vi and derivatives
GNU Emacs
Vi clones
Based on vi created by
Bill Joy
Various vi-compatible
installations exist today
nvi
elvis, etc.
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 76
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
66
Major FOSS and Distributions
for practical use and can be used today Acquired and now
maintained by Sun
OOo Impress presentation tool
Suns strategy
67
Desktop Environment
3.4.7 Typesetting
Typesetting is a process in which style is applied to structured document, such
as one with chapters, sections and paragraphs. Typesetting is used to determine
the layout for publishing, by adjusting el-
ements such as line spacing, indentation Typesetting
and chart placement. A standard word
What is typesetting software?
processor uses a WYSIWYG (What You Uses commands to apply a style to a structured
document; used for publishing
See Is What You Get) approach to match Not WYSIWYG (What You See Is What You Get), but
produces high quality output
to output. In contrast, standard typeset- LaTeX : Extension of TeX created by Leslie Lamport
Features
ting software dispenses with a WYSIWYG Strict concept of style, produces high quality output
approach. Instead, a document entered Highly extensible (various extensions are available)
or LaTeX--commands. GhostScript
Renders PostScript (PS) files
5. Print document.
Related FOSS tools include GhostScript and xpdf software, which are both widely
used. GhostScript is used for viewing PS files on user’s screen. Xpdf is a PDF file
viewer.
68
Major FOSS and Distributions
3.4.8 Printing
Printing systems are closely related to the
printer driver. Printer manufacturers rarely Printing
provided drivers for GNU/Linux and oth-
LPRng
Consequently, printing is considered a weak- Provides security and incorporates modern features,
but retains customary interface
ing the LPR protocol. LPRng (LPR new Lack of common GUI
generation) and CUPS (Common Unix Print- OpenPrinting project under development by Free
Standards Group
ImageMagick
Set of command-line tools
for image processing
69
Desktop Environment
3.4.9.1 GIMP
GIMP, which stands for GNU Image Manipulation Program, is a photo retouching
program comparable to Adobe Photoshop. GIMP can be used to retouch photos,
but also provides various features necessary for image manipulation.
3.4.9.2 ImageMagick
The ImageMagick package is a collection of tools for image processing. A command
set is used to perform various tasks such converting image data formats (convert)
or obtaining information about image data (identify). Other commands are used to
combine image data (composite or montage), display images and animations (display
and animate) or capture screen--shots (import).
Open Inventor
VRML rendering library
70
Major FOSS and Distributions
3.4.11 Video
Today’s desktop environments are capable of simultaneously processing enormous
volumes of data, due to developments that allow computers with powerful CPUs
to be used exclusively for desktop environ-
ments. Digitized video data is an example Video
of common data that can require vast vol-
xanime, mtv, plaympeg
umes of data when displayed in its digital First wave of video players
MPlayer, Xine
XawTV, tvtime
TV viewing software relying on TV capture device
Kino, Coriander
Saves video from FireWire (IEEE 1394) cameras
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 83
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
71
Desktop Environment
Another example is the MP3 encoder LAME, Audio file and CD player
which stands for Lame Ain’t an MP3 En- LAME (Lame Ain't an MP3 Encoder)
MP3 encoder
desktop music creation and the Timidity Designed to replace other compression formats having
many rights issues
SciLab, Octave
Maxima
Comparable to Mathematica
MATLAB used for science and technology Capable of high quality
formula display when used
Graph drawn in gnuplot
72
Major FOSS and Distributions
opment since 2000. However, these engines Kana-kanji conversion software developed by NEC
Kana--kanji conversion used to lack a stan- Issues with kana-kanji conversion were
No standard common framework
dardized common framework, even though Candidates: XIM, IIMF and UIM protocols
Currently the SCIM project has a wide Goal: provide common framework
Chinese, Japanese, Korean and many Eu- currently supports more than 30 languages
73
Development Environments
development frameworks are also covered. Various programming languages are provided as FOSS
Development frameworks
Struts is quoted as a typical example of a framework
which can improve development efficiency and
average quality of products
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 88
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
3.5.1 Languages
A diverse range of programming languages are available as FOSS.
Developing Languages
Python
Perl
Features block designation
Strong text processing using indentation
3.5.1.1 Compilers
GCC, which stands for the GNU Compiler Collection, is the quintessential and
standard compiler for FOSS development. The name originally stood for GNU C
Compiler, but the software was later extended to compile various other languages
such as C++, Objective--C, FORTRAN and Java.
74
Major FOSS and Distributions
Although implemented in Java, Eclipse has Supports languages other than Java
plug--ins for C and C++ development that C/C++ Development Toolkit (CDT)
Other IDE
75
Major GNU/Linux Distributions
individual ideas. The downside of a devel- Implements basic framework for data I/O, error
handling, screen transitions, etc.
cult to implement features if they are even Difficult to implement features outside of framework
Struts is a Java--based Web application frame- Uses Java servlet and JSP technology
work for processing Java servlets and Java Simple and powerful framework
Focus: desktop
KNOPPIX
Bootable from CD
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 92
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
76
Major FOSS and Distributions
a software environment. This environment Standard applications do not run on Linux kernel alone
must come with a complete set of tools in- Also requires application software
Managing the installation of a system can Boot method (hard drive, CD or floppy)
77
Major GNU/Linux Distributions
The Fedora Core distribution is the de- From Red Hat, the largest GNU/Linux distributor
velopment version of Red Hat Enterprise Development of free Red Hat Linux stopped in 2003
advanced features, which are aggressively Also serves as Red Hats test version
adopted in its development. Major version Some conflicts with existing software
3.6.3 Turbolinux
The Turbolinux distribution is developed by Japanese company Turbolinux, Inc. Ac-
cording to a survey conducted in 2003, Turbolinux ranked No. 2 in market share for
GNU/Linux server operating systems in
Japan, and have the biggest market share Turbolinux
in China.
Developed and marketed by Japanese company
The company has lately focused on distri- Enhanced with Windows-like GUI
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 95
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
78
Major FOSS and Distributions
Linux kernel 2.6 and also took the lead in OpenSuse: contains only FOSS
ment. Like SUSE Linux, core development First enterprise GNU/Linux distribution to use Linux
kernel 2.6
mercial version of Vine Linux is available with additional fonts and kana-kanji conversion
Features
from Vine Caves, Ltd. The commercial Japanese language environment is easy to use
Emphasis on stability
79
Major GNU/Linux Distributions
and Free Software that is robust enough Debian Project also develops other free operating
systems outside of GNU/Linux
for practical use. Since the Debian Project Encompasses nearly 1,000 developers
Features
was created more than ten years ago, it has Uses apt and deb package managers
3.6.7 KNOPPIX
Knoppix is a CD--booting GNU/Linux operating system based on Debian. The
distribution was developed by Klaus Knopper of Germany. Knoppix became pop-
ular in Japan after the Japanese version
of Knoppix was created by the Japanese KNOPPIX
National Institute of Advanced Industrial
Developed by Klaus Knopper
ing capability, which makes it easy for users Easy to try out; does not affect existing environment
80
Major FOSS and Distributions
3.6.8 Ubuntu
Ubuntu is a distribution based on Debian GNU/Linux and backed by the company
Canonical. Its main goal is to improve usability for mainstream users, e.g. smooth
desktop experience, device support, plug
& play. Ubuntu
Based on Debian
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 100
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
· What kinds of support does GNU/Linux development receive from big compa-
nies?
· What are the highest priority goals for FreeBSD, NetBSD, and OpenBSD?
81
Chapter Review
· What is the main difference between Server software and desktop environments?
· What is the different approach to image processing taken by GIMP and Image
Magick?
· What are regional hot--spots of Red Hat, Turbolinux, and SUSE Linux?
82
Philosophy and History of Free/Open--Source Software
The philosophy of FOSS is also reflected Looking round the evolutionary process of FOSS from
Birth of Hackers to current situations where FOSS is
in the definition of FOSS and its licens- widely spread in enterprise market
Definition of FOSS
es. This chapter examines the history of Use the term FOSS correctly by knowing strict
definition of Open Source Software
In the nineties, the Open Source Initiative Free software Growth of FOSS, and
movement and FSF Launch of OSI
defined the term “Open Source.” Entering Free software as freedom Market share of FOSS
of software has enhanced for
Penetrating the
enterprise backbone systems. Fundamental structure to
keep freedom of software enterprise market
Many major computer
Spread of the Internet vendors join the FOSS
Free software played an enterprise market
important role
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 102
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
83
History of Free/Open--Source Software
that era were slow and had limited mem- to describe a person
who writes good
thefreedictionary.com)
Originally, a quick job that
with good programs and new algorithms. Hacker culture is a To bear emotionally or
physically.
type of gifting culture
84
Philosophy and History of Free/Open--Source Software
the Free Software movement, which was Free Software Foundation (FSF) (1984)
Founder: Richard Stallman
man’s goal was to create a world where GPL Version 2 released (1991)
its citizens could live with Free Software An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 104
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
85
History of Free/Open--Source Software
4.1.3 Copy--left
The notion of copy--left is essential to understanding the concept of Free Software.
Copy--left stipulates the freedom of a program, and the freedom of modified or
extended program versions.
Copy--left protects the freedom of software Copyleft
from copyright a mechanism that limits
Copyleft
the use of software (work) written by an- Stipulates freedom of program and freedom of
modified or extended versions
other person. Copyright cannot maintain Protects freedom of software from copyright
Does not abandon copyright
the freedom of software. Copy--left, on the Manages copyright and ensures freedom of license
other hand, ensures freedom of software by e.g. Japanese or German law, preventing notion of public
domain software
86
Philosophy and History of Free/Open--Source Software
institutes worldwide. The development of NSFNET branched off from ARPANET (1986)
Network for research community
NSFNET led to greater interaction between Linked computers at research institutes worldwide
Free Software for e--mail (Sendmail), DNS Internet opened to commercial interests (1991)
(BIND) and newsgroups (INN) was devel- Impetus for Internet boom
cations. Linux is licensed under GPL and Free Software success story
87
History of Free/Open--Source Software
emphasis on the “freedom” aspect. For Founded by Eric Raymond and Bruce Perens
Open Source, the emphasis is placed on the Release of Netscape source code impetus for founding
OSI
Open Source Initiative (OSI) was later es- Prescribed under the Open Source Definition
88
Philosophy and History of Free/Open--Source Software
Open Source is a proper noun defined by OSI. The term was created with two ideas
in mind: the release of source code as in Linux and Netscape, and the use of a
software development model in which a worldwide developer base contributes to
development over the Internet. The definition of Open Source is prescribed in the
Open Source Definition.
Wider recognition of Open Source has also led to greater misuse and misunderstand-
ing of the term. Open Source is sometimes used as a common noun, leading to the
mistaken notion that releasing source code (and making it open) equates to Open
Source.
The Open Source Definition also encompasses Free Software under its definition of
Open Source Software. However, some developers who wish to emphasize the “free-
dom” in Free Software object to the use of this blanket definition. New terms are be-
ing considered that are separate from both Free Software and Open Source Software.
In Europe, the phrases Free/Open--Source Software (FOSS) and Free/Libre/Open
Source Software (FLOSS) are widely used.
who recognized the low cost of FOSS but Open Source Development Labs (OSDL) founded
antees that the software would run prop- Linus Torvalds joins OSDL (2003)
The Linux operating system kernel was de- Development to extend functionality of enterprise
GNU/Linux
veloped with Linus Torvalds playing a cen- GNU/Linux deployment spreads to enterprise
backbone systems and financial institution
89
Definition of “Free/Open--Source Software”
software without charge. This section ex- does NOT equal to FOSS
Insufficient, if ONLY publishing its source code
OSI's definition
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 110
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
users of the software: Software with the freedom to run, copy, distribute,
study, change and improve the software
· The freedom to run the program, for The freedom to study how the program works, and
adapt it to your needs.
90
Philosophy and History of Free/Open--Source Software
Copyleft is the abstract expression of the four kinds of freedom described in the
GNU definition. The GNU General Public License (GPL) expresses the four kinds
of freedom as a concrete license.
The “free” in Free Software is often misunderstood to mean free of charge, which
perpetuates the mistaken notion that Free Software must be distributed without
charge. Free Software may be distributed for a charge as long as it satisfies the four
kinds of freedom. However, although the original program can be distributed for a
charge, copies of the original program must be freely distributable. Consequently,
distributing Free Software alone for a charge fails to work as an actual business. As
a business, the software must be bundled with another component such as support
services.
Not all Free Software asserts the notion of copy--left. Software of this type uses a
license that permits users to add their own restrictions on the freedom to redistribute
and modify the software. The license for X Window System is one such example.
FSF and GNU do not endorse these licenses, since they do not ensure the freedom
of modified versions of Free Software.
Derived Works
License Must Be
Technology-Neutral
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 112
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
7. Distribution of License
91
Free/Open--Source Software Licenses
OSD is based on the Debian Free Software Guidelines (DFSG). OSD removes De-
bian--specific references and emphasizes criteria related to distribution. As of 2005,
OSI has approved over 50 licenses as Open Source licenses. The GPL license for
Free Software also meets the criteria of OSD, so it is possible to view Free Software
as a type of Open Source Software.
Software licenses
To begin with, what is a software license?
BSD
OSI-approved licenses
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 113
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
92
Philosophy and History of Free/Open--Source Software
ware and the value it equates to. For ex- Right to use software is generally purchased
tered into the contract when the shrink-- Appears first time application is started
93
Free/Open--Source Software Licenses
must be accompanied by the source code GPL (GNU General Public License)
and must be distributed under the GPL. A GNU Public License (GPL)
cation beyond libraries, and because FSF GNU Lesser General Public License (LPGL)
did not officially endorse the use of LGPL. Features of LGPL (derivative licenses)
Derivatives based on modified source code must also
requiring derivatives based on modified source No clear line between derivative and non-derivative work,
depending on extent of linking
code to conform to LGPL (or GPL). The clearly defined and software module split off
major difference in LGPL is that it places LGPL a departure from GNU ideals
94
Philosophy and History of Free/Open--Source Software
need not be licensed as LGPL if it uses LGPL’ed libraries in the prescribed way.
However, the definition of “dynamic link” and the distinction between derivative
and non--derivative work are somewhat unclear. GNU, which prescribes LGPL,
takes the view that a work is not a derivative if the interface is clearly defined and
the software module is split off.
LGPL permits the existence of non--free software and therefore departs from GNU
ideals. In actual practice, LGPL is widely used for libraries. This is due to the
stipulations of GPL, which requires software using GPL’ed libraries to also conform
to GPL. Using GPL for a library could discourage the many developers outside
of the Free Software development community from using the library. LGPL is a
strategic product necessitated by the gap between GNU ideals and reality.
ious BSD advertising clause that said, “All BSD ... Berkeley Software Distribution
95
Free/Open--Source Software Licenses
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 119
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
96
Philosophy and History of Free/Open--Source Software
OSD and is only to be displayed for soft- Only to be displayed for software suitably distributed
according to OSI-approved license
GPL-like licenses
MPL-like licenses
is considerable debate about the existence MPL, LGPL, CPL, Artistic License
BSD-like licenses
· What was the attitude taken towards software during the early years of electronic
computers?
· What is the specific development model that was made famous by the develop-
ment of Linux? What are its key attributes?
97
Chapter Review
· What are the criteria used by the Open Source Definition for a software to be
Open Source?
· When you purchase proprietary software, what is it that you actually pay for?
· Explain what the GPL requires for modification, usage, and distribution of
GPL’ed software.
· Both (modified) BSD and GPL give certain freedoms to others. Discuss the
difference in the philosophy and degree of freedom. Which of the two would you
consider “more free”? Give reasons.
98
FOSS Development and FOSS Community
How to participate in
FLOSS survey: FOSS
developers on-line
survey, conducted from
that exist and describes some of the major Japan FOSS promotion forum's working group made a
detailed comment on FOSS distribution from
User communities
Growth of mutual support culture due to a lack of
vendor support
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 122
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
99
Free/Open--Source Software and the FOSS Community
whose members include over ten leading Findings of Support Infrastructure Working Group
Contents of report
describes GNU/Linux distributions and the GNU/Linux distributions: Main FOSS distribution route to
users
distribution business. The document also Summary and major points to consider for FOSS
deployment
explores the topic of user participation and Member corporations of Support Infrastructure WG:
NEC, NTT Comware, NTT Data, OSDL, NS Solutions,
Turbolinux, Nihon Unisys, Novell, Nomura Research
examines the respective roles of the devel- Institute, Hitachi, Fujitsu, Miracle Linux, Red Hat
2. support from the development community assuming that the community will
act out of its own responsibility.
100
FOSS Development and FOSS Community
Developer communities
Communities formed around developer groups
User communities
User communities formed for each application
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 124
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
101
Development Structure
dominated by major FOSS user groups. ja: Japan: OpenOffice.org Japan Users Group
The rest of the search reveals numerous Japan Zope User Group
cation of the prolific nature of FOSS user Analog, Snort, SELinux, Firebird, etc.
Development resources
Services and businesses that support FOSS
development
Project repositories
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 126
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
102
FOSS Development and FOSS Community
Cathedral model
GNU described as example of cathedral development, predating
Linux
Bazaar model
Linux development used as example of bazaar-style development
103
Development Structure
The number of core members often ranges Core members: Authority to change source code
individuals, sometimes exceeding 100 indi- Testers (advanced users): Test software and report bugs for
each release
viduals in some projects. Document authors: Create documents for general users and
developers
as project members. Regular developers Evangelism, PR (mailing list and/or Web site management)
are often FOSS users who provide feedback Supporters for offline activities
SourceForge.net
Rpmfind.net, others
104
FOSS Development and FOSS Community
5.2.4 SourceForge.net
SourceForge.net is a project repository op-
erated by OSTG, Inc., also known as the SourceForge.net
Open Source Technology Group. The site
Operated by OSTG,
Services
of its kind. SourceForge.net offers a di- Project Web site hosting
CVS repository
verse range of services including project Bug tracking system
Communication tools
105
Development Structure
the functions you want. However, the soft- Number of projects available online is nearly unlimited
ware may not necessarily meet all your needs, Debug or extend functionality of software
If you find a function that doesnt work or is missing
or there may be defects in the software. Take full advantage of released source code
106
FOSS Development and FOSS Community
To begin with, it is important to take an Important to provide objective data when reporting bugs
Reproducibility
objective stance when reporting about how Configuration, what you were doing, and what happened
software runs or describing problems with Code you contribute is not just for you
Observe certain courtesies
Include a description
the software you want to use, but if you Never send just your code (worst thing you can do)
107
Topics Related to FOSS Development
ternet, enabling round--the--clock develop- Requires proper assignment of roles based on contributions
to development
ment using various tools for communica- Share source code through the Internet
SourceForge.net lists 1,000,000 developers and 100,000
are required to ensure the smooth running Does not ensure quick completion
as well as the pros and cons of FOSS de- Some similarities are there between agile
development and FOSS development
Project forks
There might be cases that project is divided by two
opposing points of view about its direction
development
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 136
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
108
FOSS Development and FOSS Community
2. Small Releases
Continually plan in small units
4. Simple Design
5. Testing
Use metaphors for ease of understanding
7. Pair Programming
Actively review code
11.Whole Customer (originally: On-site Customer) Incorporate users into the team
3. Metaphor
4. Simple Design
5. Testing
7. Pair Programming
9. Continuous Integration
Four of the 12 practices are also emphasized in FOSS development, and are common-
ly practiced under agile development. These common practices are Small Releases
(no. 2), Collective Code Ownership (no. 8), Continuous Integration (no. 9) and
Coding Standards (no. 12).
In XP, Small Releases (no. 2) refers to short release cycles, while Collective Code
Ownership (no. 8) ensures that source code is accessible to every programmer. Con-
tinuous Integration (no. 9) means to continually test and keep the software running,
and Coding Standards (no. 12) means to program out of respect for coding con-
ventions. The following practices of XP are not entirely compatible with FOSS
109
Topics Related to FOSS Development
development: Planning Game (no. 1), Pair Programming (no. 7) and Sustainable
Pace (no. 10).
stable versions and development versions, Policy of fast and frequent releases
tive users. Under this system, bazaar mod- Addition of new features
110
FOSS Development and FOSS Community
ment of the software. This happened with Emacs -> Mule -> Emacs
GNU Emacs, which incorporated Mule (MUL- FOSS helps to maintain sustainability of
tilingual Enhancement to GNU Emacs) af- development but also allows project forks to occur
ter a branch and a subsequent period of x-1.0 x-1.1 x-1.2 x-1.3 x-2.0
y-1.0
x-2.1
y-1.1
111
Topics Related to FOSS Development
Unix technology without modification. The on low cost hardware (PC-compatible machines)
er software assets can also be used. Image processing, multimedia, science and technology
computing, etc.
The shortage of FOSS engineers is an indi- Support issue highly dependent on technical capabilities of user
company
both among user enterprises and for devel- Knowledge of how to collaborate with development community
still to come
112
FOSS Development and FOSS Community
the shift from volunteer--based development to business that best capitalizes on the
situation.
Lack of FOSS development experience is somewhat unavoidable due to FOSS devel-
opment model still being in its early stages. The situation is also due to the lack of
a clear method for collaboration between start--up companies and the development
community, which is still being worked out today. Certain issues relating to support
services need to be resolved at the present time, such as the issue of avoiding patent
infringement and finding a balance for securing intellectual property rights. These
issues are explored in later chapters.
5.4 Communication
FOSS software development revolves around developers. Consequently, communica-
tion between developers plays an extremely critical role in development. This sec-
tion explores the various methods of online
communication used by developers, and the Communication
pros and cons of each communication method.
Who develops software?
Off-line communication
Importance of off-line communication
Participating in conferences
Communicate actively via off-line meeting
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 142
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
113
Communication
provided for developers and users, and can E-mail exchange between developers
lists devoted to discussion of specific top- Message board on project Web site
Discussion tends to
board
This makes them unsuitable for in--depth IRC and other
discussion
114
FOSS Development and FOSS Community
Non-verbal communication
issues. Online communication involves many Difference between written and spoken words
unique expressions that subtly blend spo- Could be that social gatherings are most
important
ken and written language, using unique styles An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 145
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Germany, and the Ottawa Linux Sympo- Libre Software Meeting/ Rencontres Mondiales du
Logiciel Libre (France)
FOSS conferences such as Debian confer- Many others such as DebConf, BSDCon, etc.
Participating in conferences and actively Build personal network, exchange information, etc.
115
FOSS Developers
ferences can also provide you with new knowledge through mutual information shar-
ing between developers and users. Furthermore, conferences can provide excellent
opportunities to engage in offline communication that can open up new possibilities.
well their reasons for getting involved in Developer background and Involvement
When FOSS developers get involved in their
FOSS development. The survey also ex- development?
Compensation
Do they receive money in return for their work?
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 147
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
116
FOSS Development and FOSS Community
JP Survey was carried out using question- Provides insight into conditions of FOSS developers
naires prepared in Japanese. The FLOSS-- Free/Libre/Open Source Software online survey
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 148
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
The FLOSS--JP Survey was conducted during a two--month period from Septem-
ber 1 to November 1, 2003, receiving a total of 547 valid responses. The sur-
vey includes questions about the level of
involvement in OSS and Free Software de- Free/Libre/Open Source Software
Japanese Developers Online Survey
velopment, and the initial impetus for get-
FLOSS-JP Survey
ting involved. Other questions provide in- Survey aimed squarely at FOSS developers
sight into developers’ personal views on Period: September 1, 2003 to November 1, 2003
receive compensation or sponsorship for their FOSS/FS experience, level of involvement, personal profile
development activities. Questions used in Income from FOSS/Free Software development, sponsorship
income, etc.
the FLOSS--JP Survey were designed to For more about the survey, visit the URL below:
117
FOSS Developers
master’s degree. Many of the respondents Many software engineers, programmers, students and
university instructors
118
FOSS Development and FOSS Community
question on a mailing list, and reporting a Released program I wrote myself: 36.5%
bug. Those who cite releasing their own Exchanged e-mail with author: 10.7%
The reasons for staying involved was posed Share knowledge and skills: 48.9%
the respondent’s own reasons and his or Realize new idea for software: 22.5%
Two-part question
119
FOSS Developers
agement and user support are each cited Write bug fixes: 36.0%
Packaging: 12.5%
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 153
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
tional level, only 16.1% indicate that they Mainly active in global community: 16.1%
Almost 70% of developers feel that their Depends on enthusiasm and patience
120
FOSS Development and FOSS Community
5.5.8 Compensation
Just 26.8% of developers in the FLOSS--JP Survey indicate that they receive direct
income from FOSS--related activities, with less than half indicating that they have
profited indirectly from their FOSS activi-
ties. 9.6% of developers indicate that they Compensation
were hired or found a new job because of
Only 26.8% of developers receive direct income
data indicates that social recognition of Hired or found new job due to FOSS development
experience: 9.6%
· What are the characteristics of cathedral--style development? What are the char-
acteristics of bazaar--style development?
· Describe the different roles that FOSS project members can take on.
· What are the kinds of development resources that FOSS project need?
· Explain the steps that typically make up the process of getting involved in FOSS.
· What are important ways of conduct when getting involved in FOSS develop-
ment?
121
Chapter Review
· What are the most frequently used communications tools used among FOSS
developers?
· Compare the main communications tools used in FOSS development. What are
their pros and cons?
· How did FOSS developers typically get involved in FOSS development in the
past?
122
FOSS Business
6 FOSS Business
This and the next chapters address the topics of business using FOSS. In this chap-
ter, the reasons for the recent interest in FOSS business are explored, describing
how the technology environment related
to software and society has changed. The (6) FOSS Business
nature of the software business has also
Reasons for interest in Entry of Major
dors. systems
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 156
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
shift in the software business from a pack- Enormous improvement of S/W, H/W and highly
sophisticated network infrastructure (wide use of the
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 157
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
123
Reasons for Interest in FOSS Business
correct as CPU computing speeds acceler- Trend in technology development shifting to parallel and
distributed computing
Multimedia technology
Spread of Internet
issues with power consumption and heat broadband (ADSL) connectivity
124
FOSS Business
Application development
Rapid obsolescence
business. For example, software and data What kind of business model is best?
have become quite prominent in recent years. Does not concern with its implementation
The ASP model does not concern with its Other service-based businesses
Customization
cost services.
Other service--based businesses include cus- An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 160
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
125
Factors Driving FOSS Business
Embedded systems
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 161
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
for file sharing and client--server systems. File sharing, client-server systems
This development was driven by the spread Servers for backbone systems
of Intranets that use Internet technology High reliability servers for large-scale tasks
to deploy LANs within organizations. GNU/Linux Studies by OSDLs Carrier Grade Linux (CGL) working
group, etc.
126
FOSS Business
Beyond servers, GNU/Linux is suitable for Many issues to clear before spread of GNU/Linux in Asia
Embedded GNU/Linux
science and technology computing such as Dedicated devices for specialized applications: hard disk
127
Factors Driving FOSS Business
500
Support
160
210
94
120
130
80
100
63
55
110
90
2003 2004
55
2005
70
2006 2007
ware platform sales. An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved.
Source: NEC Corporation
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
164
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
The Japanese market for GNU/Linux business is expected to show steady growth,
reflecting a similar pattern of projected growth for the global GNU/Linux market.
GNU/Linux Environments
(World)
Thousands of
Forecast for Growth of Linux Environments Worldwide
deployments
4500
4000
3500 non-paid
paid
3000 1816
1689
1564
2500 1448
1353
2000 1300
1281
1500 1270
1132
2133
1000 1863
2012
1709
1554
1363
500 1091
863
712
0
2004 2005 2006 2007 2008 2009 2010 2011 2012
Source: IDC, April 2008
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 165
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
128
FOSS Business
Java-based systems
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 166
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
their low cost and stability. The low cost Where are FOSS systems used?
other reasons cited for adopting FOSS sys- Reasons for adopting FOSS systems
Low cost: 65%
Security: 30%
129
Types of Systems Development Using FOSS
database. PHP is frequently used as a LAMP stands for Linux, Apache, MySQL, PHP
scripting language due to its high affini- GNU/Linux OS + Apache Web server +
database + PHP script language
PostgreSQL
ty with HTML, but other script languages LAPP stands for Linux, Apache, PostgreSQL, PHP
ically use a FOSS servlet engine such as Side benefit of using Java: reduced OS dependency
System configuration
Tomcat in place of a commercial one. Since GNU/Linux + Apache + Tomcat
Java deployment also reduces platform de- Used to implement systems comparable to LAMP systems
Large-scale systems
low cost systems based on the GNU/Linux Frequently rely on commercial components to implement
complex business logic
130
FOSS Business
complex business logic still rely largely on commercial components. This is one field
that has yet to be addressed by FOSS implementations.
ous features. These extension modules can Various modules can be used to provide diverse services
be combined to implement diverse services. Work group server: Combination of standalone FOSS
servers provides adequate service level
are implemented to provide new services. inspection frequently reveals LAMP or LAPP system
underneath
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 171
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
131
Entry of Major Vendors into FOSS Business
frame business. Major computer vendors Mainframes -> Open systems (client-server) -> Web
lately turned to Web computing for their IBM's on-demand computing, Sun's utility computing
primary business, which makes extensive Compete through services, not infrastructure or packages
Looking even further ahead, major com- anticipation of transformation into services company
132
FOSS Business
However, GNU/Linux cannot be owned by IBM correctly predicted that GNU/Linux would
steadily gain popularity
a specific company due to its status as FOSS. However, GNU/Linux cannot be owned by any
company
Under normal circumstances, a company Fear that IBM might lose its advantage
can acquire technology by buying out the Prevent GNU/Linux from going in its own direction
egy does not work for FOSS. Consequently, An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 173
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
133
Chapter Review
sequently, Japanese computer makers are Shift from domestic Unix to overseas Unix
and maintain operating systems for their With GNU/Linux, core technology can be
maintained with just 100 engineers
own Unix workstations. Maintenance and Japanese computer manufacturers joined OSDL Japan
in 2001
development of a single operating system As FOSS, GNU/Linux offers low risk of direct influence
from other companies
is typically estimated to require anywhere With backs to wall, no choice but to bet on GNU/Linux
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 174
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
· Which three reasons are frequently given for FOSS deployment in business?
134
Case Studies in FOSS Business
Types of FOSS
business FOSS specialization
Flagship Package software
System integrator Server sales
NTT Comware, Nihon
Embedded
Unisys, etc.
Embedded
Case studies in large-
development tools
scale development
using FOSS In-house business use
Distributor Education
Business strategy of
distributors
In-house FOSS
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 175
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
support
System integrator Contract development using OSS N TT Comware, NEC Soft, etc.
Distributor Packages sales of Linux with various types of OSS, Red Hat, Turbolinux, Miracle Linux,
OSS specialization Specialization in specific OSS; provide support VA Linux Systems Japan, SRA, Zend
services and contract systems development Japan, etc.
Package software Sales of Linux-compatible versions of own package Oracle, NIWS, Horizon Digital
Embedded Custom ization for OSS embedded use; provide MontaVista Software Japan, Lineo
In-house business
use
development tools and support services for fee
Education Provide exams and training courses for OSS LPI-Japan, Red Hat, Linux Training
qualification and certification Institute, etc.
·
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software 176
FOSS specialization
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
· Package software
· Server sales
· Embedded systems
135
Flagship Business (Major Manufacturers)
· Education
The characteristics of each type of FOSS business are explored in the sections that
follow, in the order that they are listed.
IBM, Fujitsu, NEC, Hitachi and HP. These Use FOSS to drive down costs for development of large-scale
systems
in the form of low--cost contract develop- IBM in particular strongly pushing FOSS
Provides FOSS resource site and FOSS information
ment of large--scale systems using FOSS. Supports GNU/Linux through full range of platforms, from IBM PCs to
mainframes and wearable PCs
IBM in particular is strongly pushing FOSS. Reason for market participation by major hardware vendors
136
Case Studies in FOSS Business
integrators is to drive down development Drive down development costs using PC servers and FOSS
costs using a combination of PC servers Enables small- and medium-sized vendors to compete as
principal contractors, but competition increasingly fierce
reduce vendor dependency by using FOSS. up with fast pace of change, etc.
Competition in this segment is becoming Problem: Many engineers only know Windows development
fierce, since FOSS deployment enables small-- Development above LAMP level often requires ground-up
development
and medium--sized vendors to compete for FOSS business applications gradually emerging
137
System Integrators
tra Monkey load balancing software. Ul- Cluster solution for non-stop GNU/Linux servers
tra Monkey software is used for clusters Linux Virtual Server (LVS) load balancing software
Ldirectord for monitoring failures in real servers and removing failed servers
software components including Linux Vir- New markets for GNU/Linux deployment
tual Server (LVS) for load balancing, and Prototype university business system for Waseda University
Developed using GNU/Linux, PostgreSQL, PHP
ldirectord management software for failure Available free of charge to universities across Japan
138
Case Studies in FOSS Business
cia was sponsored by the Japan OSS Fo- Alicia ( Advanced Linux Crash-dump Interactive Analyzer
ing Group, whose aim is to improve the re- Integrates crash and lcrash tools for analyzing Linux kernel crash dumps,
enabling faster dump editing
viding tools for kernel crash analysis. Provide applications using FOSS
CFIVE learning management system for higher education institutions
Before Alicia was developed, crash--dump Co-developed with University of Tokyos Information Technology Center
(ITC)
analysis of the Linux kernel was conducted Implemented using Java, Tomcat4, PostgreSQL, OpenLDAP
139
System Integrators
FOSS Deployment
for Large-Scale Systems
TSUTAYA online
Migrated to GNU/Linux from Sun Solaris OS, resulting
in one-quarter to one-fifth savings in deployment costs
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 181
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
140
Case Studies in FOSS Business
7.4 Distributors
Distributors sell GNU/Linux packages bundled with FOSS and commercial software,
together with other components such as installation support and operations support
services. Distributors manage the depen-
dencies among software packages in their Distributors
distribution, in order to ensure that the
Sell packaged FOSS
software runs efficiently. Distributors al- Manage software to sell on ease of use
so provide added value through other ser- Develop proprietary installers or package managers
vices such as providing automatic software Bundle with commercial software and commercial
resources (fonts, etc.)
age management system. Distributors al- when networks were not as accessible
List of worldwide
ly complete view of current trends in GNU/Linux distributions
Provides various
information about
distributions
Reviews, new release
information
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 183
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
141
In--House FOSS Business
port services and take on contract systems Effectively used by enterprise consortia
Case studies
construction of large--scale software released Network Applied Communication Laboratory (NaCl)
Ten Art-ni
differentiation by the original developer that Garagardoa table reservation system for restaurant
industry
ForeOneFirst
has inside expertise. This segment of FOSS Francine Web POS system
medical fees. ORCA stands for Online Re- receipt computer from Japan Medical
Association (JMA)
Commissioned by JMA Japan Medical
ceipt Computer Advantage. Drives down cost of expensive receipt
computers, by deploying PC servers and FOSS
Association
order
Network
Conventional receipt computers are extreme- JMA proprietary license, resembling GPL
Adoption rate
Center
development
NaCl
ty of data due to separate development Deployed at 1,279 facilities (as of July 2005)
142
Case Studies in FOSS Business
redistribution of modified data that could have an impact on human health, in-
cluding master data on pharmaceuticals and contraindication for concomitant drug
use.
Network Applied Communication Laboratory (NaCl) is the developer of the stan-
dard receipt software for ORCA. The ORCA system was officially launched in March
2002. By July 2005, the system had been deployed at 1,279 facilities. In total, more
than 1,600 medical facilities across Japan are either deploying or considering de-
ployment of ORCA.
ORCA business currently centers on maintenance contracts and some modification of
software. More than 100 system integrators are presently authorized by the Japan
Medical Association to provide IT support services to deploy ORCA at medical
institutions.
The company’s two major systems are Gara- Voluntary non-profit association to promote enterprise
FOSS deployment
Released as FOSS
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 186
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
7.5.2.1 Garagardoa
Garagardoa is a LAPP--based table reservation system for the restaurant industry.
The software was co--developed by Ten Art--ni and New Tokyo Restaurant Co., Ltd.,
which operates over 130 restaurants centering on beer halls. Garagardoa is deployed
at restaurants owned by New Tokyo.
7.5.2.2 Cerveza
Cerveza is an order issuance and acceptance system for the restaurant industry.
The software is also co--developed by Ten Art--ni and New Tokyo. Cerveza is a Web
143
FOSS Specialization
application that uses Java servlets. In addition to being deployed at New Tokyo
restaurants, Cerveza is widely deployed by other corporations. New Cerveza, which
is based on Cerveza, is currently deployed at more than 500 restaurants.
full--featured Web POS system with cash Sought to increase sales as proprietary
product, but product recognition was low
ForeOne- provide
First
register, sales history and product ordering Released by OSCAR Alliance (June 2003)
operation,
ForeOneFirst conducts business by provid- provider of deployment, customization
and support services
maintenance
key factors for success include the ability Key factors to success: Ability to hire top engineers
from community and collaborate with community
to secure top engineers from the commu- Requires engineers with advanced skills
Case studies
nity of the FOSS and successfully collab- VA Linux Systems Japan (Linux kernel, NFS)
SoftAgency (MySQL)
144
Case Studies in FOSS Business
Technologies Ltd. Sendmail, Inc., which specializes in the mail server business, is
another company in the FOSS specialization business.
7.6.1 SRA
SRA is an independent software develop-
ment vendor with a lengthy background SRA, Inc. Japan
in systems development for the Unix plat-
Advantages of independent software
ing many Unix engineers, who can be eas- Staffed by many Unix engineers
not being tied to a specific product. Provides tuning and other support services for
deployment and operations
The company’s FOSS business is focused Implements exams for database certification
its technical capabilities as the original de- Parent company Zend Technologies founded by main
developers of PHP
Script compiler
PHP is a scripting language in which scripts System pairing J2EE with PHP applications
145
FOSS Specialization
Zend Japan also takes on contract development of Web systems using PHP. The
company has built enterprise systems such as a system built with SugarCRM for
customer management, in addition to a system that pairs J2EE with PHP applica-
tions.
veloper of Sylpheed MUA software and con- for GNU/Linux and PostgreSQL-based systems
a FOSS specialist vendor, Good--Day pro- Employs Sylpheed developer and provides financial
backing
vides financial backing for FOSS develop- Directly sponsors FOSS development for Japanese
environments
146
Case Studies in FOSS Business
The package software business offers a clear-- Market established for network, server and storage
management
track record, but offers barriers to new soft- Business opportunity to develop GUI for general users, that
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
works with existing FOSS, etc.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 192
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
future, with GNU/Linux PCs already be- Sales of own hardware pre-installed with GNU/Linux
House-brand PCs
ing sold in Asia as low cost PCs. Toshiba, Outside of servers, other applications include factory
automation, specialized applications, etc.
installed servers are also sold by venture Consumer Electronics Linux Forum (CELF)
firms or marketed as house brand PCs. In Association to study GNU/Linux standards for consumer
electronics from Matsushita (Panasonic), Sony, etc.
Industrial equipment
addition to server applications, GNU/Linux BRAINS: Web camera server system based on NetBSD
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 193
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
147
Embedded Development Tools Business
Embedded FOSS vendors are involved in development and sales of information ap-
pliances, PDAs and mobile phones embedded with FOSS. The Consumer Electronics
Linux Forum (CELF) was formed in July 2003 as an association for the consumer
electronics industry. In addition to information appliances, FOSS is often sold em-
bedded in industrial machinery. One Japanese company in this segment is the
venture firm BRAINS, Inc., which has long developed Web camera server systems
based on NetBSD. In addition to hardware sales, BRAINS also provides system
integration services for deployment of its Web camera servers.
uClinux developers Lineo Solutions, Inc. of development tools and provision of support
services
tions, and Red Hat, Inc., which takes on Red Hat: Contract porting of GNU/Linux
platforms. FOSS
148
Case Studies in FOSS Business
and Google have rapidly grown into major GNU/Linux for servers that demand high
reliability
corporations. amazon.com
Google.com
LiveDoor
tage in business by rapidly deploying own FOSS also useful for rapid deployment of own
services and for modification
services ahead of their competition. This Take full advantage of modifiable source code
Google has also built a fault--tolerant sys- Uses multiple HP GNU/Linux machines
tem that delivers a high return on invest- Supports over 20 million product inquiries per hour
Google
ment (ROI). The system uses a parallel Fault-tolerant system based on low cost IA servers
Google has developed a proprietary failure failure and distribution of data across multiple hard disks
detection system based on Red Hat Lin- Global Work Queue for scheduling queries
149
Proprietary Business Use
system also includes Global Work Queue, an integrated application for scheduling
search queries into batch jobs.
also deploying PostgreSQL and Tomcat. Deploys FOSS extensively for its virtual malls
However, the software lacks all of the func- FOSS deployed based on balance of service and cost
tions of commercial software. Rakuten al- Software lacks some functions of commercial software
miliar with FOSS technology, and a short- Deploys FOSS extensively for its portal sites
150
Case Studies in FOSS Business
mand for textbooks and reference books, Adequate potential for business as number of users
and developers increases
the education business. A number of cer- LPIC, RHCE, Turbo-CE, CNA, ComTIA Linux+
PHP、
tification standards already exist includ- PostgreSQL
151
Chapter Review
groups: network administrators and de- Increasing number of courses for development of Java
application servers
es for network administrators are basically Mostly short courses ranging from few days to 1 or 2 weeks
Schools
designed to complement certification ex- Technical schools: 1-3 year GNU/Linux/FOSS engineer training
programs
ams. Courses for developers of Web sys- Professional graduate schools: Development of advanced FOSS
engineers
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 200
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
152
FOSS Government Policy and E--Government
Trends in Europe
Examples of Germany (Munich), UK, and France
Trends in Asia
Situations regarding FOSS in east and southeast Asia
1. Reduce costs and vendor lock--in: FOSS Reasons for FOSS Promotion by
reduces system building costs for e--gov- National and Local Government
ernment at national and local levels, Reduce costs and vendor lock-in
Efforts to make sense in government procurement
and its independency on a specific ven- through the utilizing the nature of FOSS are expected
4. Overcome the digital divide: FOSS is extremely effective for achieving comput-
erization with limited funds.
153
Reasons for FOSS Promotion by National and Local Governments
to generate and provide public services. There- TCO gap with Windows is small and debatable
fore, it is entirely natural for governments Maintenance of middleware and applications; cost of
administrative engineers
154
FOSS Government Policy and E--Government
FOSS enables the use of many unspecified vendors. By adopting FOSS, govern-
ments can expect lower dependency on specific vendors, resulting in healthy market
competition. This in turn enables governments to procure high quality systems at
a low cost.
the public sector and the difficulty of devel- China cites need to ensure national security as one reason
for promoting FOSS
oping IT experts within IT section. Con- Backdoor mechanisms cannot be hidden with FOSS
155
Reasons for FOSS Promotion by National and Local Governments
For commercial software that is developed in foreign countries, the internal imple-
mentation of software is invisible. This makes it difficult to eliminate the risk of
backdoor mechanisms that could lead to information leakage or intentional system
down--time. These kinds of security holes cannot be hidden under FOSS, which is
beneficial from the standpoint of ensuring national security.
Reliance on foreign software also hinders the development of core technologies for
national defense systems and government backbone systems. This is viewed in
some quarters as increasing the vulnerability to interference from other countries.
Using FOSS enables the domestic software industry to take on development of these
systems, which is necessary to ensuring national security. Although these views
might seem unrealistic, the Chinese government has actually cited the need to ensure
national security as one reason for deploying FOSS.
its increase as the number of software ship- Desire to avoid black boxing of infrastructure technology
late into trade deficits with various coun- China: Announced policy to restrict government procurement to
domestic software
to use FOSS to foster the development of Desire to eliminate subcontractor structure for local IT firms
156
FOSS Government Policy and E--Government
digital equipment. This makes it difficult Digital divide created by gaps in income
for the poor to obtain information and rise Low-income earners cannot obtain digital equipment
basic specifications. It also enables indi- One of the acute problems facing Southeast Asia
ware at no cost. FOSS is extremely effec- FOSS deployment expected to solve this situation
157
Trends in Europe
National governments representing Germany, Promoting FOSS in aspects of lower cost and
interoperability
UK and France
UK: going deeply into FOSS
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 207
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 208
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
158
FOSS Government Policy and E--Government
lion Euros by 2002, up 28% from the pre- Estimates value of FOSS at 12 billion Euro
vious year. The main reason for the EC’s GDP in the EU
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 209
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
1. Interactive public services, accessible for all, and offered on multiple platforms.
159
Trends in Europe
In addition, the EU is funding R&D projects such as the Consortium for Open Source
in the Public Administration (COSPA) and the FLOSSPOLS project. COSPA
conducts demonstration experiments for FOSS desktop deployment by the public
sector. FLOSSPOLS, which stands for Free/Libre/Open--Source Software: Policy
Support, conducts research into Free/Open--Source policy by the government sector.
In May 2004, the EU’s Interchange of Data between Administrations (IDA) Pro-
gramme issued a recommendation to the Organization for the Advancement of
Structured Information Standards, or OASIS. This recommendation calls for the
adoption of OpenOffice.org as the standard format for exchange of office documents
within the government sector.
The role of FOSS as economic factor in the EU has recently been studied under the
“Study on the Economic Impact of Open Source Software on Innovation and the
Competitiveness of the Information and Communication Technologies (ICT) Sector
in the EU”. The study found FOSS to have a strong market penetration particularly
in the public sector Europe is found to be well ahead of the rest of the world.
The total value of all FOSS having some form of quality control is estimated at
around 12 billion Euro (almost 19 billion US$). The amount of code doubles every
18 to 24 months. The Debian project alone with its 220 millionen lines of code
(LOC) accounts for more than 130,000 man years of effort or 2.6 billion Euro (4
billion US$).
The study forcasts FOSS--related services to account for a third of all IT services
and around 4% of the EU’s GDP by 2010. The opportunies for small and medium
size enterprises are expected to counter the current brain--drain towards the US.
8.2.2 Germany
Germany is at the forefront of Free/Open--Source deployment even within Europe.
In Germany, debate today centers on the approach to deploying FOSS, having moved
beyond debate about whether FOSS is to
be adopted. Germany
The situation in Germany is driven by the
Germany at forefront of FOSS deployment
nation’s history as a fertile area for FOSS Debates focused today How to deploy FOSS
Case studies
development. Germany is the base of de- Federal Ministry of Interior signs comprehensive procurement
contract for IBM/SUSE Linux machines (June 2002)
velopment for SUSE Linux (now owned by Enables low cost procurement of GNU/Linux servers
Novell), the world’s second leading GNU/Linux Contains list of replacement software and precautions for FOSS
migration, for desktop through to server environments
distribution, as well as the KDE integrat- Actual FOSS migration increasing at local government level
ed desktop environment. OpenOffice.org, Schwäbisch Hall district migrates 400 machines to GNU/Linux
(2002-2004)
160
FOSS Government Policy and E--Government
Somewhere around 2000, the German Federal Ministry of the Interior evaluated the
feasibility of deploying FOSS for administrative systems. These studies led to a
recommendation to use FOSS. The German government then entered into a com-
prehensive procurement agreement with IBM in June 2002, in an effort to promote
the use of GNU/Linux. Under the agreement, federal and regional governments can
purchase IBM PCs and servers equipped with SUSE Linux at a discounted price.
At the time, the German government cited the following reasons for entering into
the contract:
The German Federal Ministry of the Interior created guidelines in July 2003 for
FOSS migration for the public sector. These guidelines are designed to enable IT
managers in the public sector to determine the economic and technical feasibility
of deploying FOSS. IT managers can choose to continue using existing commercial
software, or use commercial software and FOSS side--by--side. The third option is
to migrate fully to FOSS.
More than 500 institutions in the German government sector are reported to have
started FOSS deployment. The list of adopters includes the German Federal Anti--
Trust Office, Munich municipal government and Federal Ministry of the Interior. In
particular, actual FOSS migration is said to be increasing at the local government
level.
161
Trends in Europe
an across--the--board migration from Win- migration for 14,000 PCs used by 16,000 users (May
2003)
but also for desktops PCs. Microsoft proposal: $36.6 million, later cut to $23.7 million
Soft migration
Emulators also to be
Jun. 2004 -
Aug. 2004
Sep, 2004
Linux migration project ` LiMux' began
project stopped bacause of patent issue
project restarted
used initially
used by the Munich government. The cost (VMWare, etc.)
An Introduction to Free/Open-Source Software
Jan. 2005 trial migration started
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 211
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
162
FOSS Government Policy and E--Government
entitled Open Source Software Use Within FOSS Policy recommends government procurement of
FOSS (July 2002)
UK Government, was later revised in 2004. Office of Government Commerce (OGC) decides to
deploy GNU/Linux for large-scale system (April 2003)
The following key decisions are described OGC issues report on FOSS trials (October 2004)
163
Trends in Europe
2. UK Government will only use products for interoperability that support open
standards and specifications in all future IT developments.
5. Publicly funded R&D projects which aim to produce software outputs shall spec-
ify a proposed software exploitation route at the start of the project. At the
completion of the project, the software shall be exploited either commercially or
within an academic community or as FOSS.
In April 2003, OGC announced plans to deploy GNU/Linux for a new online pro-
curement system to be used by all government departments. The online procurement
system represents the first--ever GNU/Linux deployment for a large--scale backbone
system used by the UK government. The procurement system has been online since
2004. OGC also assists FOSS deployment in other parts of the public sector, such
as helping Powys County Council to integrate OpenLDAP for authorization. Other
projects include the deployment of a FOSS--based document administration system
by the Central Scotland Police.
OGC conducted FOSS trials in 2004 that included desktops used by multiple central
government departments. Sun desktops running GNU/Linux were deployed and
evaluated as practical desktop alternatives. The trials led OGC to conclude that
cost reductions could be anticipated from FOSS deployment. OGC also determined
that there were no major issues in terms of interoperability with existing Windows
environments.
However, the UK government sector overall has not yet to undertake serious deploy-
ment of FOSS, despite taking the neutral stance of studying FOSS as one possible
alternative.
164
FOSS Government Policy and E--Government
8.2.6 France
France, like Germany, is strongly promoting FOSS. Legislation for preferential treat-
ment of FOSS in government procurement was considered as early as 2000, although
it was rejected. The term FOSS is not used
extensively in France. The French use the France
term Logiciel Libre, from the French word
France: Independent approach to FOSS
dom, which has some basis in truth. promote FOSS (July 2002)
165
Trends in the United States
Foundation (NSF) and the Defense Ad- Although US Federal government has No Policy,
actual FOSS adoption are increasing
contributions to FOSS. The Free Software The policy stated that new application should adhere
to open standard and FOSS
movement that led to FOSS was started They have FOSS-based application to be developed
under the new policy
ment lists. Unlike commercial products, FOSS already deployed by 250 government sector institutions
(May 2002)
there has been no active effort to get FOSS PITAC recommends FOSS for supercomputers (September 2000);
MITRE recommends FOSS for Defense Department (October
2002)
products listed for federal procurement. How- FOSS inclusion in government procurement
standards
ever, the real reason for this situation is Defense Department issues memo containing guidelines for
FOSS acquisition (June 2003)
166
FOSS Government Policy and E--Government
167
Trends in the United States
later announced in February 2005 that it would seek to acquire CC--EAL4+, which
is the highest level of certification available for software products.
These efforts were successful in motivating the Department of Defense to issue a
memo in June 2003 detailing guidelines for FOSS acquisition. The development
enables FOSS to compete on the same footing with commercial software for the first
time in government sector procurement.
ed. Legislation that would have simply FOSS deployment, which were rejected or shelved
required equal treatment of FOSS along- Policy later toned down to consider all possible alternatives
proprietary, open source, and public sector code sharing
side commercial software was introduced in determining best value solutions (January 2004)
in 2003 in Oregon and Texas. However, Start of collaborative project to develop FOSS for e-
government, led by Massachusetts State (June 2004)
these proposals were met with strong op- The Government Open Code Collaborative
168
FOSS Government Policy and E--Government
the state’s many legacy systems was also Cost-cutting move necessitated by financial difficulties due to drop
in state tax revenues
a factor. The IT committee later evolved CIO meeting proposes policy to deploy open standards and
Free/Open-Source
into a Massachusetts CIO “Kitchen Cabi- SUSE Linux running in virtual machine on mainframe
net” made up of CIOs from state agencies, GOCC (Government Open Code Collaborative)
Launched in December 2003
which met to prioritize issues faced by the Framework for sharing source code with other state governments
At a CIO meeting in September 2003, an 11 state agencies involved, from eight states
169
Trends in Asia
the Philippines. The first Asia OSS Sym- China, Taiwan and Koria
posium was held in 2003 to promote FOSS between Japan, China and Korea
Southeast Asia
in Asia and is now held every six months Thailand, Malaysia, Philippines and Vietnam
as a regular event.
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 218
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Flag Linux, Yangfan Linux and Qihang Lin- Hosts many FOSS international conferences
South Korea
ux. Red Flag Linux has matured into a Flood of GNU/Linux distributors and ongoing market
realignment
distribution. The distribution is based on South Korean government rapidly deploying FOSS
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 219
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
170
FOSS Government Policy and E--Government
most of these distributions today. The South Korean government is actively intro-
ducing policies for FOSS deployment, such as mandatory consideration for FOSS in
government procurement.
Forum in Seoul in December 2004. The International collaborative project by Japan, China and
ing groups focusing on the following ar- 3rd Forum: Seoul, Korea (December 2004)
ment (WG1), Human Resource Develop- Resource Development (WG2) and Study on Standardization &
Certification (WG3)
171
Trends in Asia
Southeast Asia:
Thailand and Malaysia
Thailand
Leading FOSS nation in Southeast Asia
Malaysia
Promoting FOSS through national government and
various government organizations
8.4.3.1 Thailand
Thailand had a relatively early start in promoting FOSS, compared to other na-
tions in Southeast Asia. The National Electronics and Computer Technology Cen-
ter (NECTEC) is the core national government institution that promotes FOSS.
NECTEC implements projects to develop Thai language support for GNU/Linux
and OpenOffice.org such as Linux Thai Language Extension (TLE). NECTEC is al-
so involved in a wide range of initiatives designed to encourage the spread of FOSS.
These activities include national symposiums and international collaboration with
neighboring countries.
The Thai government announced the ICT PC Project in April 2003. The project
was designed to accelerate IT advancement in Thailand through sales of low cost
PCs preinstalled with GNU/Linux. The initiative, which is now called the People’s
PC Project, has succeeded in propagating the spread of PCs through sales of 100,000
machines. The program has also had a major impact in terms of driving down the
cost of hardware and related software in Thailand.
8.4.3.2 Malaysia
Malaysia is also active in implementing government policies to promote FOSS, cen-
tering on the national government and various government organizations. Lead-
ing organizations that promote FOSS include the Malaysian Institute of Microelec-
tronic Systems (MIMOS). MIMOS has established the Asian Open Source Center
(ASIAOSC). Also prominent in promoting FOSS is the Malaysian Administrative
Modernization and Management Planning Unit (MAMPU). MAMPU announced a
172
FOSS Government Policy and E--Government
Public Sector Open Source Master Plan in July 2004. The Master Plan led to the
establishment of the Open Source Competency Centre (OSCC), which promotes the
spread of FOSS in the public sector.
8.4.3.3 Philippines
Rampant software piracy is a problem in Southeast Asia. FOSS is viewed as an
ideal solution to software piracy, since the notion of illegal copying does not ex-
ist under FOSS. The anti--piracy aspect of
FOSS is one of the driving factors behind Southeast Asia:
Philippines and Vietnam
the promotion of FOSS in Southeast Asia
Philippines
nations. In the Philippines, the national Anti-piracy a driving factor for promoting FOSS
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 222
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
8.4.3.4 Vietnam
The Vietnamese government showed little interest in FOSS around the time of the
first Asia OSS Symposium in 2003. Initiatives to promote FOSS in Vietnam have
rapidly accelerated since that time, sparked by the hosting of the 3rd Asia OSS
Symposium in Hanoi in March 2004.
Just prior to the 3rd Asia OSS Symposium, the Vietnamese government approved a
FOSS master plan called Applying and Developing Open Source Software in Viet-
nam for the 2004--2008 Period. Vietnam is currently implementing various initia-
tives under the master plan. These initiatives include FOSS training courses and
conferences on FOSS migration.
173
Trends in National and Local Japanese Government
2003. Six events have been held since then Cooperation for Computerization (CICC), Japan and
organizations in host nations
3rd Symposium:
Singapore (November 2003)
6th Symposium:
Beijing, China (March 2005)
ganizations related to METI and MIC. This FOSS policies in e-government by Ministry of Internal
Affairs and Communication (MIC)
section also describes the trend in FOSS Study group concerning Secure OS
e--municipality for local residents. Case studies: FOSS procurement by local governments
government
174
FOSS Government Policy and E--Government
1. The current massive trade deficit in soft- Loss of technical capabilities from erosion of Japanese
infrastructure software
2. The loss of technical capabilities from Wide overview of major FOSS, FOSS licensing and business
models using FOSS
the erosion of Japanese infrastructure Funds development related to perceived areas of FOSS weakness
Enterprise technologies
Desktops
175
Trends in National and Local Japanese Government
software imports into Japan. The majority of the Japanese market for infrastruc-
ture software consists of foreign software. Infrastructure software is essential to
running application software. It also functions as the building blocks for IT. Ex-
cessive dependency on foreign infrastructure software inevitably leads to a loss of
technical capabilities. However, independent development of operating systems and
middleware is risky and requires a significant investment. Consequently, commit-
ment to FOSS development can be viewed as a way to maintain Japan’s technical
capabilities.
176
FOSS Government Policy and E--Government
further barrier is the widespread use of proprietary vendor formats that extend
HTML and other standardized specifications.
Source code released without charge; local governments free to modify or use
software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 226
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
177
Trends in National and Local Japanese Government
support contract is stressed as being vital to procurement of FOSS. The report also
notes that additional software may be required if a higher level of security is needed,
when FOSS alone may be inadequate.
is widely deployed by municipalities such FOSS operating environments using Java application packages
Urayasu City
as Urayasu City, where there is an empha- Portal sites for local residents
FOSS is also used extensively for Web-- Deployment for internal systems
FOSS servers widely deployed as Web servers, mail servers, etc.
based portal sites aimed at local residents FOSS deployment for desktops
Sumoto City
and tourists. Prefectures such as Yamanashi, GNU/Linux servers deployed as gateways to local government WANs
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 227
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
178
FOSS Government Policy and E--Government
curement side. Consequently, there is too FOSS deployment expected to enable participation in systems procurement by
small- and medium-sized local vendors that lack technology for specific
products, leading to promotion of local industry
much emphasis on established suppliers lead- Tendency to emphasize established suppliers, due to difficulty of separating
systems design, development and operations
centralized major vendors. Due to the in- Switch to long-term assignments for personnel with highly specialized
knowledge
cult for local governments to separate the Transparency of deployment process ensured
179
Systems Procurement by Local Government and Issues for Local IT Firms
quotations for development man--hours and costs. The end result is that local gov-
ernments tend to emphasize established suppliers and give priority to major vendors
during procurement.
FOSS is viewed as offering a way to solve the above issues faced by local governments.
FOSS deployment is expected to enable small-- and medium--sized local vendors to
participate in systems procurement, which serves to promote local industry. Local
vendors can participate in systems building even if they do not possess technology
for specified software sold by major vendors.
Local government procurement is hampered by an inability to evaluate the contents
of bids based on functionality and performance. A further problem is the inability
of the procurement side to estimate man--hours and costs. These problems are
caused by the personnel policies of local governments. IT systems personnel are
regularly rotated to new positions, which tends to result in a lack of specialized
knowledge among IT systems personnel. To address this issue, local governments
must switch to long--term assignments for employees that possess highly specialized
IT knowledge.
FOSS deployment is also useful to local governments from the standpoint of imple-
menting resident services and practicing information disclosure. The open nature
of FOSS enables bottom--up deployment of systems according to the needs of each
situation, without being limited to existing systems. Using FOSS also ensures trans-
parency in the deployment process.
circle prevents systems procurement from LGs may limit bidding to established suppliers
Specifications for a public tender are left up to vendors
Blanket contracts that cover from defining
materials of Nagasaki Prefecture
Local governments tend to be dependent LGs are forced to accept expensive systems that suit the needs
of vendors
to a number of factors. For example, local the increasing use of shared e-municipality systems
180
FOSS Government Policy and E--Government
responsibility of the procurement side. Local governments may issue vague specifi-
cations that tend to result in blanket contracts that cover everything from defining
requirements through to systems operations. This leads to a situation where ad-
ditional development is automatically awarded to the same vendor. All of these
factors prevent local governments from directly awarding contracts to local IT ven-
dors. Instead, local governments are forced to accept expensive systems that suit
the needs of vendors.
Under these circumstances, local IT firms are forced to participate in government
projects as subcontractors to major vendors. The subcontractor role tends to pre-
vent local IT firms from developing the skill set needed for project management.
Skills for project management involve everything from drafting proposals to per-
forming quality control and executing tasks. Venture firms are not even qualified to
participate in bidding due to the requirement for established suppliers. IT subcon-
tractors at the bottom of the tiered subcontractor structure tend to find it difficult
to keep resources to learn new technology.
The trend toward a tiered subcontractor structure with major vendors at the top
is accelerating due to the shortcomings of local IT vendors. These firms lack not
just experience but also technology and resources. The issue is compounded by the
growing scale of e--municipality systems and the increasing use of shared modules
for e--municipality.
Several prefectures in Japan are deploying FOSS in an attempt to break out of this
vicious cycle. These initiatives are aimed at achieving an ideal situation in which
municipalities are supported by local IT firms. Nagasaki Prefecture and Hokkaido
are implementing unique and ground--breaking initiatives not found elsewhere in
Japan. Their examples provide insight into how FOSS can be effectively utilized by
local governments.
181
Systems Procurement by Local Government and Issues for Local IT Firms
Development
Bidding & Test Spec.
the prefectural government was unable to Local firms Order
C system
Testing
Development
Test Specification Development Spec.
build its own expertise, which led to de- Test Spec. Testing
pendency also applied to procurement of Many local firms can participate, since contracts are separated into small sizes
182
FOSS Government Policy and E--Government
183
Education and FOSS
the motives of vendors involved in the digi- Fundamental idea to use IT equipment in the field of
education
illustrated in the section 9.3 and the sig- Case Study: FOSS trials in education
Some trial projects to use FOSS in educational field
Policy Program 2004, which was issued in Advancement of Human Resource Development and
the Promotion of Education and Learning
1:1 ratio of PCs to students in school com- Except for Information Study curriculum in upper
secondary schools
184
FOSS Government Policy and E--Government
185
Education and FOSS
teachers who participated in these trials commented that they were able to learn
new things from the students.
tions under the guise of academic pricing. Pretext: For cash-strapped students
The main justification for academic pricing Issues with Information Study textbooks
Examples used to illustrate how applications work
is that it is designed to keep prices down Pros and cons of describing specific applications
186
FOSS Government Policy and E--Government
In the first trial, 300 GNU/Linux desk- IPA-sponsored field tests of FOSS desktops in educational
lower secondary schools in Tsukuba City 300 machines deployed and used by 3,000 students
Knoppix trials
and Gifu Prefecture. The machines were Knoppix used by 800 students at eight schools across Japan
(elementary/upper secondary schools, one technical school and
several universities)
used by 3,000 students. In the second trial, Norways Skolelinux project (2003)
Skolelinux deployed and evaluated at four elementary and lower
http://www.skolelinux.org/portal/documentation/reports/
across Japan. Participating schools ranged UKs Open Source Software in Schools project (2004)
FOSS deployed and evaluated at 15 elementary and lower
secondary schools in UK
187
Performance
9 Features of FOSS
This chapter examines the features of Free/Open--Source Software. Various aspects
of FOSS are examined including the adequacy of FOSS performance and its po-
tential for reducing costs. The nature of
vendor lock--in and the use of FOSS as a (9) Feature of FOSS
way to avoid vendor lock--in is examined.
Performance Security
FOSS?
9.1 Performance
FOSS is noted for innovative and rapid development, among its other features.
FOSS also has a general reputation for being suited to innovative development. Ac-
tual development of active FOSS projects
occurs at an extremely rapid pace. This Performance
section also examines the results of perfor-
Innovative and fast development
mance tests carried out in 2004 in Japan, FOSS is suited for innovative development
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 238
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
188
Features of FOSS
software unlike any other. Unlike many oc- Motivation of FOSS developers
are involved in development out of person- Localization undertaken by actual users that desire
localization
Localization also tends to be easier to im- Desire to quickly develop software that developers want
ed using OSDL Database Test 1 (DBT-- group of Japan FOSS Promotion Forum
Results of Development Infrastructure Working Group
1), a Web--based transaction performance DBMS benchmark evaluation using OSDL DBT-1
Benefits of tuning confirmed
test that simulates the activities of Web PostgreSQL evaluation using OSDL DBT-3
users browsing and buying items online. Performance of WebLogic surpasses JBFOSS
PostgreSQL was evaluated using the OS- Development of crash analysis tools and evaluation of FOSS
performance and reliability
Evaluation of Java application layer
DL DBT--3 suite for decision support work- Evaluation of database and OS layers
load. DBT--3 consists of business oriented Hitachi, SRA, NTT Data, NS Solutions, Sumisho Computer Systems, NRI,
Miracle Linux, Uniadex, NTT Comware, Nihon Unisys
189
Cost
of JBoss was evaluated using the SPECjAppServer2004 benchmark for J2EE servers.
SPECjAppServer2004 is supplied by Standard Performance Evaluation Corporation.
Evaluation and bottleneck analysis of the Linux kernel was conducted using Linux
Kernel State Tracer (LKST).
The tests found that tuning could be used to draw higher levels of performance from
FOSS products. The Working Group is also developing crash analysis tools and
evaluating FOSS performance and reliability, in order to assess Java application,
database and operating system layers. The Development Infrastructure Working
Group is made up of a consortium of 11 companies, centering on Japanese system
integrators such as Hitachi, SRA and NTT Data.
9.2 Cost
FOSS deployment is associated with the myth of low cost. At the present time, FOSS
does not always ensure cost reductions. Although it is essential to evaluate the to-
tal cost of ownership (TCO) when deploy-
ing a system, it should be kept in mind Cost
that cost evaluations can be tailored to the
Myth of low cost
stood.
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 241
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
190
Features of FOSS
taya Online, system building costs were Tsutaya Online: 1/4 to 1/5 cost reduction
one--quarter to one--fifth lower due to GNU/Linux TCO gap with Windows is small and debatable
saved as much as $17 million from deploy- Maintenance of middleware and applications
191
Cost
ing costs. Training costs for both users Total of all costs required to maintain, administer, and
adequately operate systems
achieved by changing the standpoint of the Results will depend on the assumptions made
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 243
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
sold to users include support costs and the Cost of acquiring distribution (only one copy needed)
Licensing costs
cost of commercial software, which are in- If proprietary software is required, only license for that
software must be purchased
Licensing costs are not required for sys- Frequently expensive for proprietary software
192
Features of FOSS
are often very high. The ability to lower upgrade costs is a major advantage for
systems that will be operated for an extended period while maintaining software
upgrades.
Hardware costs can also be lowered using FOSS. FOSS can adequately run on older
hardware. This is true for certain applications such as single function servers that
provide simple interaction. There is no need to go to the trouble of deploying new
hardware for these types of applications. FOSS systems can also be tuned to run
adequately on existing low spec PCs.
will resist migrating from a familiar envi- Users are generally conservative and resist migrating from
a familiar environment to a new environment
Support costs
it is necessary to factor in the cost of train- High cost of support due to limited supply of FOSS
engineers
ing when newly deploying FOSS. Costs are going to decrease as FOSS becomes more common
terial to master FOSS also contributes to FOSS clients may not work within such systems
193
Vendor Lock--In
tries are illustrated, since vendor lock--in An environment or situation that locks in users to
products from a specific vendor
is not unique to the IT industry. In order What are the problems with vendor lock-in?
adopting a standard interface. This ar- from each vendor, in conformity with standard
interfaces
between data formats exchanged by users. Locks in user environment to specific vendors
products
The integrated look and feel of a user in- Type of customer retention strategy
in. Other contributing factors can include Need to maintain compatibility with archival assets
194
Features of FOSS
vendor over the long term. Vendor lock--in also forces users to implement regular
version upgrades. Furthermore, a monopoly invites the possibility of lower quality
and higher costs. The need to maintain compatibility of data can also be unsoundly
used as justification to eliminate the participation of other vendors through the use
of closed specifications.
Restaurant coupons
advantage
used by airlines also fall into this catego- programs for car brands
from same manufacturer
Bid on first year at low cost
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 248
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
195
Vendor Lock--In
builder. These contracts enable the vendor to take on highly profitable contracts
for systems operation and continued development.
1. Derive the necessary functions and sep- From de facto standards to open standards
Conventional de facto standards
Open standards
2. For each module, separate the interface Interface is specified to a standard, and implementation
is interchangeable
196
Features of FOSS
maintain competition. However, it is wide- Also need to release source code
ly believed that open specifications alone Why open standards alone are inadequate
Vendors will always emerge to seek differentiation through
Example of HTML
source code as FOSS is the first step to- Example of tying applications into OS
Proprietary performance enhancements using unpublished APIs
ward complete avoidance of vendor lock-- Vendor gave itself unique advantage as OS developer
in.
Systems that comply with open standards
provide for interchangeability of the implementation. This is said to enable other
vendors to participate in system upgrades and gives users the upper hand in price
negotiations. However, FOSS proponents argue that this only works in theory.
Open standards alone are viewed as being inadequate, due to the rule of thumb that
vendors will always emerge seeking differentiation through proprietary means.
The example of HTML or HyperText Markup Language illustrates this view. The
standard specifications for HTML are decided by the World Wide Web Consor-
tium (W3C). However, browsers have introduced proprietary extensions to HTML
tags in competing for market share. This has led to an uneven history of browser
incompatibilities.
Further illustrating this point is the example of a certain OS vendor accused of tying
in applications to its own operating system. The vendor had created unpublished
APIs for its OS. These APIs were exclusively used by the vendor’s own applications
to deliver performance enhancements of a proprietary nature. The arrangement
enabled the OS vendor to give itself a unique advantage. The incident is also one of
the reasons why users remain locked into that OS today.
Yet another argument in favor of this view are the recent incidents surrounding the
standardization of OOXML. One of the many criticisms against this standard claims
that a FOSS implementation is not possible since OOXML implicitly relies on (not
yet standardized) proprietary software.
197
Security
9.4 Security
This section examines the issue of security in software and whether FOSS is inherent-
ly more or less secure. Although there are arguments for both sides, a quantitative
evaluation of FOSS security has yet to be
conducted, making it a matter for future Security
discussion. FOSS security tools are also
Security of Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 251
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Obstacles to security
to security include defects in the software Outside factors
Unauthorized access: Unexpected manipulation by third party
itself and vulnerabilities in the design of Interception and falsification: Incidents relating to transmission
path for privileged data
Internal factors
Unauthorized access involves unexpected Software defect: Unexpected operation due to fault in software
tion and falsification are examples of unau- Can FOSS improve security against these threats?
198
Features of FOSS
curity due to its transparency and active FOSS is more secure due to transparency and active
developer base
developer base. The opposing argument Proprietary software from major vendors affords
greater chance of ensuring security
jor vendors affords greater opportunities to Unauthorized access and security accidents occur on all
platforms including Unix, GNU/Linux and Windows
critical vulnerabilities or security holes are Applies to actively developed FOSS projects
identified. Although the notion of “many Difficult to slip unauthorized code into source code
circulated as FOSS
eyes” applies to actively developed FOSS Based on notion of improved security through
vigilance of many developers
projects, it does not necessarily apply to
FOSS projects developed under a small de- An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 254
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
velopment structure.
199
Security
However, the “many eyes” notion offers a Releasing source code provides crackers with enough
information to do harm
counter--argument to this view. Since in- Easier to find errors or security holes in
implementation
formation about FOSS is released, devel- Counter-argument: Release of source code enables
immediate response if security holes are discovered
opers can respond immediately when a se- Concern about structure for security measures
by software provider
curity hole is discovered. Major vendors are putting resources into security
measures
200
Features of FOSS
Snort, CodeSeeker
FOSS Intrusion Detection Systems (IDS)
OpenSSH
FOSS implementation of Secure Shell (SSH) protocol
9.4.5.3 OpenSSH
OpenSSH is a FOSS implementation of the Secure Shell (SSH) protocol, which
provides for encryption of communication paths. SSH is increasingly common as a
replacement for Telnet and remote shell (rsh) to connect to remote hosts.
201
Educational Benefits
ly effective as an education tool. Well-- Learn from the precedence of released source code
for learning. In order to use a debugger to Low cost of development environments and
source code that actually runs rather than Educational benefits of communities
We have much from communities
Programming techniques
runs. This is accomplished by inserting de- Learn step-by-step how a program runs
Another major educational advantage of and Lions' Commentary on UNIX 6th Edition with
Source Code are published
202
Features of FOSS
ing real code from actual programs, you Obtain source code
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 259
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Fee-based training
while information necessary for develop- Ability to control risks yourself is where FOSS excels in
203
Educational Benefits
community without learning by users them- software from the community without learning
by users themselves
selves. The underlying purpose of user com- User communities as cooperative organizations
munities is to facilitate mutual assistance Ask questions through mailing lists and message
boards
munity. Many FOSS communities normal- Development communities must also make an
effort to provide accessible information
204
Features of FOSS
9.6 Sustainability
Many software projects feature ongoing development in order to respond to defects
or provide support for diverse platforms. This section examines why sustainable
software development is necessary and the
reasons that FOSS is effective for achiev- Sustainability
ing sustainable software development. Al-
Necessity of sustainable software development
so examined are the reasons for the analo- Why sustainability of software development is so
important?
gy drawn between the advancement of soft- The key is adaptation to various kind of platforms
of software is also essential to the advance- Scientific progress and advancement of software
ment of software science and software engi- Similarities between scientific progress and
advancement of software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 262
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
ly basis. These defects can include securi- as users wish to use software
Defects in software discovered on daily basis
ty holes that can inconvenience others and Security holes cause problems for others
eventually develop into a social problem. *Tried-and-tested software: Software in which almost all bugs
have been worked out
Tried--and--tested software is software that Are there any issues with suspending software
development?
Yes, there are
able to suspend the development of tried-- FOSS capable of being adapted to diverse platforms
205
Sustainability
projects are frequently suspended due to Risk of software development ending for some reason
Scientific progress
3. Reinventing the wheel should be avoid- Knowledge shared and expanded through publication
of papers
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 265
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
206
Features of FOSS
The similarities between the two sets of criteria show how the advancement of soft-
ware shares common characteristics with the notion of scientific progress.
es as a concrete license.
Freedom of FOSS
The freedom to run the program, for any purpose
· The freedom to run the program, for The freedom to study how the program works, and adapt it
to your needs
·
Above four kinds of freedoms prescribed by FSFs The Free
works, and adapt it to your needs. GPL expresses four kinds of freedom as concrete license
· The freedom to improve the program, and release your improvements to the
public, so that the whole community benefits.
207
Lack of Applications, Human Resources and Guarantees
Legal risks
so explored are the reasons for the slow Who secures legal risks in using FOSS?
the issues that surround FOSS. The trend Standardization to eliminate diversities
seem incomplete from the perspective of Quality is vary widely between FOSS applications
ket and concerns about support are major Need to absolute increase of FOSS engineers
208
Issues with FOSS
ity of software developed through this method Level of refinement varies widely
is not always guaranteed. Many projects Tried-and-tested applications are highly refined
separate their releases into stable versions Refinement of desktop applications in particular
ity.
The level of refinement in FOSS varies wide-
ly by project. Tried--and--tested applications such as Emacs, gcc and X Window
System are highly refined. In contrast, recent FOSS projects and experimental ap-
plications are likely to have many defects and issues. The refinement of desktop
applications in particular needs to improve for FOSS to spread on desktops. Desk-
top applications are directly operated by users, which requires a high degree of
refinement in terms of features and ease of operation.
the Internet serving as the primary source Business deployment of FOSS often still at explorative
stage
User concerns over FOSS support cannot Information frequently obtained online
209
Lack of Applications, Human Resources and Guarantees
Unix engineers to become GNU/Linux en- Shortage of GNU/Linux engineers frequently pointed
out
gineers. Major vendors often retrain their Easy to actually retrain Unix engineers
traditional base of Unix engineers in this Concern that situation will drive up overall costs
The increased demand for GNU/Linux en- Symposiums, seminars and Codefests
210
Issues with FOSS
SCO controversy
velopers, it also carries a risk of copyright SCO sent a challenge to FOSS communities in 2003
sidered the biggest legal risk associated with patents; code can slip in intentionally or through
carelessness
Cross-licensing
The handling of patent licenses illustrates Financial resolution (payment of patent royalties)
the risks involved in using FOSS. If a cer- Risk of patent royalties being claimed directly against
users, or a cease-and-desist order could be issued
211
Legal Risks
worst case scenario, patent royalties could be claimed directly against users or a
cease--and--desist order could be issued.
Licenses can include mechanisms to guard against these legal risks. For example,
MPL contains a clause to the effect that any withstanding patents that apply to
source code must be expressly declared by the contributor of the source code. The
clause further specifies that the contributor is to obtain the license directly from
the patent holder. Under this arrangement, the responsibility for using a patent is
assigned to the contributor.
March 2003, when SCO initiated a lawsuit GNU/Linux users in May 2003
Claim asserts that Unix code was misappropriated for
suing IBM for damages. The litigation was Linux and infringes on intellectual property held by
SCO
based on the claim that IBM’s GNU/Linux Claim against Linux kernel Version 2.4 and later; SCO
alleges that Linux kernel contains code relating to
NUMA, JFS and SMP technologies
team had misappropriated code from the SCO alleges that it purchased rights to Unix from Novell
AIX operating system for GNU/Linux. AIX misappropriated code from AIX (March 2003)
Surrounding response
is IBM’s proprietary version of Unix. 73% of GNU/Linux programmers say that SCO claims
have no merit
212
Issues with FOSS
of the risks of FOSS, revolving around the Fundamentally provided as is and with no warranty
question of who has this responsibility and Does not mean that users can rest easy
where the responsibility ends. Section 5, Article 8: Clauses which totally excludes a
business from liability to compensate the damage to a
consumer caused by such defect are null and void under a
Many FOSS licenses specify that the soft- contract for value
ware is provided “as is” and comes with unenforceable under Japanese law
213
Legal Risks
214
Issues with FOSS
and the different users for FOSS desktops What is the trends of software market regarding FOSS
desktop terminal use?
are examined. Also explored are barriers Phases for spread of FOSS desktop deployment
Who can use FOSS desktop?
to FOSS deployment on desktops including Barriers to spread of FOSS desktops
issues related to using FOSS in Japanese What prevents from spreading FOSS desktop use?
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 277
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
als for FOSS desktop deployment were launched deployment for servers, backbone systems and
embedded applications
during the second half of 2003 and in 2004. OSDL launches new working group (January 2004)
Turbolinux 10 Desktop
desktop strategy. Meanwhile, IPA and the Novell Ximian Desktop 2 (SUSE LINUX)
215
FOSS Deployment on Desktops
Counter tasks
Reference: Decrem, Bart. Desktop Linux Technology & Market Overview. Open
Source Applications Foundation, July 2003
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 279
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
216
Issues with FOSS
fore, and their quality is by no means in- Expanded environment for FOSS office suites
ferior to existing proprietary office suites. Templates, clip art libraries, etc.
One problem with FOSS office suites is Migrate systems to Web applications
ibility. There is also an important need Demanding requirements for document style,
customary ruled lines, etc.
to expand content supplied with software, Problems with applications due to Japanese language
support
such as templates and clip art libraries. Application hang-ups from kana-kanji conversion, etc.
217
FOSS Deployment on Desktops
ments. These problems are barriers to the Controversy over copyright infringement by free fonts
(2003)
JIS (ISO2022-JP)
Shift JIS
Unicode
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 281
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
218
Issues with FOSS
10.4 Diversity
This section examines the issue of diversity in FOSS. Diversity is considered to
be an issue of FOSS from the standpoint of diversity of data, diversity of plat-
forms and diversity of user interfaces. The
following sections examine the issue of di- Diversity
versity from each standpoint, and the pros
Driving factors behind diversity
Diversity of platforms
Issues on environments where applications work
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 282
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Diversity of devices
The issue of diversity reflects a high de- Difficult for minority makers
219
Diversity
Data exchange is performed for the pur- Different data formats within one category of
applications
pose of exchanging the actual contents of MS-Word, OpenOffice.org Writer, KOffice, AbiWord, etc...
Libraries, tools
· Software to which applications are de- Red Hat, SUSE, Debian, Knoppix, etc...
Differences in versions
The combination of variables when build- Service pack editions installed or not installed, OS
editions, etc.
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 285
220
Issues with FOSS
ered by even the slightest change in oper- Particularly true for desktop deployment
Different icons
the same. These differences can involve Different menu placement or menu titles
etc...
221
Standardization Trends and Localization
There is also discussion today about in- Non-profit organization dedicated to FOSS-related
standardization
non--profit Free Standards Group (FSG) Linux Standard Base (LSB) Project
tion. FSG is involved in various activities Portable Operating System Interface for Unix (POSIX)
222
Issues with FOSS
(SUS) is a standard specification for Unix established by The Open Group. Filesys-
tem Hierarchy Standard (FHS) defines the standard hierarchy of files within a file
system.
Based on XML
No platform dependency
The neutrality of the OpenDocument stan- Distinct from XML-based document format
223
Standardization Trends and Localization
i18n (Internationalization)
Provision of framework that simplifies implementation
of m17n and l10n in applications
m17n (multilingualization)
Modification to support multilingual handling
l10n (localization)
Enables display in each language
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 290
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
224
Issues with FOSS
Examples of Internationalized
Applications
Necessity of internationalized
applications
Owners manuals
Translation
Handling of characters
Unicode
Number of Unicode-compatible
applications is increasing
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 291
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
225
Standardization Trends and Localization
226
Development Tools
11 Development Tools
Software development requires many development tools, such as editors and compil-
ers. Other essential tools include debugger, analysis tools, source code management
tools and documentation tools. These de-
velopment tools are widely available due to (11) Development Tools
the work of FOSS developers, who create
We have variety of Development tools
tools that they themselves need for FOSS FOSS development tools
Developers make a new
Compiler
Debugger
Source code
Based on FOSS
management
Maintaining
development via the
Localization
Documentation
ry means of FOSS development, develop- increasing, in addition to
conventional CUI-based IDE based on GUI
tools Bug tracking tools
guage. Next, the object code is linked to File describing the process of building software
Makefile
227
Program Builds
11.1.1 GCC
GCC, which stands for the GNU Compiler
Collection, is a set of compilers. Devel- GCC
opment of GCC was started in 1984 by
gcc (the GNU Compiler Collection)
Richard Stallman. The name originally Development started in 1984 by Richard Stallman
stood for GNU C Compiler, since it was Originally stood for GNU C Compiler
Now stands for GNU Compiler Collection
originally developed as a compiler for the Includes compilers and libraries for C, C++, Objective-
C, Fortran, Java and Ada
braries, adding support for additional lan- Widely used for commercial and non-commercial
operating systems
11.1.2 Make
Make is a utility for automatic building process. Rules for a build are described in
a file called a makefile. These files prescribe how to compile, link and install pro-
grams. Make executes a build according
to the contents of the makefile. In addi- Make
tion to automating builds, make includes To help manage build PACKAGE = hogehoge
SRCS = $(PACKAGE).c
OBJS = $(SRCS:.c=.o)
features to shorten build times by mini- process
FILES = README Makefile $(HEADS) $(SRCS)
VER = `date +%Y%m%d`
Marking of dependency CC = gcc
ing the modification time of the source files Autotools convenient for
automatic generation of
$(OBJS): $(HEADS) Makefile
.c.o:
rules
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
with the last time the derived files were up- Build optimization
.cc.o:
.f.o:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
$(FC) $(FFLAGS) -c $< -o $@
.p.o:
228
Development Tools
ment. Linking involves the following pro- Link multiple object files and library or archive files
Relocate data
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 296
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Linkage can be static or dynamic. Static linking is a linking method that combines
all object files and libraries from the build into a single file. Although the file runs as
a stand--alone file, the drawback is that it produces a large executable file. Dynamic
linking only designates the names of libraries to enable dynamic linking to libraries
during execution. The use of dynamic linking reduces the file size of the program
in its executable format. This method also has the advantage of enabling separate
management of libraries. For these reasons, dynamic linking is widely used today.
11.3 Debugger
11.3.1 Debugging
Bugs or errors inevitably arise during coding in software development. Debugging is
the process of locating and fixing bugs. The debugging process essentially involves
checking for the following items:
Debugging Tools
· Are the values of variables as expected?
Debugging
Process of fixing bugs in coding
output the values for variables. This pro- Debuggers, profilers, tracers, etc.
229
Debugger
are used to check the function call efficiency or detect memory leaks. Tracers are
used to trace function calls.
11.3.2 Debugger
The major FOSS debugger is GDB, which
stands for the GNU Project Debugger. The Debuggers
GDB tool has the same features as other
GDB (The GNU Project
gscanbus
Tool for acquiring and
displaying data from
connected IEEE 1394
device
Problem (bug?)
Camera icon displayed
as question mark
Camera works
properly
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 299
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
230
Development Tools
grep command, you can search the loca- Rom_info.h and rom_info.c files exist
in the rom_info.h and rom_info.c files. NODE_TYPE_CONF_CAM when camera you are using
(unit_sw_version=0x101) is connected
}
resolv_guid(rom_info->guid_hi, rom_info->guid_lo, &cpu);
if (cpu) return NODE_TYPE_CPU;
return NODE_TYPE_UNKNOWN;
erly if you change the source code to re- An Introduction to Free/Open-Source Software
}
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 301
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
231
Analysis Tools
is no guarantee that the method you used Fix was possible because of viewable source code
is the correct method for fixing the prob- feeding back to community
tracer is used to trace function calls and Profilers / memory testing tools
Tools to get statistical information on CPU and memory
A static source code analysis tool is used to Tools to trace function calls and system calls
trary point using an editor. It is also used To jump directly to the definition of classes and functions
cflow
for visualization of source code. Tools such To show the invocation tree between functions and functions
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 303
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
232
Development Tools
11.4.1 Profilers
A profiler is used to acquire (profile) and display the status of program execution at
fixed intervals. By using a profiler, it is possible to grasp hardware information such
as the processor and thread status or cache
hit ratios. A CPU profiler acquires CPU-- Profilers
related information such as CPU utiliza-
Profiling
tion rates. A memory profiler acquires in- Acquire status of program execution at fixed intervals
formation about memory usage or detects Also acquire hardware information such as cache hit
ratio
Memory profilers
Measure memory usage, detect memory leaks
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 304
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
necks in this way is useful for accelerating Specify -pg option when compiling
Sample output
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software 305
The slide at right shows a sample output from gprof. The results show that execution
of func1 took zero time, while execution of func2 took nearly all of the time. This
indicates that accelerating func1 will have barely any effect on accelerating the
program. Accelerating func2 will help to accelerate the overall program.
233
Analysis Tools
leaks. The slide at right shows a screen-- Test for memory leaks
MEMWATCH
shot of MemProf. CUI memory testing
tool for C
11.4.4 Tracers
A tracer tool is used to trace function calls and system calls. Several FOSS tracers
are available for different tracing purposes.
Tracers
CTrace
Traces function calls
Ltrace
Traces function calls for shared libraries
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 307
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
11.4.4.1 CTrace
CTrace is a tracer for function calls and is used for programs written in C. The ctrace
command embeds tracing text into C language programs. When a modified program
is compiled and executed, the trace status is output at execution so that you can
check the operation of the program. To check shell script operation, designate the
-x option when executing a shell script.
234
Development Tools
11.4.4.2 Ltrace
Ltrace is used to trace calls for shared library functions. The slide shows a sample
output from ltrace. The ltrace output displays the call status of shared libraries
as function--name (argument) = returned--value. Unlike CTrace, programs do not
need to be recompiled when using ltrace.
ing. In some instances, you may wish to To make sure when, who, where and how modified?
lem occurs, or to create a branch version RCS, CVS, subversions and other similar tools were
developed in association with changes of development
to test new features. Various source code styles from independent development to team and
distributed development
235
Source Code Management
printf("Hello World!\n");
return 0;
--- 3,5 ----
Tool to generate differences
hence saving the entire file results in much Basic features of RCS, CVS and Subversion
duplication. Consequently, only the dif- Used by someone other than source code administrator
to create bug fixes or add features
236
Development Tools
(repository) update
Enables concurrent Updates working copies
editing of same file by
add/delete
multiple persons
Adds and deletes files
Subversion diff
Addresses downsides of Shows differences between files
CVS (inability to move or
status
delete directories, etc.)
Shows status of files
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 310
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
11.5.2.2 CVS
Where RCS enables multiple users to share the same file stored on one computer,
CVS uses a server architecture to manage a repository. Under this arrangement,
users copy the contents of the repository to individual clients. This enables multiple
individuals to concurrently edit copies of the same file. When a change is made to
the original file, CVS automatically merges the changes from copied files. If changes
are made to the same portion of the original file, the developer has to decide how
to merge the overlapping changes.
11.5.2.3 Subversion
Subversion shares the same basic features and operating method as CVS, but with
enhancements to address the downsides of CVS. Specifically, Subversion includes
the ability to move and delete directories and to track these changes as part of the
versions. These features are missing in CVS. Subversion is upwardly compatible
with CVS.
237
Other Tools
238
Development Tools
Differences in libraries
3. The specification for a library can change due to a version upgrade, leading to
incompatibilities with the previous version of the library.
4. Differences in the library path can occur, compared with the computer envi-
ronment used for development. For example, a library can be located in the
/usr/local/lib directory or in /usr/lib.
239
Other Tools
Autotools was developed to address these Need tools to compile and execute same program on
different platforms (OS or environment)
A configure script can be used to gather Minor format differences depending on version
240
Development Tools
11.6.3 Localization
In most parts of the world, English increasingly serves as the universal language of
the FOSS community. However, there are many developers and users who lack En-
glish skills. Furthermore, many users de-
sire software in their own native language, Localization
even if they do have good English--language
English is the universal language of FOSS
prepare versions of software in languages Desire for different language versions so that many
others can use software
own native language, so that many people and dialogs in different languages
can use the software. Localization is criti- Translators do not need to understand source code
display of menus, dialogs and other char- See I18n, M17n and L10n
Localization tools can support the display of menus and other elements in different
languages. However, these tools are not equipped to implement internationalization
such as multilingual handling and line breaks. Localization, internationalization
and multilingualization are discussed in detail in Section 10.5.3: I18n, M17n and
L10n.
241
Other Tools
2. Surround the internationalized charac- Replaces Hi (msgid) with Guten Tag (msgstr)
msgid "Hi"
msgid "Add"
msgstr "Hinzufuegen"
In the example shown above, “Guten Tag” (msgid) is replaced with “Welcome” (ms-
gstr). To support many languages, a message catalog for each target language must
be prepared.
11.6.5 Documentation
Many FOSS developers place a lower priority on creating documents such as manuals
and specifications, compared with the priority they place on software development.
There are few FOSS projects that prepare
adequate documentation. The problem is Documentation
so widespread that lack of documentation
Importance of documentation
User manual
ploying FOSS. This section stresses the im- Expand developer base
Documentation is critical for users and oth- Writing documents perceived as bothersome
original developers themselves. Preparing Can also graph class relationships, etc.
242
Development Tools
Documentation also benefits the original developer. If you have ever been involved in
software development, you know that sometimes it is possible to forget the purpose of
source code written a week or a month ago. Documentation is effective in preventing
this type of situation from happening.
Creating documents is time--consuming, but documentation tools can be used to
effectively streamline the process. Documentation tools automatically generate doc-
uments from source code. These tools can shape the comment style within source
code and graph class relationships. However, documentation tools do not analyze
the contents of source code to identify the purpose of the program. If you wish to
reflect the purpose of the program in documents, then you must mark portions of
the source code with comments.
that you can use Javadoc in all your Java Supports Java, C, C++,
PHP, etc.
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 316
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
243
Other Tools
iar with GUI development environments. Demand for GUI-based IDEs as developer base grows
(IDEs) are available for Windows develop- Eclipse with multi-language support
ment and are the primary choice for de- KDevelop for KDE applications
244
Development Tools
11.6.8 Eclipse
The most famous FOSS IDE is Eclipse. Eclipse was written in Java and runs on a
wide range of operating systems that support Java. The advantages of Eclipse are
its high extensibility and plug--in architec-
ture to strengthen various features. Mod- Eclipse
ules and plug--ins are available for multi--
IDE written in Java
chitecture of Eclipse in some ways makes Plug-in architecture to strengthen various features
its high extensibility, Eclipse is billed as a IBM sells Eclipse-based IBM Rational Software
Development Platform
so makes it necessary to grasp the work Dedicated database for bug tracking
sheets become inadequate for managing bugs, As software grows in scale, management tools such as e-mail
and spreadsheets become inadequate for grasping overall
picture
resulting in the need for a centralized sys- Stores information such as bug reporter, reproduction method,
bug correction assignee, correction history, correction method,
tem for managing bugs. This type of sys- degree of importance, test status, etc.
reporting tool. Bugs can sometimes recur after bug correction or during testing
245
Chapter Review
bugs. This information includes the bug reporter, reproduction method and per-
son assigned to correct the bug. Also tracked are the correction history, correction
method, degree of importance and test status.
A bug life cycle refers to the sequence of events from bug identification until the bug
report is closed. Typically, the life cycle involves the following sequence of events:
1. bug report,
3. correction of bug,
In some cases, bugs can recur after they are corrected, due to fixing a different part
of the software or when testing reveals that the bug correction was inadequate.
11.6.10 Bugzilla
Bugzilla is a bug reporting tool that was developed by Mozilla.org for the Mozilla
browser. The software is known for its powerful bug tracking and search features. In
addition to being used internally by Mozil-
la.org, Bugzilla is used by other large--scale Bugzilla
projects such as XFree86, Apache, Samba,
Developed by
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 320
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
246
Development Tools
· What are the advantages and disadvantages of static and dynamic linking?
· What essential feature does CVS have that RCS does not have?
· What essential feature does Subversion have that CVS does not have?
· Explain which steps are taken to when localizing software with gettext.
· What are the main advantage and the main disadvantage of GUI IDEs compared
to CUI tools?
· Explain the bug life cycle. What are its main events?
247
Updating Software Environments
environment includes software, software com- Maintaining software environments and configuration of
software
ponents, related data and documentation. Compiling source code and installing builds
and topics for developers. All users need reduce man-hour of development
software environments. We examine and Examples on Web System development and application
software
istrator (or user). This chapter examines Environment surrounding software changes day by
day, due to new versions of library, software and
Configuration of software
ronments and describes how software en- Software needs to be set up to fit the surrounding
environment
software is deployed. This chapter also ex- Binary package: software package that includes
compiled software and the other files, in order to run
correctly by putting into adequate directories
ware.
248
Maintaining Software and Development Examples
or feature enhancements, as well as bug A lot of FOSS packages in particular are frequently
updated
fixes or patches for security holes. FOSS What happens when software is not maintained
Problem for yourself
is particularly known for its frequent up- Unstable operation or unauthorized access
249
Updating Software Environments
various essential data. This essential data Source code alone is not enough
can include icons, image data and config- Data used by software
uration files used by software. Other da- Other data such as sample data, etc.
Documentation
Manual pages
Licensing information
indicate that the archive has been com- .tgz, .tar.gz or .tar.bz2 extensions
pressed. The .tgz extension is sometimes Tools for compressing and uncompressing files
the .tar.gz extension. The .gz and .bz2 Procedure for unpacking and compiling source
code and installing build
extensions mean that files have been com- Unpack source code
pressed using the gzip (GNU zip) or bzip2 Configure source code to fit environment
./configure
250
Maintaining Software and Development Examples
binary package. Binary packages that con- Provided for each platform and contains pre-compiled
and pre-configured binary code packaged with other
code are prepared for various platforms. A RPM (Redhat Package Manager)
binary package also contains other neces- Deb: Package management system used by Debian
RPM and deb are the main packaging meth- configurations, etc.
ods for binary packages. RPM (Red Hat from the source package to install software
251
Updating Software Environments
date software, you must obtain the update Update software that has been revised
information from the web site for the dis- Automatically resolve dependencies (information about
necessary libraries, etc.)
tribution or software you are using. Then Leading package management tools
up2date
you must download each piece of updated Developed for Red Hat Linux
software. apt-get
Package management tools automate the All three tools support RPM format
252
Maintaining Software and Development Examples
ware development. Reducing the amount Efficient to reduce man-hour of software development
of new development also improves reliabil- Many components are published as FOSS
ly available online. Active use of software Types of components (Data, XML, GUI, etc.)
Classifies major components
brary (STL) and PHP Extension and Ap- Standard supplied components such as STL, PEAR, etc.
Developers need libraries and narrowly fo- Include in program source tree
cused utilities. These are available through Often the case for scripting languages
Internet repositories reserved for a specif- Interface or binding to enable various languages to use library
253
Software Components
source tree. This is accomplished by placing the component in the same directory as
the program being created, or in a neighboring directory for the software component.
Some scripting languages designate a directory into which software components are
installed. This arrangement enables software components to be used as the standard
software components provided with the software. Perl in particular uses a simplified
method for installing software components. In Perl, the following command is used
to install software components:
Some software components are used as precompiled binaries. Binary files are in-
stalled as shared libraries to a directory such as /usr/lib. These files can be used
by different languages through an interface or binding.
There are no significant differences in terms of how software components are used.
In many cases, the program that is being created declares the use of a software
component.
Types of Components
(Data Structure, XML, GUI, Etc.)
XML Database
Libxml, libxslt ODBC, JDBC
GUI Device
GTK+, Qt, Glade Libusb, v4l
Network Multimedia
Imlib, SDL
Web service
OpenSOAP, Mono Security
GnuPG (GPG), OpenSSL
Graphics
Mesa, GLUT
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 330
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
254
Maintaining Software and Development Examples
12.2.2.2 XML
XML software components support the processing of XML documents. Leading
examples include the XML parser libxml written in C, and the XSLT processor
libxslt.
12.2.2.3 GUI
These components are toolkits to support the creation of GUI applications. Leading
examples include GTK+ for GNOME and Qt for KDE. Another example is the
Glade user interface builder.
12.2.2.5 Graphics
These components are toolkits to support the creation of computer graphics. Lead-
ing examples include Mesa, the FOSS implementation of OpenGL advocated by
SGI, and the GLUT OpenGL toolkit.
12.2.2.7 Database
These software components support the standard ODBC specification for database
access. JDBC is a Java implementation of ODBC.
12.2.2.8 Device
These software components support access to peripherals and various devices. De-
vice components include libusb for USB device management and video4linux (v4l)
for control of video capture devices on GNU/Linux.
255
Software Components
12.2.2.9 Multimedia
These components support the processing of multimedia data such as images, video
and audio. Examples of multimedia components include imlib for processing still
images and SDL for processing multimedia data.
12.2.2.10 Security
Security--related software components include GnuPGP and OpenSSL. GnuPGP is
a FOSS implementation of PGP, while OpenSSL is a FOSS implementation of SSL.
the software components that they want. Available libraries and PHP
Java
PEAR
http://pear.php.net/
http://smarty.php.net/
Perl
components to work together. Develops technology
specifications CPAN
http://www.cpan.org/
C
Multitude of components such Python
as GTK+, Qt, etc. Python Cheese Shop
provided by Unix
Ruby
C++ RAA
STL http://raa.ruby-lang.org/
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 331
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
12.2.3.1 Java
The J2EE specification summarizes Java features that are necessary for enterprise
business systems. In addition to the J2EE Reference Implementation from Sun,
JBoss is available as a FOSS implementation. The J2EE--compliant Struts Web
application framework is a leading Java software component. The Java Community
Process (JCP) is an organization that prescribes standard specifications for Java
technology.
12.2.3.2 C
An extremely large number of software components is available for the C language,
beginning with GUI toolkits such as GTK+ and Qt. Major libraries for C are
256
Maintaining Software and Development Examples
already installed during the initial system installation. This is partly because Unix
and Linux are written in C.
APIs and commands that are to be provided by standard Unix are prescribed under
the X/Open Portability Guide (XPG). The XPG specification is published by The
Open Group, which is an organization for Unix standards. XPG--compliant software
provides compatibility between operating systems that are compliant with POSIX.
12.2.3.3 C++
The leading C++ software component is the C++ Standard Template Library
(STL).
12.2.3.4 PHP
The PHP Extension and Application Repository, or PEAR (http://pear.php.
net), is a repository for PHP software components. Leading software components
not available from PEAR include the Smarty template engine (http://smarty.
php.net).
12.2.3.5 Perl
The Comprehensive Perl Archive Network, or CPAN (http://www.cpan.org), is a
repository for Perl software components.
12.2.3.6 Python
The Python Cheese Shop (http://www.python.org/pypi), formerly called Python
Packages Index (PyPI), is a repository for Python software components. The Python
language is notable for its use of indent and scope expressions.
12.2.3.7 Ruby
The Ruby Application Archive, or RAA (http://raa.ruby-lang.org), is a reposi-
tory for Ruby software components. Ruby is an object--oriented scripting language.
257
Software Components
brary, Mojavi web application framework Using software components such as PEAR, Mojavi,
Smarty
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 332
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
HTML
Mojavi
View Template
Template engine
Model
Smarty
DB
The illustration in the slide shows the over- Simple to reuse code
Divides labor of
MySQL
Postgre
SQL
etc...
258
Maintaining Software and Development Examples
Advantage of using
// Declaration of PEAR::DB
must be changed to pg_xxx. In some cas- PEAR::DB
ing just one part of the source code that An Introduction to Free/Open-Source Software
// disconnection
$db->disconnect();
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 334
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
259
Software Components
Platforms supported
IRIX, Red Hat Linux, SUSE Linux, Lynx- AIX, DG/UX, DRS/NX, DYNX/ptx, FreeBSD, HP/UX, IRIX, Red
Hat Linux, SUSE Linux, LynxOS, SINIX, Solaris, Tru64,
UnixWare, AmigaOS, Windows, etc.
http://www.cbmamiga.demon.co.uk/mpatrol/
CHECKSUMS Checksums for each file build generate necessary builds for
each platform
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 337
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
260
Maintaining Software and Development Examples
· If you receive FOSS in a .tar.bz2 file, what do you need to do to unpack the
archive?
· Where would you first look for Perl components, where for Ruby components?
261
Chapter Review
· Name at least 5 categories of software components. Give some examples for each
of the categories.
· Explain the purpose and content of the files: AUTHORS, CHECKSUMS, COPYING,
ChangeLog, INSTALL, NEWS, README, THANKS, and VERSION.
262