Você está na página 1de 262

University of Puerto Rico at Mayagüez Department of Mathematical Sciences

Introduction to
Free/Open--Source Software

Version 1.1 August 1, 2008


Version 1.1 - Marko Schütz
Copyright 2008
C University of Puerto Rico at Mayagüez. All Rights Reserved.
Version 1.0, the initial version, of this document was produced as a part of the
sponsored research The Asia Open Source Software (OSS) Infrastructure Building
Program of The Center of the International Cooperation for Computerization (CI-
CC) by Kazuo Hiyane, Jun Iio.
Copyright 2006
C Mitsubishi Research Institute, Inc. All Rights Reserved.
Copyright 2006
C Center of the International Cooperation for Computerization. All
Rights Reserved.
This documents is licensed under a Creative Commons Attribution 2.5 License. You
are free to:

· copy, distribute, display, and perform the work

· make derivative works

· make commercial use of the work

Under the following conditions:


Attribution. You must attribute the work in the manner specified by the author or
licensor.

· 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

2 FOSS Application Fields and Installation of FOSS 29


2.1 FOSS Application Fields 29
2.1.1 Network Servers 30
2.1.2 Internet Business and Enterprise Systems 30
2.1.3 Embedded Systems 31
2.1.4 Engineering Workstations (EWS) 32
2.1.5 Desktops 33
2.2 Deploying Free/Open--Source Software 34
2.2.1 Dual Booting 34
2.2.2 CD Booting 35
2.2.3 Using a Virtual Machine 36
2.2.4 Using FOSS on Windows 36
2.2.5 Cygwin 37
2.3 Installing GNU/Linux 38
2.3.1 Running the Installer 38

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

3 Major FOSS and Distributions 46


3.1 Operating Systems 46
3.1.1 Linux 47
3.1.2 FreeBSD, NetBSD, OpenBSD 47
3.1.3 Darwin 48
3.1.4 Other Free/Open--Source Operating Systems 49
3.1.5 Other OS Trends 50
3.2 Middleware 51
3.2.1 Web Application Frameworks 51
3.2.2 Libraries 52
3.2.3 Examples of Libraries 53
3.3 Servers 54
3.3.1 Web (HTTP) Servers 54
3.3.2 Mail Transfer Agents 55
3.3.3 Mailing List Servers 56
3.3.4 POP3/IMAP Servers 57
3.3.5 Database Management Systems (DBMS) 58
3.3.6 Domain Name System (DNS) 59
3.3.7 File Sharing 59
3.3.8 Lightweight Directory Access Protocol (LDAP) 60
3.3.9 Information Retrieval 60
3.3.10 Content Management Systems (CMS) 61
3.3.11 Business Applications 62
3.4 Desktop Environment 63
3.4.1 GUI Environment 63
3.4.2 Integrated Desktop Environments 64
3.4.3 Mail User Agents 65
3.4.4 Web Browsers 65
3.4.5 Editors 66
3.4.6 Office Suites 67
3.4.7 Typesetting 68
3.4.8 Printing 69

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

4 Philosophy and History of Free/Open--Source Software 83


4.1 History of Free/Open--Source Software 83
4.1.1 Birth of Hackers (1950s) 84
4.1.2 Free Software Movement and FSF (1980s) 85
4.1.3 Copy--left 86
4.1.4 Spread of the Internet 87
4.1.5 Birth of GNU/Linux (Early 1990s) 87
4.1.6 Growth of Open Source and Launch of Open Source Initiative
(Late 1990s) 88
4.1.7 Penetrating the Enterprise Market (2000s) 89
4.2 Definition of “Free/Open--Source Software” 90
4.2.1 GNU Definition of “Free Software” 90
4.2.2 Definition by Open Source Initiative 91
4.3 Free/Open--Source Software Licenses 92
4.3.1 Software Licenses 93
4.3.2 Click--On Contract 93
4.3.3 Major FOSS Licenses and Their Features 94
4.3.4 OSI--Approved Licenses 97
4.4 Chapter Review 97

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 FOSS Business 123


6.1 Reasons for Interest in FOSS Business 123
6.1.1 Changes in IT Environment 124

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 Case Studies in FOSS Business 135


7.1 Types of FOSS Business 135
7.2 Flagship Business (Major Manufacturers) 136
7.3 System Integrators 137
7.3.1 NTT Comware Corporation 138
7.3.2 Nihon Unisys, Ltd. 139
7.3.3 FOSS Deployment for Large--Scale Systems 140
7.4 Distributors 141
7.4.1 Ebb and Flow of Distributors 141
7.5 In--House FOSS Business 142
7.5.1 Network Applied Communication Laboratory 142
7.5.2 Ten Art--ni Corporation 143
7.5.3 ForeOneFirst Co., Ltd. 144
7.6 FOSS Specialization 144
7.6.1 SRA 145
7.6.2 Zend Japan, Ltd. 145
7.6.3 Good--Day Inc. 146
7.7 Package Software Business 147
7.8 Server Sales and Embedded Business 147
7.9 Embedded Development Tools Business 148
7.10 Proprietary Business Use 149
7.10.1 Amazon.com, Google 149
7.10.2 Rakuten, LiveDoor 150
7.11 Education Business 151
7.11.1 GNU/Linux and FOSS Certification 151

7
7.11.2 Training Courses 152
7.12 Chapter Review 152

8 FOSS Government Policy and E--Government 153


8.1 Reasons for FOSS Promotion by National and Local Governments 153
8.1.1 Reduce Costs and Vendor Lock--In 154
8.1.2 Transparency of Procurement and Security 155
8.1.3 Fostering the Development of Domestic Industry 156
8.1.4 Overcoming the Digital Divide 157
8.2 Trends in Europe 158
8.2.1 European Union 158
8.2.2 Germany 160
8.2.3 Case Study: Munich Municipal Government 162
8.2.4 Barriers to GNU/Linux Migration 162
8.2.5 United Kingdom 163
8.2.6 France 165
8.3 Trends in the United States 166
8.3.1 Federal Government 166
8.3.2 State Governments 168
8.3.3 Case Study: State of Massachusetts 169
8.4 Trends in Asia 170
8.4.1 East Asia: China, Taiwan and South Korea 170
8.4.2 Northeast Asia OSS Promotion Forum 171
8.4.3 Southeast Asia: Thailand, Malaysia, Philippines and Vietnam 172
8.4.4 Asia Open Source Software Symposium 174
8.5 Trends in National and Local Japanese Government 174
8.5.1 FOSS Policies by Ministry of Economy, Trade and Industry 175
8.5.2 FOSS Policies in E--Government by Ministry of Internal
Affairs and Communications (MIC) 177
8.5.3 Trends in FOSS Deployment at Local Government Level 178
8.5.4 Reasons for FOSS Deployment by Local Governments 179
8.6 Systems Procurement by Local Government and Issues for Local
IT Firms 180
8.6.1 Case Study: Nagasaki Prefecture 182
8.6.2 Case Study: Hokkaido Government 183
8.7 Education and FOSS 184
8.7.1 IT Use in Educational Settings 184
8.7.2 Situation in Japanese Schools 185
8.7.3 Aim of Software Vendors 186
8.7.4 Case Study: FOSS Trials in Education 187

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

10 Issues with FOSS 208


10.1 Lack of Applications, Human Resources and Guarantees 208
10.1.1 Refinement of Applications 209
10.1.2 Underdeveloped FOSS--Related Market and Support Concerns 209
10.1.3 Shortage of Human Resources 210
10.2 Legal Risks 211
10.2.1 Relationship of FOSS versus Copyright and Patents 211
10.2.2 SCO Controversy 212
10.2.3 Responsibility of Warranty 213
10.2.4 License Violations 214

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

11 Development Tools 227


11.1 Program Builds 227
11.1.1 GCC 228
11.1.2 Make 228
11.2 The GNU Linker Ld 229
11.3 Debugger 229
11.3.1 Debugging 229
11.3.2 Debugger 230
11.3.3 Debugging Example 230
11.4 Analysis Tools 232
11.4.1 Profilers 233
11.4.2 GNU Gprof 233
11.4.3 Memory Testing 234
11.4.4 Tracers 234
11.5 Source Code Management 235
11.5.1 Diff and Patch 236
11.5.2 Version Control (SCCS, RCS, CVS and Subversion) 237
11.6 Other Tools 238
11.6.1 Maintaining Compatibility 239
11.6.2 GNU Autotools 240
11.6.3 Localization 241
11.6.4 GNU Gettext 242
11.6.5 Documentation 242
11.6.6 Doxygen, Javadoc, Doc++ 243
11.6.7 Integrated Development Environments 244

10
11.6.8 Eclipse 245
11.6.9 Bug Reporting Tools 245
11.6.10 Bugzilla 246
11.7 Chapter Review 246

12 Maintaining Software and Development Examples 248


12.1 Updating Software Environments 248
12.1.1 Maintaining Software Environments 249
12.1.2 Configuration of Software 250
12.1.3 Compiling Source Code and Installing Builds 250
12.1.4 Binary Packages 251
12.1.5 Package Management Tools 252
12.2 Software Components 253
12.2.1 Finding and Using Components 253
12.2.2 Types of Components (Data Structure, XML, GUI, Etc.) 254
12.2.3 Language Specific Components 256
12.2.4 System Building Example 258
12.2.5 Web System 258
12.2.6 Application Building Example 260
12.2.7 Location of Application Files 260
12.3 Chapter Review 261

11
Why Choose Free/Open--Source Software?

1 What is Free/Open--Source Software?


The introductory chapter describes the compelling reasons for using Free/Open--
Source Software (FOSS). By learning about the processes involved in writing soft-
ware, you will understand the importance
of source code to software products. The (1) What is Free/Open-Source
Software(FOSS)?
chapter covers the basic concepts that al-
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

despite what was a strong inclination to Releasing source code


the merits of releasing source code

keep source code confidential as intellectu- Misunderstandings and the truths about FOSS

FOSS engineers and the career paths


al property. Also examined are the skills examine the skills required for FOSS engineers, and
the career paths

required for FOSS engineers, and the ca-


reer paths available to 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. 1
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

1.1 Why Choose Free/Open--Source Software?


This section describes the purpose and positioning of the course, covering the fol-
lowing topics:

· reasons for spotlight on FOSS Why Choose Free/Open-Source


Software?

· purpose of the course Reasons for interest


in FOSS
Contents
What is FOSS?

Standards (open Major FOSS Packages and


standards) Distributions

· contents of the course Value, quality, innovation

Freedom of choice
Philosophy and History of FOSS

FOSS Development and FOSS


Community
A lot of flexibility
FOSS in Business and Case
Security

First, through a basic overview of the rea- Cost


Studies

FOSS and Government Policy,


E-government

sons for the interest in FOSS and the con- Purpose of this course
Learn about significance
Features and Issues with FOSS

of FOSS Development Tools

tents of the course, you will find out the Understand benefits of
FOSS
Software Components and
Examples of Application
Building

benefits of acquiring this knowledge. Learn how to use 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. 2
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

There are many reasons for the interest in


FOSS, such as its adherence to standards,
emphasis on value and quality, and level of innovation. Other factors include the
freedom of choice available when using FOSS, and the security and low cost of FOSS.
All of these subjects are covered in detail in this course.
The purpose of this course is to understand the significance and benefits of FOSS,
and how it can be utilized. The course describes FOSS, major FOSS and distri-
butions, the philosophy and history of FOSS, and FOSS development and commu-
nities. The middle chapters cover FOSS in business and case studies, FOSS and

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.

1.2 Process of Writing Software


This section describes the basic principles behind how computers operate, prior
to engaging in a discussion of FOSS. The section explains about binary code and
source code, and what makes source code
so important. The major classifications Process of Writing Software
of interpreters and compilers used to pro-
Operating principles of computers

cess programming languages are described, Confirming the basics of computers

with descriptions of major programming Binary code and source code


Why the source code is so important?

languages. Compilers and interpreters


Divided into two categories

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.

1.2.1 Operating Principles of Computers


Today’s computers generally employ a von Neumann architecture. A typical com-
puter is equipped with a central processing unit (CPU) and storage devices con-
sisting of memory and hard drives. Also
included are a display and input/output Operating Principles of Computers

(I/O) devices such as a keyboard, mouse Von Neumann architecture

and printer. Executes a sequence of instructions stored in memory

Machine language

The CPU executes a sequence of instruc- Binary code

Difficult for people to read

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

cute a process such as drawing a character Central processing unit (CPU)

Storage devices

or figure on a screen or output computing Primary storage device (memory)

Secondary storage device (external memory, hard drive,


etc.)

results to a printer. The instructions exe- Input/output devices

LCD/CRT display, keyboard, mouse, printer, etc.

cuted by the CPU are written in machine 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. 4
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

language, which consists of a combination


of binary numbers that together form a bi-
nary code. Binary codes are shown in rows of hexadecimal numbers, which are very
difficult for people to read.

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.

1.2.2 Binary Code and Source Code


This section describes the differences between binary code and source code.

1.2.2.1 Binary Code


Although people create software, programmers do not write software directly in bi-
nary code. In most cases, programmers use various programming languages to create
software. There are various types of binary
codes including machine language (or na- Binary Code and Source Code
tive code) that is directly understood by Binary code

the CPU, and byte--code, which contains


0010000 0a29 2020 2020 2023 6874 7369 6920 2073
0010020 2061 6574 706d 726f 7261 2079 6168 6b63
Machine language (native code) 0010040
0010060
7520
6576
746e
7720
6c69
7469
7720
2068
2065
6874
6163
2065
206e
6564
696c
6166
0010100 6c75 2074 6573 7261 6863 7020 7461 7368
0010120 200a 2020 6920 2066 205b 4c24 5f44 494c
Example of instruction set directly 0010140
0010160
5242
7420
5241
6568
4e59
0a6e
3233
2020
505f
2020
5441
2020
2048
5320
3b5d
5359
0010200 4554 5f4d 444c 4c5f 4249 4152 5952 334e

commands for a virtual machine.


0010220 5f32 4150 4854 243d 444c 4c5f 4249 4152
executable by CPU 0010240 5952 334e 5f32 4150 4854 200a 2020 2020
0010260 2020 7865 6f70 7472 5320 5359 4554 5f4d
0010300 444c 4c5f 4249 4152 5952 334e 5f32 4150
0010320 4854 200a 2020 2020 2020 444c 4c5f 4249
Represented by hexadecimal numbers 0010340 4152 5952 334e 5f32 4150 4854 3a3d 2422
0010360 6473 705f 6f72 2267 243a 444c 4c5f 4249

Byte-code

Executed by virtual machine


/*
* Initialize directory-related fields in the mount structure.
Used for Java, etc. */
static void
xfs_dir_mount(xfs_mount_t *mp)
{
uint shortcount, leafcount, count;
Source code
mp->m_dirversion = 1;
shortcount = (mp->m_attroffset -
Programming language (uint)sizeof(xfs_dir_sf_hdr_t)) /
(uint)sizeof(xfs_dir_sf_entry_t);
leafcount = (XFS_LBSIZE(mp) -
(uint)sizeof(xfs_dir_leaf_hdr_t)) /
Understandable to people ((uint)sizeof(xfs_dir_leaf_entry_t) +
(uint)sizeof(xfs_dir_leaf_name_t));
Modifiable

Requires conversion to binary code

Conversion by compiler, byte-code


compiler or interpreter
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. 5
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

1.2.2.2 Source Code


The code that is written by a programmer is called source code. The source code
is converted into a machine language that can be directly understood by the CPU.
The following characteristics distinguish source code from binary code:

· Source code is written in a programming language that resembles human lan-


guage, so that it can be read and understood by people.

· Source code can be modified to change an operation or solve a problem.

1.2.3 Compilers and Interpreters


Programs used to process computer languages are generally classified as either in-
terpreters or compilers.

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

Advantages of compiled languages

executing a program. Low overhead during execution; high-speed execution

Drawback of compiled languages

Changes in source code require recompiling

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

Advantages of interpreted languages

rectly interpreted by the CPU after com- No compiling required; easy to create codes

Drawbacks of interpreted languages

piling. This means that there is low over- Inferior performance during execution; not suited for
large-scale systems

Some interpreted languages are first compiled each time to

head during execution. The downside is an intermediate language before being executed

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. 6
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

that a program must be recompiled every


time it is modified. Some compilers, like
the Java Just in Time (JIT) compiler, convert source code into an intermediate
code. A virtual machine then converts the intermediate code into binary code for
execution.

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

1.2.4 Programming Languages


The C language is a leading compiled language. C++ and Objective--C are based
on the C language and extended as object--oriented languages. In C, the source
code is processed by an assembler before
conversion into machine language. FOR- Programming Languages
TRAN and Pascal are other examples of
Major compiled languages

classic compiled languages. C language

Object-oriented extensions of C

Java and C# used for .Net are well--known C++

Objective-C

Conversion: C -> Assembler* -> Machine language


languages that run on a virtual machine. *Assembly language corresponds nearly code-for-code
with machine language, but is designed for people to

In this type of language, source code is read

FORTRAN, Pascal

compiled into byte--code for a virtual ma- Programming languages that use byte-code interpreter
(Virtual Machine type)

Java, C# (.Net)

chine. Many interpreted languages are al- Major interpreted languages

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.

preted languages that are categorized as


scripting languages.

1.3 Free/Open--Source Software and Proprietary Software


Software has certain characteristics that differentiate it from general products that
are “goods”. Some aspects of software make it unsuitable for traditional distribution
systems. This section describes some of
the issues with software products and the FOSS and Proprietary
Software
countermeasures that have been taken to
Software as a product

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

into the spotlight, along with the emer- Countermeasures


What were the countermeasures against such issues in

gence of open source, as a new paradigm the past?

Emergence of Free/Open-Source
for software. The section explains how the Spotlighted as a novel software paradigm

Turning point of software business


software business has come to a turning
point. 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. 8
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

16
What is Free/Open--Source Software?

1.3.1 Software as a Product


Traditionally, software was often treated as a “freebie” supplied with hardware. The
actual product sold was limited to the computer equipment itself, while the oper-
ating system (OS), applications and other
minute software were treated as freebies or Software as a Product
accessories to the hardware. The situation
Traditionally, software had a strong “freebie”

was due to the predominant belief that in- element


Accessories to hardware

formation should be free, and because of OS, applications and other minute software

Basic reservations about paying for immaterial goods

reservations about paying for immaterial Commoditization of computers (from mid-90s)


Package software became commonplace

goods. Proprietary software emerged as product

Difference between software and material goods

However, with the commoditization of com- Negligible cost to copy

Rampant illegal copying and piracy

puters, package software became common- Difference between software and information content
(music, film)

Software requires 100% integrity (zero tolerance for

place and proprietary software came to be “noise” or data corruption)


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. 9
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

widely accepted as a product.


Unlike products that are sold as goods, a
software product has the characteristic of requiring almost no cost to reproduce.
Information content such as music and films also require negligible costs for repro-
duction. However, a software product is different from information content in that
it demands 100% integrity with zero tolerance for “noise” or data corruption.

1.3.2 Issues with Software Products


Illegal copying and pirated software are said to be particularly rampant in Asia. It
should be noted, however, that a certain amount of illegal software use also occurs
in developed countries.
Due to the ease with which software can Issues with Software Products
be duplicated, illegal software use often oc-
Illegal copying, piracy Vulnerabilities

curs without any criminal intent. This phe- Casual copying

Particularly rampant in
Security holes

Bugs

nomenon is called casual copying. Recent Asia (but incidence is


not necessarily zero in
Increased complexity
of software
US/Europe)
advancements in peer--to--peer (P2P) tech- Accelerated by
developments in P2P

nology, which enable Internet--connected technology

Winny

computers to mutually communicate and WinMX

gnutella

exchange data, have accelerated the distri- Demise of copyright


system?

bution of illegally copied software. Some 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. 10
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

experts believe that the fundamental na-


ture of copyright needs to be reexamined.
Other issues with software include vulnerabilities caused by security holes, bugs and
the increased complexity of the software itself. They also trigger social problems
caused by unauthorized access, etc.

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

protection technology. Software--based so- copying


Hardware-based solutions
vulnerabilities
Patches

lutions have also been adopted such as li- USB dongles, etc.

Copy protection technology


Security patches

Bug patches

cense key and serial key technology. Other Superdistribution systems

Digital watermarks
Automatic updates

Cost of maintenance

countermeasures include the use of com- Software-based


countermeasures
cannot be ignored

License keys

prehensive licensing agreements and edu- Serial keys

Non-technology solutions

cational initiatives designed to discourage Comprehensive licensing


agreements

illegal use of software. Unfortunately, none Educational initiatives

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. 11
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

of these measures are considered to repre-


sent a comprehensive solution.
Developers are attempting to address vulnerabilities in software by distributing
patches and using automatic updaters. However, the cost of maintenance has risen
to a point where it can no longer be ignored.

1.3.4 Emergence of Free/Open--Source Software


The issue of pirated software has become a social issue especially in Southeast Asia.
FOSS is actively being promoted in the region, partly as a countermeasure against
software piracy. Since FOSS can be freely
copied, theoretically, there can be no pira- Emergence of FOSS
cy.
Freedom to copy

Free/Open--Source is managed through li- Solution to piracy issue

Does not equate to discarding copyright

censes that govern the use of software. A Software use managed through license

Can counter the risk of vulnerabilities


FOSS license prohibits any restrictions on Fixes implemented by worldwide developer base

If you have the expertise, you can fix it yourself


redistributing software, which makes it dif- Paradigm shift in software products

ficult to generate any costs beyond the charges Shift toward being paid for services

Support services

for copying. Customization

Provide total solutions

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.

it offers the advantage of a wide developer


base that works to address software vul-
nerabilities. This means that bugs are corrected quickly. Furthermore, users with a
certain amount of software expertise can attempt their own fixes.
FOSS is also driving a paradigm shift in the software business. Rather than selling
software as a packaged product, developers are shifting to a service--based business
model in which they are paid for providing support services or total solutions, or
performing customization.

18
What is Free/Open--Source Software?

1.4 Releasing Source Code


This section describes the meaning of re-
leasing source code as FOSS, and points Releasing Source Code
out the different levels of FOSS publica-
Levels of publishing source code

tions that exist. Source code is not nec- Inadequate just releasing source code

essarily being released as an act of self-- Effects of publishing source code


Many benefits for both users and developers

sacrifice only for the sake of users. This


section explains why.

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.

1.4.1 Levels of Releasing Source Code


Releasing source code involves more than simply disclosing source code. There are
three levels at which source code can be released.

Levels of Releasing Source Code

1. Readable source code

Useful for technology acquisition and security audit

Ex. Early Unix, Shared Source (Microsoft)

2.Modifiable source code for local use


For customization or tuning

Embedded use is permitted

Source code may not be redistributed

3.Freely usable, modifiable and redistributable


source code
Qualifies as FOSS

Enables smooth implementation of bazaar-style joint


development

Distributable as part of a distribution


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. 14
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

1.4.1.1 Readable Source Code


Releasing source code at this level means that others can read and check the source
code for software. Readable source code does not qualify as FOSS, but can be useful
for technology acquisition and checking security holes. Early Unix and the Shared
Source initiative advocated by Microsoft belong to this category.
Whether or not it is possible to confirm that the readable source code is identical
to actual executable code is one of the factors for consideration. If only some of the
source code is readable, the source code is not that valuable.

19
Releasing Source Code

1.4.1.2 Modifiable Source Code for Local Use


Source code released at this level can be customized or tuned to the user’s environ-
ment, in order to use the software more effectively. However, redistribution of source
code is not permitted. For example, source code released under these conditions can
be used in embedded products. Releasing source in this way can be used to attach
added value to software.

1.4.1.3 Freely Usable, Modifiable and Redistributable Source Code


Only source code that is freely usable, modifiable and redistributable qualifies as
FOSS. Permission to redistribute source code helps to attract an indefinite number
of software developers, which contributes to the smooth implementation of bazaar--
style joint development. Releasing source code in this way enables software to be
distributed with many other programs in the form of distributions.

1.4.2 Benefits of Releasing Source Code


Releasing source code as FOSS is sometimes criticized as being communistic or an act
of self--sacrifice. These criticisms are unfounded when viewed from the perspective
of actual developers.
For developers and software development projects, releasing source code offers the
possibility of attracting others to debug source code or add new features. Oth-
er developers may perform maintenance or
port the source code to another platform. Benefits of Releasing Source Code

If anything, releasing source code enables


Benefits for developers and development

developers or development projects to rely projects


Can turn to others for help (someone is likely)

on others for help. to debug the software

to add new features

There are also major benefits for users. A modify the source code out of need

to handle maintenance

user can fix problems or perform detailed Benefits for users


For users capable of modifying source code

customization, provided that he or she is Ability to fix by oneself if problem occurs (maybe)

Ability to perform detailed customization (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

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. 15
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

users is the ability to learn about software


design and pick up programming technol-
ogy at the source code level.

20
What is Free/Open--Source Software?

1.5 Truth and Misconceptions about Free/Open--Source Software


It is important to emphasize that “Open Source” is intended as a proper noun, and
that “free” stands for “freedom” and not free of charge. Source code is released to
gain the freedom of software, and it should
be released according to prescribed meth- Truth and Misunderstanding about
FOSS
ods.
“Open Source” is a proper noun
That is also trademarked

“Free Software” and “Free Beer”


Freedom and free-of-charge

Is it adequate only publishing source code?


More than just releasing source code

FOSS movement is neither totalitarian nor

communist
Based on selfish idea rather than altruistic

cf. “Benefits of 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. 16
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

1.5.1 “Open--Source” is a Proper Noun


“Open Source” is a proper noun and a registered trademark. “Free Software” is also
a proper noun.
Both of these terms are becoming com-
mon nouns, which has led to further confu- “Open Source” is a Proper Noun

sion over terminology and misconceptions


Terms that are proper nouns by definition:

about the concepts involved. While it is an “Free Software”

“Open Source Software”

issue of semantics, the correct meanings of “Open Source” is trademarked in the US by Open Source
Initiative

these terms must be understood to avoid Becoming common nouns


Other examples of common nouns from proper nouns

misconceptions, controversy, false rumors Walkman (portable stereo)

Rolodex (rotary file)

and lies. Certain proprietary software ven- Xerox (copier machine)

Leads to misconceptions, controversy, false rumors

dors seek to attack FOSS through the guise and lies

Needs to be properly understood

of sales strategies that instill fear, uncer- 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. 17
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

tainty and doubt (FUD).


There are countless examples of proper nouns
that have become common nouns, such as Walkman (portable radio), Rolodex (ro-
tary file) and Xerox (copier).

21
Truth and Misconceptions about Free/Open--Source Software

1.5.2 “Free Software” and “Free Beer”


The Web site for the Free Software Foundation opens with these words: Free
software is a matter of liberty, not price. You should think of “free” as in “free
speech.” In essence, it means that “Free
Software” refers to the freedom of software “Free Software” and “Free Beer”

and not software that is free of charge.


“Free Software” is freedom 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

Confusion over the meaning of Free Software

of charge. You can conduct business us- Richard M. Stallman admits to poor choice of words

Stallman prefers “freedom software”

Freedom of software is not assured under e.g.


ing Free Software or sell Free Software as freeware and shareware

a business. Free Software is strictly a way “Free Beer” is beer without charge
Freedom of beer is not guaranteed

to guarantee the freedom of software. It


is important to make the distinction that 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. 18
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

“Free” in Free Software is distinct from


“free” as in “free beer.” Free--ware and share--
ware can be obtained without charge or for nearly free, but the freedom of software
is not guaranteed.

1.5.3 More Than Just Releasing Source Code


One of the major misconceptions about Free/Open--Source Software is that releas-
ing source code equates to FOSS. As mentioned, only software that is freely usable,
modifiable and redistributable qualifies as
FOSS. The essence of copy--left is in guar- More Than Just Publishing Source Code

anteeing the freedom of software, not in


Publishing source code doesn’t make it

releasing source code. Free/Open-Source


One of the major misconceptions about FOSS

Software qualifies as FOSS only when the Must meet Free/Open-Source Software criteria

Critical to release source code under license consistent

source code is released under a license that copyleft


with OSD

Essence of not about releasing source code

is consistent with The Open Source Defi- FOSS checklist


Does released source code actually run?

nition or OSD. There are several ways of Is it compilable?

Modifying source code permitted?

checking if software is FOSS. For example, Redistribution of modifications permitted?

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.

compilable? Is it permitted to modify the


source code and to redistribute the modi-
fied source code?

22
What is Free/Open--Source Software?

1.6 FOSS Technology and Career Paths


This section examines the type of skills required for FOSS engineers, describing
who uses certain technologies at which stages of their careers. Also examined are
the particular skills needed by each FOSS
engineer category and the career paths for FOSS Technology and Career Paths

FOSS engineers. This information is pro-


Skill set for FOSS engineers

vided in order to point out the career de- What skills are required for FOSS engineers?

velopment opportunities that are available Types of FOSS engineers


When and what FOSS technologies are used?

from acquiring FOSS technology. Skill Matrix for FOSS engineers


Particular requirement for each types of FOSS
engineers

Career Paths for FOSS engineers


What career paths are provided to engineers who
knows FOSS technologies?

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.

1.6.1 Skill Sets for FOSS Engineers


The list of skills required for FOSS engineers is shown on the next page (Slide 21).
Skills are organized into five major categories.

Skill Sets for FOSS Engineers

FOSS fundamentals Development basics


Understanding FOSS (01) Computing basics (C1)

Getting involved in FOSS Computer languages (C2)


development (02) System development
techniques (C3)
Unix systems
Project management (C4)
Unix operation (l1)

Unix system management (l2) Technology


Unix server management (l3) Choose as necessary

Databases (T1)
FOSS development Networks (T2)
environment Web services (T3)

FOSS development tools (D1) Middle-ware (T4)

FOSS software components Multimedia (T5)

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

1.6.1.1 FOSS Fundamentals


This skill set is provided by the contents of this course. Subjects include basic
FOSS concepts, tips and reasons for getting involved in FOSS development, and the
significance of getting involved.

23
FOSS Technology and Career Paths

1.6.1.2 Unix Systems


Knowledge of Unix systems is essential for FOSS and other fields, due to the very
strong affinity between Unix systems and FOSS. Another reason for learning about
Unix systems is the widespread availability of FOSS implementations on Unix clone
systems, such as GNU/Linux and FreeBSD.

1.6.1.3 FOSS Development Environment


This skill set covers the use and integration of FOSS software components and
common tools used in FOSS development, and how to obtain FOSS software com-
ponents.

1.6.1.4 Development Basics


The Development Basics skill set covers the basic range of knowledge required to
carry out FOSS--related development. Subjects include computing basics, computer
languages, system development techniques and project management.

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?

1.6.2 Types of FOSS Engineers


FOSS engineers can be classified into one of three categories: FOSS system engi-
neers, FOSS application engineers and FOSS developers. The following paragraphs
examine the skills that are needed for each
type of FOSS engineer. Types of FOSS Engineers

FOSS system engineers


Develop, maintain and manage systems that use FOSS

System administrators

System integrators

FOSS application engineers


Application developers

Use FOSS tools, languages or components to develop


applications (contract development)

Package developers

Use FOSS tools, languages or components to develop


package software

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.

1.6.2.1 FOSS System Developers


This category consists of engineers who either develop systems that use FOSS, or
handle maintenance or operational management for these systems. FOSS system
developers can be further broken down into system administrators and system inte-
grators.

1.6.2.2 FOSS Application Engineers


This category consists of engineers who develop software using FOSS. Included are
engineers involved in LAMP systems development or those who develop Web appli-
cations using FOSS.
FOSS application engineers can be further broken down into application develop-
ers and package developers. The former group uses FOSS to develop applications,
primarily on an outsourced basis. The latter group uses FOSS to develop general
purpose package software.

1.6.2.3 FOSS Developers


This category consists of engineers who develop actual Free/Open--Source Software.
This can include everything from kernel development to the development of device
drivers, embedded software, software components and desktop applications.

25
FOSS Technology and Career Paths

1.6.3 Skill Matrix for FOSS Engineers


The left--hand side of the slide (Slide 23)
shows a skill matrix describing the skills Skill Matrix for FOSS Engineers
required for each type of FOSS engineer.
Applicatio OSS PBL
System System Package Developmen

Basic and required skills are indicated, in O1 Understanding OSS


Skill Level
Administrator

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

addition to core skills that are required.

integration
              

Network
I1 UNIX Operation Training course

UNIX

tion
I2 UNIX System Administration  ◎◎      for Linux

I3 UNIX Server Administration  ◎◎      certification

D1 OSS Software Components              ◎ ◎ 

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 ◎◎ ◎◎ ◎ ◎ 

University / Professional school


C3 System Development Method       ◎◎    ◎ ◎    ◎◎

Software Development
      ◎◎   ◎ ◎
PMBOK
C4 Project Management ◎◎

presumed to already possess an adequate

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

The right--hand side of the slide shows the T9 Standardization


T10 Legacy Migration

* 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

An Introduction to Free/Open-Source Software


- Level 2 : Senior engineers that can do their jobs independently
- Level 3 : Leading engineers in their section
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 23
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

provide the skills needed by FOSS engi-


neers. The chart covers lecture--based cours-
es and hands--on drills, in addition to skills that can be acquired through project--
based learning (PBL). Examples of PBL courses are shown.

1.6.4 Career Paths for FOSS Engineers


The table at right (Slide 24) shows the career paths that exist for FOSS engineers.
The data is superimposed on the Skill Framework (Outline of IT Skill Standard) pub-
lished by the Japanese Ministry of Econo-
my, Trade and Industry (METI). The Skill Career Paths for FOSS Engineers

Framework is part of METI’s proposed In-


formation Technology Skill Standard (ITSS).
The red shading represents the current ar-
eas of occupation that may be applied for
FOSS engineers. Typically, FOSS engi-
neers involved in these occupations possess
the necessary skills to make the transition
to positions as consultants, IT architects, 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. 24
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

project managers or IT specialists, as they


gain further experience. The blue shading
indicates the positions that FOSS engineers will make the transition to, with green
arrows indicating the career path.
In addition to these career paths, the chart also proposes a new occupational cate-
gory called a FOSS specialist. A FOSS specialist is positioned to provide technical
guidance related to FOSS, when carrying out system or package development. Ar-
eas covered include FOSS selection and the approach to FOSS customization and
tuning. The FOSS specialist is envisioned as having an advisory role on FOSS at

26
What is Free/Open--Source Software?

work, while being actively involved in FOSS community initiatives outside of the
workplace.

1.7 Chapter Review


· Match the following concepts to their explanations:

a. compiler a. program code optimized for execu-


tion on the CPU
b. IO
b. program code optimized for read-
c. programming languages ing/modification by humans
d. binary code c. program that converts all the source
code of a program to binary code.
e. storage hierarchy
The binary code can then be run
f. CPU many times

g. interpreter d. Every time some source code is run


this program converts that source
h. source code code one statement at a time to bi-
nary code and then runs that binary
code

e. used to write source code

f. where computation steps are actual-


ly executed

g. stores data, programs and (interme-


diate) results. Typically consists of
several layers which differ in access
speed, persistence, etc.

h. used for input and output

· 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?

· What do you have to do in order to release your software as FOSS?

· Name some benefits to users and some to developers that arise from releasing
software as FOSS.

· Explain what "Free Software" is.

· What are the differences between FOSS engineers, FOSS application engineers,
and FOSS developers?

28
FOSS Application Fields and Installation of FOSS

2 FOSS Application Fields and Installation of


FOSS
This chapter describes the application fields for FOSS and how it is actually used in
various fields. Furthermore, it explores the steps involved in deploying FOSS, using
GNU/Linux installation as an example.
(2) FOSS Application Fields and
Installation of FOSS

FOSS application fields


An introduction to FOSS application fields

Deploying Free/Open-Source Software


How to try FOSS applications

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.

2.1 FOSS Application Fields


Network servers extending to Internet business and enterprise systems are examples
of application fields for Free/Open--Source Software. FOSS is also being increas-
ingly utilized in the embedded field, and
has long been used by engineers for use on FOSS Application Fields
engineering workstations. Desktop deploy-
Network servers

ment is expected to emerge as an applica- network servers were the quickest to adopt FOSS

tion field for FOSS. Internet business and enterprise systems


became popular from B2B to enterprise systems

Embedded systems
FOSS is widely used in embedded environment

EWS (Engineering Work Stations)


descend from Unix workstations

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

2.1.1 Network Servers


Of any field, network applications were the quickest to adopt FOSS. The affinity
between network services and both Unix and FOSS is very high, in light of the
origins of Free/Open--Source Software.
After the Internet was opened to commer- Network Servers
cial interests, Internet Service Providers or
Very high affinity between FOSS and network

ISPs who provide Internet connectivity ser- services


Evident from origins of FOSS

vices began to widely deploy PC--Unix in Internet Service Providers (ISPs)

order to keep their costs down. FOSS used for mail servers and name servers

Portal sites, Web servers

Load balancer also critical for large-scale ISPs

At first, FOSS was deployed for mail servers Small-scale network servers

and name servers. Today, many FOSS pro- In-house intranet systems

Mail servers, file servers

grams are used to run services such as Web Groupware

Wiki for information sharing

servers and portal sites, as more service 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. 27
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

menus are offered over the Internet.


Outside of the Internet, FOSS is frequently
used to provide network services on Intranet systems. In addition to basic services
mentioned previously, FOSS is used today in group--ware and communication tools
such as Wiki systems.

2.1.2 Internet Business and Enterprise Systems

2.1.2.1 Internet Business Systems


Internet business systems evolved from the use of network servers. Internet business
includes services such as e--commerce, information retrieval and communication ser-
vices. FOSS servers are used as a platform
for these Internet business systems. Internet and Enterprise Systems

Emerging IT companies and Internet ven-


Evolved from network servers

ture firms are particularly heavy users of Factors driving FOSS use for Internet business

these technologies. These firms seek to FOSS servers used as platforms

Emerging IT companies and Internet venture firms

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

E-learning, ERP, CRM

ity of e--commerce also drives FOSS adop- Business package software for specific applications

tion in these companies. 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. 28
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

30
FOSS Application Fields and Installation of FOSS

2.1.2.2 Enterprise Systems


Companies use enterprise systems to carry out business tasks. FOSS deployment for
enterprise systems is expected to accelerate in the future. Proprietary software has
led the way in business applications. Recently, FOSS packages have finally begun
to emerge for applications such as e--learning, Enterprise Resource Planning (ERP)
and Customer Relationship Management (CRM).

2.1.3 Embedded Systems


Already, FOSS is widely used in embedded environments. Free/Open--Source oper-
ating systems such as GNU/Linux and NetBSD support many CPU architectures,
which can be attributed to the relative ease
of porting this FOSS to a given platform. Embedded Systems
This in turn is an indication of their clean
FOSS penetration in embedded environments

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

Motivation for porting often evolves out of developer interest

taken as long as there is interest from engi- Embedded equipment manufacturers look to FOSS
EMBLIX (since 2000), CE Linux Forum (since 2003)

neers and time. Furthermore, leading de- Main equipment applications

Portable information devices

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

Various home electric appliances, as their features become


more sophisticated

tures for cross--platform development. Refrigerators, air-conditioners, microwave ovens, etc.

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. 29
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Major embedded equipment manufactur-


ers began to look closely at FOSS operat-
ing systems starting in the mid--nineties. Non--profit industry associations have
since been formed with the creation of the Japan Embedded Linux Consortium
(EMBLIX) in 2000 and the Consumer Electronics Linux Forum (CELF) in 2003.
In the embedded field, FOSS is mainly used for portable information devices such
as PDAs, mobile phones and car navigation systems. Another major application
for embedded FOSS is in information appliances such as hard disk recorders, media
servers and multimedia appliances. In addition, it is very likely that FOSS--based
control devices will be embedded in all forms of home electric appliances, as their
features become more sophisticated with IT advancement in homes. Examples would
include refrigerators, air--conditioners and microwave ovens equipped with network
connectivity to enable centralized control through the use of a home controller.

31
FOSS Application Fields

2.1.4 Engineering Workstations (EWS)


This section describes how FOSS is used by engineering users.
In R&D fields, commercial Unix machines
have long been used as engineering work-
stations (EWS) for applications such as Engineering Workstations (EWS)

science and technology computation and


From Unix to PC-Unix (GNU/Linux, *BSD)

simulations. Same system operation and user interface

Same applications are used

Operating systems such as GNU/Linux and Or many comparable FOSS can be used

Can reduce hardware costs

FreeBSD were developed as Unix clones Switching from Unix machines to IBM PC-compatible
machines leads to significant cost savings

designed to run on PC--compatible machines. FOSS development supported by EWS users


Continue to uphold the principle of “user as developer”

Consequently, these operating systems em-


ploy design principles, operating methods
and user interfaces that resemble commer- 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. 30
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

cial Unix. Many engineers have moved to


FOSS--based EWS environments without
changing software. This is made possible by software compatibility at the source
code level or the availability of comparable FOSS applications.
As a group, EWS users help support FOSS development. One of the aspects of
Free/Open--Source Software is that developers have created the software that they
need, which is then shared as FOSS. This has created a system in which users
equate to developers, which is justification for releasing source code and ensuring
the freedom to modify and redistribute the code.
Even though source code is available, the average non--developer user does not have
the means to modify source code by him-- or herself. However, in the hands of re-
searchers and engineers who use Free/Open--Source Software in EWS environments,
FOSS functions effectively.

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

Ease of use nearly the same for all desktop


environments
A desktop environment such as GNOME Application fields

or KDE, running on a GNU/Linux or other Used in schools

Used by teaching staff in their offices

Free/Open--Source operating system, does Used by children in PC labs

Used in routine task applications

not differ substantially from Windows or Telephone operator terminals, counter terminals

Medical data terminals

Office terminals (private sector and government)


Mac in terms of the OS operation and us- 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. 31
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

er experience. Some minor issues remain


with FOSS desktop environments, such as
lack of both device drivers and peripheral support for very recent hardware. How-
ever, in terms of the level of functionality offered by today’s FOSS desktop envi-
ronments, there is no fundamental reason that prevents them from being used for
desktops.
FOSS desktop use is being promoted for specific circumstances, such as applications
where there are minimal issues with data cross--compatibility between applications,
or for coordination with existing systems. Typical applications include deployment
by schools for use in children’s PC labs, or for routine tasks such as performed by
counter terminals or telephone operator terminals. FOSS desktops are projected to
make further inroads into office terminals for private sector and government only
after they have become more prevalent in schools and for routine tasks.

33
Deploying Free/Open--Source Software

2.2 Deploying Free/Open--Source Software


There are three ways to newly deploy a FOSS environment. The first method is
to create a dual boot environment. In this setup, a FOSS environment such as
GNU/Linux can be used separately from
the existing proprietary OS environment. Deploying FOSS
The second approach is to use CD boot-
Deploying a new FOSS environment

ing directly from a CD--ROM. A further Dual booting

CD booting

approach is to use a virtual machine that Using a Virtual Machine

Using FOSS under Windows


creates a virtual OS environment running The first step is trying to use FOSS applications on
Windows

on the existing environment. Cygwin

In addition to deploying FOSS at the op- The package to use GNU software on Windows

erating system level, you can easily try us-


ing FOSS applications by simply running 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. 32
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

them on your existing Windows or Mac op-


erating system. For example, Cygwin soft-
ware can be used to run GNU software on Windows.

2.2.1 Dual Booting


Typically, the computer boot--up process is executed in the following steps:

1. Turn power on.

2. Initialization by BIOS and startup of Dual Booting

boot loader. Install multiple operating systems on one system


Switch between OS’es at bootup

Possible to share data by setting up shared drive


partition accessible to multiple OS’es

3. Loading of operating system by boot Advantages

loader. Operation is same as single boot environment

Runs on one machine; affordable way to try new OS

Drawbacks

4. Startup of operating system. Multiple OS’es cannot be used concurrently

Slightly bothersome to partition hard drive and


configure boot loader

Some boot loaders can be used to select


Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software 33

a startup OS from several operating sys-


Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

tems. This type of boot loader is used in


a dual boot environment to select the OS every time the computer is booted up.
You can also prepare a hard drive partition that is accessible to multiple operating
systems, so that data can be shared between each operating system.
There are two major advantages to a dual boot environment. Firstly, the OS is
used in exactly the same way as a normal single boot environment after startup.
Secondly, a dual boot environment can be used try a new OS without requiring new
hardware.

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

In the CD--booting environment, tempo- Leading example: Knoppix

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 OS’es save data to CD-R at shutdown

Temporary files operate on RAM disk

memory. Some operating systems can use Advantages


Easy to try new environment

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

Cannot apply security patches, etc.

to store user data. Instead of a CD--ROM, 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. 34
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

some operating systems use recordable me-


dia such as a CD--R or DVD--R media to
save changes or user data at shutdown.
The biggest advantage of CD booting is the ease of trying a new environment. Since
there is nothing to install on the existing environment, there is minimal risk of
destroying existing data or settings. The downside of CD booting is that the OS
and applications take slightly longer to start up, since the systems and applications
must be read from a CD. Startup times are slower than from a hard drive. Further
drawbacks are: the inability to extend and maintain the software, such as applying
security patches and, for systems with little main memory, the memory required for
the RAM disk.

35
Deploying Free/Open--Source Software

2.2.3 Using a Virtual Machine


Virtual machines use an approach called virtualization technology making a sin-
gle system appear to be several systems. This technology makes it possible to
run separate operating systems on a single
system. A layer of software between the Using a Virtual Machine
physical hardware and the operating sys-
Run one OS on top of

tem provides the virtual machine. In some another


Ex: Windows on

cases an operating system, the host OS, GNU/Linux

Leading examples
provides this layer, but this functionality VMware

coLinux

can also be provided by a dedicated layer Advantages

below all operating systems. The operat- Easy to try new OS

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%)

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. 35
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Virtual PC are classic examples of virtual


machine systems. Xen is another program
that is recently drawing interest as a FOSS--based virtual system.
A virtual machine is another easy way to try a new operating system. Since the host
OS and guest OS run concurrently, data can be exchanged between applications
running on each of the operating systems. However, the OS that runs in virtual
mode will inevitably run slower, due to the overhead required for virtual operation.
Recently, overhead for virtualization has been reduced and is now typically below
5%.

2.2.4 Using FOSS on Windows


It is significant to note that FOSS has grown in tandem with the development of Unix
and the Internet. This is apparent from examining the leading FOSS programs, in-
cluding software such as the Linux kernel,
GNU software, X Window System and re- Using FOSS on Windows
lated software, and various server software
Growth of FOSS in tandem with Unix

running on Unix servers. The availabili- development


Linux and GNU software

ty of tools for FOSS development has also X Window System and related software

Unix server software, etc.

been a factor in the growth of Free/Open-- FOSS and running on Unix are fundamentally unrelated

First step in deploying FOSS


Source Software. These tools are also re- Try FOSS designed to run on Windows

Many FOSS programs also run on Windows

leased as FOSS. Apache, PostgreSQL, MySQL, Perl, etc.

FOSS written in Java

Free/Open--Source Software and the abil- Try Cygwin


“Write Once, Run Anywhere”

ity to run on Unix are fundamentally un- 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. 36
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

related. You can run FOSS on Windows


or the Mac OS as an effective way to learn
about Free/Open--Source Software.

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

the DLL. Windows


Two major components

Cygwin can be used to recompile programs API (cygwin1.dll) for emulating Unix APIs

GNU development tool-chain

from their source code, enabling various Excellent portability


FOSS for Unix will (often) run on Windows, if compiled

FOSS created for Unix to run on Windows. from source code

X Window System also ported to Windows on Cygwin

However, there are some limitations. Cer- Similar software:

tain types of software cannot be ported Services for Unix (SFU) from Microsoft

SFU is free of charge, but not FOSS

without modification, such as environments 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. 37
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

that are specific to GNU/Linux or appli-


cations that are device--dependent.
Services for Unix (SFU) software from Microsoft serves a similar function as Cygwin.
Although SFU itself is available free of charge, the source code has not been released.
Therefore, it is not FOSS.

37
Installing GNU/Linux

2.3 Installing GNU/Linux


This section describes the procedures for installing GNU/Linux, in order to demon-
strate how FOSS is deployed. The Fedora Core installation is used in this example.

Installing GNU/Linux

Example: Installing Fedora Core distribution

Process of installation
1. Running the installer

2. Basic configuration

3. Drive formatting / partitioning

4. Network configuration

5. Time zone selection and root password setting

6. Package installation

7. Configuration after software installation (date, display,


and other settings)

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.

2.3.1 Running the Installer


Until relatively recently, GNU/Linux used a no--frills, text--based installer with mes-
sages provided only in English. These features made it look unfamiliar to many users
and difficult to install GNU/Linux without
having a good understanding of specialized Running the Installer
terminology and the various configurations Popular method

involved. Nowadays, GNU/Linux can be GUI installer

Based on X Window

easily installed using a GUI. System; supports mouse


operation

Using the GUI installer is like using any If GUI cannot be used
Not supporting GUI

other normal application. The GUI in- Due to special display

Use classic CUI installer

staller also provides extensive description Installer startup


Boot from CD

and help messages to reduce any confusion Boot from network

Boot from disk image on

during installation. hard drive, etc.


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. 39
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

However, the GUI environment may not be


available if, for example, your system uses
a special display. In that case, you will need to use the classic text--based installer.
The installer itself can be started up through CD booting, network booting or by
booting from a disk image that has already been saved to the hard drive. The files
for the actual OS and data for application packages are installed from distribution
media such as CDs or DVDs. Alternatively, the files and data can be acquired from
a network file server.

38
FOSS Application Fields and Installation of FOSS

2.3.2 Basic Configuration

2.3.2.1 Language Selection


After starting up the installer, the first
step is to select the main language to use Basic Configuration
with the system. English is used in this
Language selection

example. Choose main language to use with system

Keyboard configuration

Next, choose the keyboard configuration. Many keyboard configurations, depending on the
language

There are many keyboard configurations Choose installation type


Default options

available depending on the language you Desktop, workstation, server

Custom installation

use. You can also select your own pairing


such as using an English ASCII keyboard
with a local language. 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. 40
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

2.3.2.2 Choose the Installation Type


At the next screen, choose the installation type. The installation type determines the
combination of software that will be installed on your computer. Fedora Core offers
three installation types: Personal Desktop, Workstation and Server. Selecting one
of these options installs the software packages that are best suited to the application
chosen. In addition, you can choose to perform a Custom installation where you
choose each software package to install.

39
Installing GNU/Linux

2.3.3 Drive Formatting/Partitioning


Next, select the target installation drive. You have the option of formatting the
hard drive or adjusting the drive partitions. You can also choose to rely on the de-
fault settings automatically configured by
the installer, provided that these settings Drive Formatting/Partitioning
are acceptable to you.
Select hard drive to install to

Hard drive formatting and partitioning is Formatting and partitioning

Optionally use installer’s default settings

performed using the classic fdisk tool or Formatting and partitioning tools

Disk Druid. fdisk (classic tool)

Disk Druid

If you are using a new hard drive and in- Also configure boot loader at this point

stalling the OS from scratch, you can rely


almost completely on the installer’s default
settings for hassle--free installation. If you 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. 41
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

are installing an additional OS on an exist-


ing hard drive that already contains user
data, you must be careful not to destroy your data by accidentally formatting the
hard drive. You will also configure the boot loader during this part of the installation
process.

2.3.4 Network Configuration


All configuration settings starting from this step can be changed once the installation
process is finished. However, since the network settings are part of the minimum
system configuration, it is better to con-
figure the network during this step of the Network Configuration
installation process. Configure network environment
Handling of IP addresses

Startup using DHCP

Assign fixed IP address

Hostname

Decide network security configuration


Configure firewall

Enable/disable remote login

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.

2.3.4.1 Network Configuration


You will need to decide in advance the network settings you will be using. Config-
uration items include the IP address, host name and DNS server to look up.

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.

2.3.4.2 Security Configuration


You must decide on your security configuration when joining a network. You will
also set your security policy by configuring the built--in firewall for the OS that is
being installed, and setting the permission for remote login. You can also enable
SELinux for stronger security.

2.3.5 Time Zone Selection, Root Password Setting

2.3.5.1 Time Zone Selection


Choose the time zone from the list shown in the lower half of the screen. For
example, if you are using the computer in Tokyo, select Asia/Tokyo and in Greece,
select Europe/Athens.
You can also choose the time zone by using Time Zone Selection,
Root Password Setting
your mouse to click on a city shown in the
Time zone selection

world map, located above the time zone Puerto Rican users should select America/Puerto_Rico

Or select time zone by using mouse to click on world

list. This feature is only available when map

Root password setting


using the GUI installer. Password for root account

General user accounts can be added later

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.

2.3.5.2 Set the Root Password


Set the password for the root account with administrator’s privileges. Configuration
of non--root user accounts is performed at the end of the installation process.

41
Installing GNU/Linux

2.3.6 Package Installation


The package installation step is the most time--consuming part of the installation
process. The installation type you chose earlier determines the combination of soft-
ware that will be installed. If you chose a
Custom installation, you will choose which Package Installation
software packages to install at this step of
Choosing software packages to install

the installation process. Installation type determines which packages are


installed

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

groups and sub--groups configured by Fe- Servers

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

X Window System, GNOME Desktop


Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Environment, KDE (K Desktop Envi-


ronment), XFCE

· 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 (Cont’d)

· Development Installation of software packages


Hard drive formatting also performed during this step

Development Tools, X Software Devel- Most time-consuming part of installation process

If distribution spans several CD-ROMs, you will be


required to change CDs during installation

opment, GNOME Software Development, Software packages can also be added later on

Restart computer after software installation finishes

KDE Software Development, XFCE Soft-


ware Development, Legacy Software De-
velopment

· System 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
45

Administration Tools, System Tools, Print-


ing Support

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.

2.3.7 Configuration After Software Installation


When you restart you computer, do not forget to remove the installation CD first.
If you do not remove the installation media, the installer will start up again.
Now that the software packages have been
installed, the next phase is to configure the Configuration After Software
Installation
software. On a desktop terminal or work-
Detailed configuration of individual software

station, configuration of X Window Sys- Separately configure installed software

Display configuration is important

tem is particularly important. Agree to License Agreement

In Fedora Core, you will be asked to agree Fedora Core asks users to agree to license during this
step

to the License Agreement 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.

2.3.8 Date, Display and Other Settings


This is the last part of the GNU/Linux installation process.

43
Chapter Review

2.3.8.1 Setting the Date


Set the time and date. Usually, the time is automatically adjusted to the hardware
clock, so you can proceed to the next step.

Date, Display and Other Settings

Setting the date


Usually set by default to hardware clock

Display settings
Configuring X Window System

Usually use default settings

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.

2.3.8.2 Display Settings


Configure X Window System to produce the best display results for your hardware.
When configuring the display settings, you can usually rely on the default settings,
unless you are using a particularly rare video card or display device.

2.3.8.3 Other Settings


Configure the sound card and audio output settings. You also have the option to
set up non--root accounts for general users during this step.

2.4 Chapter Review


· What are the advantages and disadvantages of different ways of FOSS installa-
tion:

− 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

3 Major FOSS and Distributions


There are numerous types of software packages available as FOSS. This chapter
covers the major FOSS programs and explains about GNU/Linux distributions.
Several distributions are described at the
end of the chapter. (3) Major FOSS and
Distibutions
OS and middleware
OS (Operating System) : the basis of systems

Middleware: software parts between applications and


OS

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

Major GNU/Linux distributions


Providing an overview of GNU/Linux distributions

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.

3.1 Operating Systems


This section describes the major operating systems available as FOSS, starting with
GNU/Linux, the most well--known of the Free/Open--Source operating systems.
It also covers operating systems descend-
ed from the original BSD operating system OS (Operating System)
(FreeBSD, NetBSD and OpenBSD), and
GNU/Linux

the Darwin kernel used by Mac OS X. In The leading free/open-source OS

addition, it describes OpenBeOS, Plan 9, FreeBSD/NetBSD/OpenBSD


Honorable descendants of BSD

and GNU Hurd and explores trends related Darwin


Open source OS kernel as a basis of Mac OS X

to Free/Open--Source operating systems. Other free/open-source OS


OpenBeOS (Haiku), Plan 9, GNU/Hurd, etc.

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

the bazaar--style development of GNU/Linux. Created in 1991

Bazaar-style development; ported to various platforms

GNU/Linux is now a mature operating sys- ranging from embedded to mainframe

Architectures supported:

tem that runs on a wide range of platforms x86, PPC, Alpha, MIPS, SPARC, S/390, etc.

Strict definition and wider definition

ranging from embedded to mainframe sys- Strict definition: Linux kernel

Wider definition: Linux package (distribution) with

tems. Today, the operating system is backed applications

cf. “About Distributions”

by IBM and other leading global comput- Diverse range of GNU/Linux systems popular
worldwide

er companies. These firms support 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. 50
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

by providing everything from development


to operational support, making the oper-
ating system robust enough for business use.
The word “Linux” refers to the Linux kernel only, which is the core of the OS.
Informally, Linux is also widely used to refer to a system that includes both the OS
and bundled applications, which are distributed together as a distribution. Since
much of the FOSS required for a complete OS comes from the GNU project, the
complete OS based on the Linux kernel is refered to as “GNU/Linux”.

3.1.2 FreeBSD, NetBSD, OpenBSD


FreeBSD, NetBSD and OpenBSD are operating systems descended from the Berke-
ley Software Distribution (BSD). The BSD operating system was created by Bill
Joy, Chuck Haley and other developers at
the University of California, Berkeley. The FreeBSD, NetBSD, OpenBSD
BSD operating system is based on Unix
BSD : Berkeley Software Distribution

V6, but with networking enhanced. The Unix-compatible OS created by William Joy(Bill Joy) and
Chuck Haley

concept of Free/Open--Source Software did Based on Unix V6 with networking enhanced

Highly influential on development of today’s Internet-


related technologies
not exist when BSD was originally creat- FreeBSD/NetBSD/OpenBSD

ed. Nevertheless, BSD was highly influen- Free/Open-Source OS’es derived from BSD

Features
tial on the development of Internet--related FreeBSD: Emphasis on stability; frequently used for
servers, etc.

technologies. FreeBSD derivatives: DragonFly BSD, Firefly BSD, etc.

NetBSD: Runs on diverse platforms

Each of the three BSD--derived operating OpenBSD: Emphasis on security


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. 51
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

systems covered here employs a different


development focus. FreeBSD tends to em-
phasize stability and is frequently used on Intel--based servers to perform network--
related tasks. NetBSD is notable for supporting numerous platforms (more than 50

47
Operating Systems

architectures) and is frequently used in embedded systems. OpenBSD puts highest


priority on security.
FreeBSD has its own derivatives such as DragonFly BSD and Firefly BSD, which
are separate development projects.

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

OS X surrounds the Darwin kernel with a Released by Apple as FOSS

Mac OS X includes Darwin kernel and GUI (Quartz),

GUI and APIs. Many of these components APIs (Cocoa, Carbon), etc.

Derived from 4.4BSD


have still not been released as Free/Open-- Microkernel: Mach 3.0

Released under Apple Public Source License (APSL)

Source Software. Various applications are version 2.0

Supports PowerPC and x86 architectures

incorporated into the operating system to OpenDarwin Project

deliver overall ease of use. The Darwin ker- Founded in April 2002 by Internet Systems Consortium
and Apple Computer

http://opendarwin.org/

nel is based on the Mach 3.0 micro--kernel 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. 52
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

developed at Carnegie Mellon University.


Darwin currently supports PowerPC and
x86 architectures and is licensed under Version 2.0 of the Apple Public Source Li-
cense (APSL).
The Darwin kernel can also be combined with other Free/Open--Source Software to
use as a stand--alone FOSS environment. In April 2002, Internet Systems Consor-
tium and Apple Computer jointly founded the OpenDarwin Project, which plays a
central role in promoting Free/Open--Source development of Darwin.

48
Major FOSS and Distributions

3.1.4 Other Free/Open--Source Operating Systems

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

FOSS version of BeOS; development restarted using


released source code

Plan9
Next-generation OS developed by Bell Labs of AT&T
(now of Lucent Technologies), original developers of
Unix

Basic design: All resources including CPU are


distributed across network

GNU/Hurd
Kernel of operating system based entirely on Free
Software; developed by GNU

Aimed at replacing current kernel of GNU/Linux

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.

3.1.4.3 GNU Hurd


GNU Hurd is the kernel of an operating system based entirely on Free Software.
Developed by GNU, GNU Hurd is aimed at replacing the Linux kernel of GNU/Linux
that is widely used today. It aims at providing fundamentally new and improved
services and concepts compared to Unix.

49
Operating Systems

3.1.5 Other OS Trends


This section describes trends related to OS, describing the Shared Source initiative
from Microsoft Corporation and recent developments in the Solaris operating system.

Other OS Trends

Shared Source Initiative


Microsoft’s strategic response to FOSS

Source code for Microsoft products released through


individual agreements with governments, universities
and enterprises

Prohibits release of modified source code

Not free to redistribute

Completely removed from FOSS; does not fit definition


of FOSS

Developments in Solaris OS
Source code released as OpenSolaris in June 2005

Some codes only available in binary files; not fully


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. 54
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

3.1.5.1 Shared Source Initiative


The Shared Source Initiative from Microsoft is part of the company’s strategic re-
sponse to FOSS. Under the program, Microsoft releases source code for its products
to partners with which it has established individual agreements. These partners
include governments, universities and enterprises. The freedom to redistribute or
release modified source code is prohibited under the program. Consequently, Shared
Source does not qualify as FOSS.

3.1.5.2 Developments in Solaris OS


Sun Microsystems, Inc. released the source code for Solaris in June 2005, under
the name OpenSolaris. Some of the source code for OpenSolaris is not available,
which are provided in binary code. For this reason, OpenSolaris does not qualify
completely as FOSS.

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

amples of software libraries that comprise JBOSS, Tomcat, etc...

libraries
vast assets. Software libraries are enormous assets

Example of libraries

Widget set, graphics library, 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. 55
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

3.2.1 Web Application Frameworks


A Web application is a program that runs on a Web server to provide various services.
A Web application framework is software that simplifies the process of building Web
applications. Tomcat and JBoss software
are covered in this section. Web Application Frameworks

Tomcat
Part of Apache Jakarta Project

Type of servlet container

Servlet: Mechanism for running Java programs on Web


servers

JBOSS
Implements Java for J2EE

J2EE: Platform for enterprise Java deployment

Simplifies deployment of Enterprise JavaBeans (EJB)

EJB: Java software component implemented on server side

Developed by JBOSS Inc.

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)

simplify use of the subprograms. Collection of most basic and general-purpose


components (printf, etc.)

Software libraries exist for each of the vari- Called “C Library” because development on Unix
focused on C language

ous programming languages. For example, lib*.so


Shared library

EJB and Perl Module are software libraries xxx


Used by multiple programs

Vast array of lib .so

libglib, libstdc++, libgtk, etc.

for Java and Perl, respectively. This sec- Ex. GNU Readline

Library for editing command lines

tion focuses on libraries for the C language. xxx


Features: History, complementation, etc.

Also provided as lib .so: Widget sets, graphics

Libraries for a specific language can also be libraries, etc.

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. 57
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

used with a different language by provid-


ing a separate interface layer between the
two languages.
Glibc (GNU C Library, also called libc) provides the most basic functions for creating
programs in the C language, for software that is designed to run on operating systems
such as GNU/Linux and FreeBSD. Glibc contains software components for extremely
basic and general--purpose functions such as simple text processing and file and
screen I/O.
The functionality of a library can be provided as a shared library. A shared library
is provided using the filename libxxx.so, where xxx is the variable and the .so
extension stands for shared object. The binary code provided in shared libraries
needs to exist only once on the system, but it can be run by multiple programs.
Today’s systems come with a vast array of shared libraries. You can see this for
yourself by listing files contained in directories such as /lib and /usr/lib, which
contain many shared libraries.

52
Major FOSS and Distributions

3.2.3 Examples of Libraries


This section covers several examples of actual libraries.

Examples of Libraries

Widget sets Mesa (OpenGL)


GTK+(Gimp Tool Kit) Open Source

Developed for GIMP implementation of


graphics editor OpenGL

Used by GNOME OpenGL: 3D computer

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

version of Motif advocated by


Microsoft; competes
with Java

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.1 Widget Sets


A widget has components such as a button, menu or scroll bar. Widgets make up a
graphical user interface (GUI) and are combined to build GUI applications.
A widget set is a collection of GUI components. In a widget set, the design and
operation of widgets are made to be consistent. Various widgets are available such
as GTK+, Qt and OpenMotif.

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

veloped as a result of the parallel growth of Apache Samba/WebDAV

Unix and networks. FOSS server programs Mail servers


MTA
LDAP
OpenLDAP

continue to be effectively used today. ML server

POP3/IMAP
Mining server
namazu

DB server
CMS
PostgreSQL/MySQL/Fire
bird XOOPS/Zope

DNS Business applications

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.

3.3.1 Web (HTTP) Servers


Apache is considered the de facto standard for HTTP servers. Apache was found to
run on three--quarters of the world’s HTTP servers as recently as May 2005.
Development of Apache began in 1995, led
by Rob McCool at the National Center Web (HTTP) Servers
for Supercomputing Applications (NCSA).
Apache

Today, the Apache Project comprises a vast De facto standard for HTTP servers

72% market share (according to E-soft survey of May


http://www.securityspace.com/s_survey/data/200505/index.html
development structure with many promi- 2005)

History

nent sub--projects such as the Jakarta Project. Developed in 1995 by Rob McCool at NCSA

Development stalled when McCool later left NCSA

Developers in various places began modifying Apache

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

Mac. The software has many excellent fea- Features

Light, fast and reliable (uses modules)

Runs on many platforms (Unix, Mac, Windows)

tures and is fast, reliable and extensible by 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. 60
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

using modules. It is also widely used. De-


velopment feedback for Apache takes place
in a positive atmosphere that encourages improvements and refinements to the soft-
ware.

54
Major FOSS and Distributions

3.3.2 Mail Transfer Agents


A mail transfer agent (MTA) is software that is used to forward or transfer elec-
tronic mails from one server to another server, which is mostly the mail server of
the destination address. E--mail service is
one of the most popular Internet service, Mail Transfer Agents (MTA)
and many implementations of MTA soft-
Sendmail

ware have been used. Long used on Unix (developed in 1982)

Supports various protocols

Many security holes

Commercial version sold by Sendmail, Inc.

Postfix
Inter-operable with Sendmail

Simple to configure

qmail
Fast, robust

No security holes discovered

Simple to configure

Not FOSS, strictly speaking (distribution of modified


versions is restricted)

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

3.3.3 Mailing List Servers


Mailing list server software is used to administrate a mailing list.

Mailing List Server

Mailman
Web-based list administration

Implemented in Python

E-mail archiving

Built-in attachment file and spam filtering

Extensive internationalization support

QuickML
A list created just by sending an e-mail

Implemented in Ruby

Accepts any name for address

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

3.3.4 POP3/IMAP Servers


A POP3/IMAP server is a program used to hold incoming e--mail.

POP3/IMAP Servers

qpopper
Qualcomm’s extension of Berkeley popper

Also supports APOP

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

3.3.5 Database Management Systems (DBMS)


PostgreSQL and MySQL are well--known examples of FOSS--based database man-
agement systems.

Database Management Systems (DBMS)

PostgreSQL
Based on POSTGRES (previously Ingres) developed at
UC Berkeley

Pioneering object-relational database

MySQL
Developed by Swedish company MySQL AB

Dual license (GPL and commercial license)Streamlined


features and fast performance

Firebird
Free/Open-Source version of InterBase from Borland;
released in 2000

Name clashed with Mozilla Firebird, prompting Mozilla


to rename it Firefox

PostgreSQL top in Japan; MySQL top worldwide


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. 64
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

3.3.6 Domain Name System (DNS)


Every device connected to a network based
on the Internet Protocol (IP) has its own Domain Name System (DNS)
unique IP address. Text--based domain
BIND (Berkeley Internet Name Domain)

names are used in place of numbered IP DNS server

System for linking domain names to IP addresses

addresses to identify devices, since it can Developed at UC Berkeley

Current maintenance work by Internet

be hard to remember a numbered IP ad- SystemsConsortium (ISC)

De facto global standard

95% share (based on 2000 survey)

dress. http://www.isi.edu/~bmanning/in-addr-versions.html

A DNS server provides services to give users


association between domain names and IP
addresses. The de facto global standard 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. 65
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

for DNS servers is BIND (Berkeley Inter-


net Name Domain) developed at UC Berke-
ley. Today, maintenance of BIND is done by the Internet Systems Consortium (ISC).

3.3.7 File Sharing


Many systems have long been proposed and implemented to enable file sharing by
computers over networks, starting with distributed file systems (DFS). This section
examines the Samba protocol widely used
today, and the WebDAV specification that Sharing of files
is recently drawing interest.
samba
SMB (Server Message Block) protocol

Windows networking uses SMB to implements file and


printer sharing

Samba implements SMB services on Unix

WebDAV
File sharing and version management specification

Extends HTTP protocol

Web browser interface

Supports any OS on client machines

Only port 80 opened

Be secure using SSL and other security features

Supports major Web servers and browsers including


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

3.3.8 Lightweight Directory Access Protocol (LDAP)


LDAP is a protocol for accessing directory services. A directory service manages the
resources and attributes associated with a network, to enable information retrieval.
Directory services implement general data
management such as central management Lightweight Directory Access Protocol
(LDAP)
of user accounts and passwords, or listing
LDAP

of services available to server machines. Lightweight Directory Access Protocol

Protocol for accessing directory services

Examples of directory services include Ac- Central management of user data, etc.

LDAP-compatible software: MS Active Directory, etc.

tive Directory used for Windows, and Nov- OpenLDAP


Open Source version of LDAP
el eDirectory, formerly called Novell’s Di- Based on SLAPD developed at University of Michigan

rectory Service or NDS, from Novell, Inc.


OpenLDAP is a leading FOSS directory
service based on SLAPD developed at the 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. 67
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

University of Michigan.

3.3.9 Information Retrieval


Full--text information search systems are essential tools for processing large volumes
of text data. Although search services are frequently provided on the server side,
search systems can also be valuable when
used for personal use, such as when used to Information Retrieval
retrieve important information from previ- namazu

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

Filters can be used to search other files in addition to


text files

noteworthy technologies. Google Desktop Functions as a WWW full-text search system when used
as CGI

Search and Spotlight for Mac OS X are Recent search systems


Estraier: a personal full-text search system
examples of desktop search systems. http://estraier.sourceforge.net/

Rast: A full-text search system

Namazu is a classic FOSS search system http://www.netlab.jp/rast/

GNU mifluz (Senga information retrieval software)

for implementing full--text searches in Japanese. http://www.gnu.org/software/mifluz/


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. 68
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

The program builds an index of search terms

60
Major FOSS and Distributions

in advance. Although building an index


takes time, searching is very quick. Many full--text search systems are designed to
search text files, but Namazu can be extended with individual filters. These filters
enable Namazu to search various other file formats including PDF, MS Word and
OpenOffice.org files.
Recently, other FOSS search systems are being developed such as Estraier, Rast and
GNU mifluz. Other search systems have emerged that are specifically designed to
search source code.

3.3.10 Content Management Systems (CMS)


Web sites belonging to enterprises and large organizations encompass vast digi-
tal content, ranging from HTML documents and images files to other multimedia
content. In addition to Web site manage-
ment, there is strong demand for systems Content Management Systems (CMS)

that can be used for consolidated manage-


XOOPS Zope

ment of vast digital content. Features

Built using PHP and


Application server
written in Python

A CMS collects and indexes digital con- MySQL

Simple to install and Plone


build sites CMS that runs on Zope
tent to perform integrated management of Top FOSS CMS in Japan

Core developers are

digital content. Many Websites use docu- Japanese (from


beginning)

ment templates to maintain the overall co- Fork version decided in


May 2005, due to
dissatisfaction with

hesiveness of documents. A CMS reduces development structure

Shift to independent
development structure in

the load involved in managing document Japan


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. 69
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

information. This is achieved by automat-


ing the flow of documents into templates,
or through dynamic creation of HTML pages. Many CMS packages provide version
management or can be used to incorporate authentication procedures into the pro-
cess leading up to publication. Other features can include customization of display
content based on a visitor’s attributes.
XOOPS and Plone are examples of Free/Open--Source Software content manage-
ment systems. XOOPS is built using PHP and MySQL. The core developers of
XOOPS include Japanese. XOOPS is the most widely used Free/Open--Source con-
tent management system in Japan. Plone is a content management system installed
on the Zope application server, and is built using Python.

61
Servers

3.3.11 Business Applications


There are many FOSS applications today that are robust enough for deployment
as business systems. Business systems based on FOSS applications already run on
servers connected to the Internet. FOSS
business applications are also being used Business Applications
by various enterprises. These programs are Diverse range of FOSS business applications

frequently customized at the source code e-Learning


Moodle, Atutor, FOSS LMS, CFIVE, ...

level according to each application. e-Commerce


OsCommerce

Business Server combines


Mail-, Groupware-, Web-, Database-Server, Document
Management, Anti-Virus, Anti-Spam

ERP (Enterprise Resource Management) and


CRM (Customer Relationship Management)
OpenERP, SugerCRM, OSSuite ERP, Compiere, ERP5

Business specific applications


Cerveza restaurant supply procurement system

Garagardoa reservation management system


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. 70
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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.

3.3.11.3 ERP, CRM


Enterprise Resource Management (ERP) and Customer Relationship Management
(CRM) can be used by enterprises to conduct business. FOSS applications have
been developed that provide a framework for ERP and CRM. Examples of these
programs include OpenERP, SugarCRM, OSSuite ERP and Compiere.

3.3.11.4 Business Specific Applications


Business specific applications are also being released as FOSS. Cerveza is a restau-
rant supply procurement system that provides a system for managing order issuance
and acceptance at restaurants. Garagardoa is also aimed at restaurants and provides
a reservation ledger system for managing table reservations. Both applications were
designed for chain restaurants and later released as FOSS.

62
Major FOSS and Distributions

3.4 Desktop Environment


Server software is used to provide access
through networks. In contrast, a desk- Desktop Environment
top environment is a software environment
GUI and integrated Multimedia

that enables users to operate the nearest desktop environment


What is a desktop
Image processing

CG (Computer Graphics)

PC through their own keyboard and screen. environment? Video

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

Input of non-latin scripts

describes the leading FOSS for desktop en- Editor

Office suites

vironment. Type setting

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.

3.4.1 GUI Environment


Early PCs only came with a character user interface (CUI) that was limited to
displaying text on the user’s screen. Better screen display performance and reso-
lution opened the way for colorful screen
graphics to be shown. A graphical user in- GUI Environment
terface (GUI) is now popular. In a GUI X Window System

environment, a mouse is used to point to De facto standard graphics environment for Unix

Originally developed at MIT; widely used today

components such as icons, menus and but- Core development shifted to XFree86 Project, then to
X.Org Foundation

Designed for network transparency

tons. No distinction between local and remote computing


resources

Window Manager
Software to control window size, positioning, overlap,
etc.

Separate from X Windows System itself; installed as


standalone application

Installation of various window managers

twm, tvtwm, Fvwm, WindowMaker, Enligntenment, Kwin,


Metacity, Sawfish, Xfce, 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. 72
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

3.4.1.1 X Window System


X Window System is a widely used GUI environment. It is the de facto standard
GUI environment for Unix. The program was originally developed by MIT before
development later shifted to the XFree86 Project. Today, the X.Org Foundation
oversees core development of X Window System.
Every PC that runs X Window System also runs a program called X server. X
Window System is designed for network transparency. For example, the output
from software running on your PC can be displayed on the screen of a remote PC.

63
Desktop Environment

3.4.1.2 Window Managers


Window manager software controls how windows are shown on your screen. X
Window System is unlike other window systems in that it treats the window manager
as a separate application. Consequently, various implementations of FOSS window
manager software have been introduced, enabling users to swap window managers.

3.4.2 Integrated Desktop Environments


An integrated desktop environment is an environment that runs a group of software
that is built according to a set of fixed rules. Software is developed in this way in
order to unify both the “look and feel” and
operation of each application, as a way to Integrated Desktop Environment

improve work productivity in desktop en- What is an integrated

vironment. desktop environment?

Provides a common GUI

In addition to providing a unified oper- environment

Enables operations involving


coordination between

ating feel, an integrated desktop environ- applications

Copy & paste

ment offers tighter data coordination be- GNOME


Drag & drop, etc.

tween applications. Advance copy--and-- Integrated desktop


environment based on GTK+

paste and drag--and--drop functionality make KDE

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.

The two leading Free/Open--Source inte-


grated desktop environments are GNOME
and KDE. Development of GNOME, which stands for GNU Network Object Model
Environment, is based on the GTK+ library. KDE, which stands for KDesktop
Environment, is based on the Qt library.

64
Major FOSS and Distributions

3.4.3 Mail User Agents


Mail user agent (MUA) is e--mail software that is operated by the user. A MUA
typically uses a three--pane screen comprised of folder tree, title pane and message
pane. There are many FOSS installations
of MUAs including Evolution, Sylpheed, MUA (Mail User Agent)
Balsa and Thunderbird. MUAs using typical three-pane

Other popular MUAs include the Mew and configuration


(Three-pane configuration: Folder
tree, title pane and message
Wanderlust readers that run within the Emacs pane)

Evolution

editor. Also popular are character--based Sylpheed

Thunderbird

MUAs such as Mutt and Pine. MUA derived from Mozilla

MUAs for running within Emacs


Mew

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.

3.4.4 Web Browsers


Firefox is a well--known Free/Open--Source Web browser. It is based on the browser
component of the Mozilla Internet application suite, which in turn was developed
based on source code for Netscape after
Netscape was released as FOSS. Web Browsers
The Mozilla team unbundled the applica-
Konqueror

tion suite consisting of a MUA, newsread- Browser in KDE

Integrates different

er and chat software, in addition to a Web media

Firefox
browser. Today these compontents are pur- Web browser from
Mozilla project;

sued as the individual projects: Firefox designed to be light


and fast

(web browser), Thunderbird (MUA), Sun- Other browsers


Text-based browsers

Bird (calendaring), Kompozer (formerly nvu, w3m

lynx

HTML authoring). For those users pre- 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. 75
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ferring an integrated application of all the


above components there is the project Sea-
Monkey.
Character--based web browsers include w3m, lynx, and links.

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

of vi. Developed by Richard


Stallman

Extensible using Emacs


Lisp

Not just an editor:


platform for text-
oriented applications

Vi clones
Based on vi created by
Bill Joy

Various vi-compatible
installations exist today

vim (vi improved)

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.

3.4.5.1 GNU Emacs


The development of the GNU Emacs editor is led by Richard Stallman. The Emacs
Lisp programming language can be used to extend the functionality of GNU Emacs,
enabling GNU Emacs to be used as more than a basic editor. GNU Emacs can be
used as a platform to run text handling programs within the editor.

3.4.5.2 Vi and Vi Clones


The vi editor was created by Bill Joy. Various developers later created vi--compatible
editors that extend vi in diverse ways. These installations are called vi clones.

66
Major FOSS and Distributions

3.4.6 Office Suites


Word processing and spreadsheet software belong to a category of software called
office suites or productivity software. FOSS has lagged in this category of soft-
ware. OpenOffice.org is a derivative of the
StarOffice suite originally developed by Star- Office Suites
Division. OpenOffice.org has matured to OpenOffice.org (OOo) Full suite of office software

the point where it is now robust enough Derived from StarOffice,


product of German company
OOo Writer word processor

OOo Calc spreadsheet program


StarDivision

for practical use and can be used today Acquired and now
maintained by Sun
OOo Impress presentation tool

OOo Draw draw/paint tool

OOo Base database program

with almost no hassles. Microsystems

Sun’s strategy

The OpenOffice.org suite includes a word Portions of StarOffice not


restricted under license are
published as FOSS

processor (Writer), spreadsheet software (Calc), Comparison with


commercial Office

presentation tool (Impress) and draw/paint software


Comparable function-wise

tool (Draw). Version 2.0 was released in and operation-wise

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. 77
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

2005 with a new database component called


Base.
StarDivision was bought out by Sun Microsystems, which now develops StarOf-
fice. OpenOffice.org is the FOSS release of StarOffice, comprising the portions of
StarOffice that are not restricted under license.
Other components in this category inlcude gnumeric (spreadsheet), and KOffice,
consisting of:

KWord a frame-based, full-featured word processor

KSpread a spreadsheet application

KPresenter a presentation application

Kivio a flowchart application

Kexi an integrated database application

Krita a pixel based image editing and paint application

Karbon14 a vector-drawing application

KPlato a technology preview of a new project management application

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

the input and editing on the user’s screen TeX / LaTeX


TeX : Typesetting software created by Donald Knuth

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

Simplifies typesetting of formulas

approach. Instead, a document entered Highly extensible (various extensions are available)

into typesetting software contains commands 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. 78
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

applied by the program.


TeX and LaTeX are typesetting programs
for producing high quality typeset documents. The documents produced are of
publication quality. Other FOSS typesetting tools include the roff tool and its
derivatives.
TeX is a typesetting program created by Donald Knuth. LaTeX is an extension of
TeX created by Leslie Lamport. TeX features a strict concept of style and excels
at displaying formulas. It is also highly
extensible. Typesetting (Cont’d)
Typesetting in TeX and LaTeX involves
Typesetting steps

the following steps: Edit source in TeX (LaTeX)

Typeset in TeX (LaTeX) and generate DVI file

Check typeset results using xdvi

Convert into PS or PDF file


1. Edit source document including TeX-- Print document

or LaTeX--commands. GhostScript
Renders PostScript (PS) files

Used for verification on screen, or used on request by


printer driver

2. Typeset source document (containing xpdf

TeX or LaTeX commands) and gener- PDF file viewer program

ate DVI file. 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
79

3. View and verify typeset result using xdvi.

4. Convert DVI file into PS or PDF file.

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

er Free/Open--Source operating systems. ng stands for “new generation”

Designed to replace common Berkeley LPR for Unix

Consequently, printing is considered a weak- Provides security and incorporates modern features,
but retains customary interface

ness of FOSS desktops. CUPS (Common Unix Printing System)


Standard print spooler

Printing is traditionally implemented us- Issues with UNIX printing systems

ing the LPR protocol. LPRng (LPR new Lack of common GUI

Ex. Printing dialogs, printer status, etc.

generation) and CUPS (Common Unix Print- OpenPrinting project under development by Free
Standards Group

ing System) are new protocols designed to 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. 80
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

replace LPR as printing systems for desk-


top use.
A common issue with Unix printing systems is the lack of a common GUI framework
for printer drivers. This can result in inconsistencies in the way that dialog boxes
are used by applications. Also missing is a UI system and central framework for
managing information from the printer, such as toner and paper levels. The Open-
Printing project of the Free Standards Group is currently developing a solution to
address these issues.

3.4.9 Image Processing


There are many FOSS image processing programs with features comparable to
commercial software. Image viewers in particular are plentiful, which may be due
to their suitability as a programming ex-
ercise. This section describes two FOSS Image Processing
tools that can be used for both viewing
GIMP

and manipulation of image data. Photo retouching software

Features and ease of use


comparable to commercial
applications

ImageMagick
Set of command-line tools
for image processing

Convert image data format Photo retouching in GIMP

Change size and color


gradation convert, identify, composite,
Various special effects montage, compare, display,
animate, import, conjure
Many other image viewers
Command set in ImageMagick
gqview, eog, ee, gthumb...
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. 81
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

3.4.10 Computer Graphics (CG)


FOSS programs can be used to create basic computer graphics. POV--Ray is a
full--fledged ray tracing program for computer graphics rendering. Blender is a
program for similar 3D CG creation, and
can be used with YafRay to render models Computer Graphics (CG)
using ray tracing. YafRay stands for Yet
POV-Ray

Another Free Raytracer. Ray tracing program for CG


creation

Open Inventor has been released as FOSS blender


Program for 3D CG creation
by its developer, SGI. Open Inventor is an Released as FOSS after
CG rendering using POV-Ray
development company went

extremely powerful library for VRML ren- bankrupt

Can be used with YafRay

dering. (Yet Another Free Raytracer)

Open Inventor
VRML rendering library

SGI software released as


FOSS
Sample program in Open Inventor
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. 82
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

form. Support many video formats

MPEG, AVI, ASF, WMA, QT, MOV, etc.

Continued development in danger due to software


patent issue

XawTV, tvtime
TV viewing software relying on TV capture device

Kino, Coriander
Saves video from FireWire (IEEE 1394) cameras

Other tools: FFmpeg (video format converter),


Ogle (DVD player), 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. 83
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

3.4.11.1 Video Player Software


The first wave of video players brought programs that supported playback of MPEG--
1 or uncompressed AVI files. These programs included software such as mtv,
XAnime and PlayMPEG. Later, video players that supported many video formats
became popular, such as MPlayer and Xine. Continued development of video play-
ers is in danger today due to software patent issues. Video encoding formats are
frequently (partially) patented, which has hindered a FOSS development of related
software. With the advent of online video repositories such as YouTube, a new kind
of software emerged: network video browser/player. Miro is an example of this kind
of software which is released as FOSS.

3.4.11.2 TV Viewing Software


TV viewing software is designed to run on a PC equipped with a built--in TV capture
device. The software is used to display digitized video such as TV broadcasts or
video obtained through an analog input. XawTV is a classic FOSS tool for TV
viewing. An application whose name is tvtime has recently been released as a FOSS
TV viewer.

3.4.11.3 Video Format Converters and DVD Players


Other FOSS video tools include the video data format converter FFmpeg and DVD
players such as Ogle. However, development of these tools is hindered by intellectual
property issues.

71
Desktop Environment

3.4.12 Audio, Music


There are many FOSS tools for audio such
as the audio file and CD player XMMS, Audio, Music
which stands for X MultiMedia System.
XMMS (X Multimedia System)

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

coder. Other tools include Rosegarden for Ogg Vorbis XMMS

Free music compression format

desktop music creation and the Timidity Designed to replace other compression formats having
many rights issues

software MIDI synthesizer. RoseGarden


Desktop music creation tool
Compression formats used for music data Timidity

are frequently restricted due to patent or oftware MIDI synthesizer

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. 84
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

other legal issues, mirroring the situation


with video formats. The Ogg Vorbis for-
mat has been proposed as a free music compression format to encourage freedom of
data use.

3.4.13 Computation, Science and Technology


Computation and science and technology are areas of strength for FOSS, considering
the history of Unix use on engineering workstations (EWS). Many types of computa-
tional software and science and technology
applications are being developed as FOSS. Computation, Science and Technology

Numerous FOSS programs have been re-


R gnuplot

leased with features that rival existing com- Statistical computing


package
Plotting software

mercial software. Examples of FOSS pro- Compatible with S language

SciLab, Octave

grams include the R statistical comput- Science and technology


computing software

ing package, which corresponds to the S Compatible with MATLAB

Maxima

language, and Octave, which compares to Formula manipulation


software

Comparable to Mathematica
MATLAB used for science and technology Capable of high quality
formula display when used
Graph drawn in gnuplot

computing. Maxima is a FOSS program with TeXMacs

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. 85
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

that compares to the Mathematica com-


puter algebra program.
Some FOSS applications provide features not found in commercial software, such as
gnuplot plotting software and TeXMacs, which is used with Mathematica for high
quality formula manipulation. Various FOSS applications for science and technology
are available such as the GRASS Geographic Information System (GIS).

72
Major FOSS and Distributions

3.4.14 Kana--Kanji Conversion


On Japanese desktop environments, an input method editor (IME) is required to
perform Japanese language kana--kanji conversion. FOSS kana--kanji conversion en-
gines are available such as FreeWnn from
Omron Software Co., Ltd. and Canna from Kana-Kanji Conversion
NEC Corporation. A newer entry is the FreeWnn

Anthy engine, which has been under devel- Canna


FOSS version of Wnn from Omron Software

opment since 2000. However, these engines Kana-kanji conversion software developed by NEC

Restarted in 2002 through volunteer-driven

still do not perform as well as commercial Anthy


development

software. New entry, developed since 2000; started in response


to the dismal state of FOSS-based kana-kanji
conversion software

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

Poor performance due to patents covering conversion

it is an essential software component for methods


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. 86
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Japanese--language input. IIIMF and UIM


protocols have been proposed as replace-
ments for the classic XIM protocol, but a standard has yet to be decided.
FOSS projects to develop Japanese kana--kanji conversion software are hampered by
patents covering fundamental areas of kana--kanji conversion. This makes it difficult
to improve performance on FOSS implementations.

3.4.15 Input of Non--Latin Scripts


The Smart Common Input Method (SCIM) platform project provides not only a us-
er friendly, full featured input method user interface for POSIX-style operating sys-
tems (including Linux, FreeBSD and other
Unix), but also a development platform to Input of Non-Latin Scripts
make input method development easier.
Increasingly users require non-latin scripts

Currently the SCIM project has a wide Goal: provide common framework

Examples: Kanji, Chinese, Hangul, Cyrillic


range of input methods (some may need but also for German, French, Spanish, ...

Smart Common Input Method (SCIM)


other libraries), covering more than 30 lan- full featured input method user interface

for POSIX-style operating systems

guages, including (Simplified/Traditional) Linux, FreeBSD and other Unix

development platform for input methods

Chinese, Japanese, Korean and many Eu- currently supports more than 30 languages

ropean languages. Composing/Dead key


support is also one of the built-in features. 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. 87
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

In addition, several projects have been es-


tablished to design IMEngines for SCIM
and others supply their own SCIM plugins.

73
Development Environments

3.5 Development Environments


The freedom to modify and improve software is a major advantage of FOSS. The
availability of software development environments is critical to Free/Open--Source
Software. This section describes the tools
that are available for software development. Development Environments
Integrated development environments and
Languages

development frameworks are also covered. Various programming languages are provided as FOSS

Integrated development environments


Eclipse: the most famous FOSS IDE (Integrated
Development Environment)

Other IDEs: KDevelop, Anjuta, WideStudio, etc.

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

gcc (GNU Compiler PHP

Collection) HTML-embedded, server-side


scripting language
Collection of compilers for C,
C++, Fortran, Java, etc. Main language for Java and
Web system development
Standard compiler for
development on Unix LAMP/LAPP

Python
Perl
Features block designation
Strong text processing using indentation

Flexibility to use various Ruby


syntax for same process
Developed by Yukihiro
TMTOWTDI:
Matsumoto
There's More Than One
Way To Do It.
Python and Ruby are rival
languages
Frequently used for system
management and CGIs Python is an object-oriented
version of Perl
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. 89
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

3.5.1.2 Lightweight Languages


The trend today is to use lightweight interpreted or scripting languages for system
development. These are langauges that offer a very quick development cycle and
thus are particularly well--suited for experimental or exploratory projects (or project
phases) requiring rapid development. The price to pay for the rapid development
usually is slower execution of the resulting software. Overall improvements in system
performance have allowed to emphasise development efficiency (using lightweight
languages) as opposed to execution efficiency (using more heavy--weight languages
such as C, C++).
Popular lightweight languages include Perl, PHP, Python and Ruby. Perl is noted
for its powerful text processing and syntactic flexibility, while PHP which can be
embedded into HTML, is suited for Web application development. The Python
language provides block designation using indentation. Ruby is notable for its early
adoption of object orientation.

3.5.2 Integrated Development Environments


An Integrated Development Environment (IDE) refers to software that incorporates
all of the features necessary for software development, which is presented in a sin-
gle development environment. An IDE in-
cludes tools for editing, compiling, debug- Integrated Development
Environments (IDE)
ging, profiling and resource management.
Eclipse

The leading Free/Open--Source IDE is Eclipse. Development environment


implemented in Java

Although implemented in Java, Eclipse has Supports languages other than Java

Plug-ins for C/C++ development

plug--ins for C and C++ development that C/C++ Development Toolkit (CDT)

IDE for various desktop

enable it to be used as a development en- environments


Kdevelop for Qt/KDE

vironment for languages other than Java. Anjuta for GTK+/GNOME

Other IDE

Other examples of Free/Open--Source IDE WideStudio

For creating GUI applications using


C/C++

include Kdevelop used for Qt and KDE 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. 90
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

development, and Anjuta for GTK+ and


GNOME development. While more key-
board--oriented, Emacs also works well as an IDE.

75
Major GNU/Linux Distributions

3.5.3 Development Frameworks


A development framework is a collection of software that provides a basic frame-
work for applications, covering functions such as data I/O, error handling and screen
transitions. A development framework can
be used to improve development efficiency Development Frameworks
and maintain quality by reducing room for
Framework

individual ideas. The downside of a devel- Implements basic framework for data I/O, error
handling, screen transitions, etc.

opment framework is that it can be diffi- Improves development efficiency

Standardization of quality: Same quality regardless of


who writes it

cult to implement features if they are even Difficult to implement features outside of framework

slightly removed from the framework. Struts


Java-based Web application framework

Struts is a Java--based Web application frame- Uses Java servlet and JSP technology

Uses MVC architecture

work for processing Java servlets and Java Simple and powerful framework

Runs on servlet container such as Tomcat

Developed by Jakarta Project

Server Pages (JSP). Struts uses a Model 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. 91
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

View Controller (MVC) architecture and


runs on a servlet container such as Tom-
cat.

3.6 Major GNU/Linux Distributions


This section provides an overview of distributions and describes some of the major
GNU/Linux distributions that are available today.

Major GNU/Linux Distributions

About distributions SUSE LINUX


Collection of software Distribution originally
from Germany
RedHat / Fedora The second largest
Top share for share of GNU/Linux
enterprise market

Full of leading-edge Vine Linux


functions
Well-tailored Japanese
environment
Turbo-Linux
Focus: desktop Debian GNU/Linux
Ubuntu Many developers in the

Based on Debian world

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

3.6.1 About Distributions


In essence, the user wishes to make use of applications and not the functions of the
OS itself. The Linux kernel is at the core of the GNU/Linux operating system, but
applications do not run on the Linux ker-
nel alone. In order to run applications on About Distributions
Linux, the system must be equipped with GNU/Linux distributions

a software environment. This environment Standard applications do not run on Linux kernel alone

Requires a shell, libraries, tools, etc.

must come with a complete set of tools in- Also requires application software

Distributions bring together necessary software to simplify

cluding a shell, libraries and commands. A installation

Can be installed by novices

What sets a distribution apart?


distribution is a collection of software and Different applications or configurations for server/desktop
use

necessary applications that are gathered in Inclusion of commercial software

Commercial-free versions often available for free download

one place to simplify installation. Package management systems

rpm, deb, Portage

Managing the installation of a system can Boot method (hard drive, CD or floppy)

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. 93
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

be quite complicated. Libraries and appli-


cation software are interdependent on each
other. Furthermore, the software environment can depend on the peripherals in-
stalled or the PC configuration, such as the number of CPUs and the hard drive
or memory configuration. Distributions are differentiated by the software that they
install, which in turn depends on whether the PC is used as a server or desktop
terminal.
Some distributions are sold with commercial software or commercial fonts. Com-
mercial--free versions of these distributions are often available for free download.
A package management system provides semi--automatic control over complex in-
terdependencies between software. Many distributions use RPM, deb or Portage
package management systems.

77
Major GNU/Linux Distributions

3.6.2 Red Hat Linux, Fedora Core, CentOS, Etc.


Red Hat Linux is a distribution from Red Hat, Inc., the most successful GNU/Linux
distributor. The free version of Red Hat Linux was discontinued in 2003 as the com-
pany shifted its main business focus to Red
Hat Enterprise Linux, which is sold to en- Red Hat Linux, Fedora Core,
CentOS, etc.
terprises bundled with a support package.
Red Hat Linux

The Fedora Core distribution is the de- From Red Hat, the largest GNU/Linux distributor

Red Hat focus is on enterprise applications

velopment version of Red Hat Enterprise Development of free Red Hat Linux stopped in 2003

FOSS development shifted to Fedora Project

Linux. Community--based development of Clone distributions excluding commercial software

White Box Enterprise Linux, CentOS

Fedora Core is sponsored by Red Hat. Fe- Fedora Core


Community-based development under Fedora Project

dora Core is used as a proving ground for Supported by Red Hat

Aggressively adopts advanced features

advanced features, which are aggressively Also serves as Red Hat’s test version

Uses UTF as default character code

adopted in its development. Major version Some conflicts with existing 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. 94
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

upgrades of Fedora Core occur relatively


frequently. As of 2005, the latest release
was Fedora Core 4.
Initially, Fedora Core was prone to software conflicts due to changes such as stan-
dardizing on UTF--8 as the default character code and switching to IIIMF for kana--
kanji conversion. Many Japanese users had migrated to Fedora Core as a result of
the large market share held by Red Hat Linux in Japan. There were many reports
of problems among Japanese users of Fedora Core.
Commercial--free versions of Red Hat Enterprise Linux are also available. These
clone operating systems include White Box Enterprise Linux and CentOS.

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

Turbolinux joined the UnitedLinux consor- Turbolinux, Inc.


Japan: No. 2 in GNU/Linux server OS market share

tium in 2002. UnitedLinux was formed (2003 survey) *1

China: No. 1 in GNU/Linux server OS market share

by a group of distributors for the purpose (2003 survey) *2

Released Chinese version of GNU/Linux

Joined UnitedLinux industry consortium in 2002


of establishing a standard distribution for Purpose: Establish standard distribution for GNU/Linux

GNU/Linux. Focus on desktop GNU/Linux OS


Releases: Turbolinux 10 Desktop, etc.

The company has lately focused on distri- Enhanced with Windows-like GUI

Comes with player supporting Windows Media video files

butions for desktop use. These distribu-


*1 IDC, “China Linux 2004—2008 Forecast and Analysis,” July. 2004
*2 IDC Japan, “Operating System Market in Japan: Linux Market Analysis and Forecast 2003—2007” (In Japanese)

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.

tions are enhanced with a Windows--like

78
Major FOSS and Distributions

GUI and come with decoder software ca-


pable of playing video files in the Windows Media format.

3.6.4 SUSE Linux


The SUSE Linux distribution was developed by German company SUSE Linux. The
distribution ranks No. 2 in global market share after Red Hat. SUSE Linux is widely
adopted in Europe.
SUSE LINUX was purchased by Novell, SUSE Linux
Inc. in 2004. Novell has since taken over
Originally developed by German company SUSE
marketing of the SUSE Linux distribution. Linux
No. 2 in global market share

SUSE Linux was an early adopter of the No. 1 in Europe

Acquired by Novell in 2004

Linux kernel 2.6 and also took the lead in OpenSuse: contains only FOSS

using KDE as a standard desktop environ- Features


Adopted KDE as standard desktop environment

ment. Like SUSE Linux, core development First enterprise GNU/Linux distribution to use Linux
kernel 2.6

Includes YaST integrated management tool


of KDE is conducted in Germany.
YaST, which stands for Yet another Setup 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. 96
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Tool, is the integrated management tool


that was developed for SUSE Linux distri-
butions. YaST has an excellent reputation for its ease of use.

3.6.5 Vine Linux


The Vine Linux distribution is tuned by its Japanese developers for ease of use in the
Japanese language environment. Vine Linux is one of the more popular GNU/Linux
distributions in Japan.
Development of Vine Linux is carried out Vine Linux
by Project Vine. In addition to down-
Community-based development by Project Vine

loadable versions available online, a com- in Japan


Commercial version available from Vine Caves, Ltd.

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

version comes with additional commercial Slow to adopt new features

Employs apt package manager (compatible with RPM)

software and commercial Japanese fonts.


Vine Linux is tuned for stability. Although
slow to incorporate new features, Vine Lin- 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. 97
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ux has a reputation for having an extreme-


ly easy to use Japanese language environ-
ment.

79
Major GNU/Linux Distributions

3.6.6 Debian GNU/Linux


Debian GNU/Linux is developed by the
Debian Project. The goal of the Debian Debian GNU/Linux
Project is to distribute a collection of FOSS
Developed by Debian Project

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

Vast number of packages (over 15,000)

grown to encompass nearly 1,000 package Entirely made up of FOSS

Various distributions derived from Debian

maintainers from 100 countries, who pro- GNU/Linux


KNOPPIX

vide over 10,000 software packages. Linspire: Windows-like commercial OS

Skolelinux: GNU/Linux distribution for schools

The Debian GNU/Linux distribution is not 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. 98
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

managed by a specific company. The dis-


tribution is notable for supporting numer-
ous architectures in addition to x86. Many other distributions are derived from
Debian GNU/Linux.

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

Science and Technology (AIST). derived from Debian

Knoppix is popular because of its CD--boot- Features


Boots from CD-ROM

ing capability, which makes it easy for users Easy to try out; does not affect existing environment

Can be installed to hard drive

Excellent automatic device detection

to try the operating system. Knoppix can


also be installed to a hard drive and run
from there.
The success of Knoppix is partly due to 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. 99
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

its excellent automatic device detection,


which enables Knoppix to run on a wide
range of hardware configurations. Running Knoppix on a standard hardware con-
figuration is essentially hassle--free. Knoppix can also boot directly into a graphical
GNU/Linux environment based on X Window System.

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

Started by Mark Shuttleworth

Commercial support and development by


Canonical

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.

3.7 Chapter Review


· When was work on the Linux kernel started?

· What kinds of support does GNU/Linux development receive from big compa-
nies?

· What is the difference between Linux and GNU/Linux ?

· Explain the term distribution.

· What are the highest priority goals for FreeBSD, NetBSD, and OpenBSD?

· Which of these operating systems is completely FOSS: Linux, FreeBSD, NetBSD,


OpenBSD, Mac OS X, Plan 9, OpenSolaris?

· Does Shared Source qualify as Free/Open-Source Software?

· Explain the terms web application and web application framework.

· Is Tomcat used for client--side or for server--side applications?

· Explain the purpose of JBoss.

· What is the advantage of a shared library over a non--shared library?

· What is the purpose of a widget set?

81
Chapter Review

· What is the purpose of an HTTP server?

· Does Apache run on Unix--like platforms only?

· What is a mail transfer agent?

· Name the two most widely used FOSS DBMS.

· What is the main difference between Server software and desktop environments?

· What do the acronyms CUI and GUI stand for?

· What is the goal of an integrated desktop environment?

· Name two examples of integrated desktop environments.

· Explain the difference between MTA and MUA.

· What is the difference between an editor and a word processor?

· What is the relation between editors, word processors and typesetters?

· What is the different approach to image processing taken by GIMP and Image
Magick?

· What is the purpose of miro?

· When are lightweight languages appropriate tools?

· Name several lightweight languages.

· Explain the purpose of Eclipse.

· What are the characteristics of a distribution?

· How are Red Hat, Fedora Core, and CentOS related?

· What are regional hot--spots of Red Hat, Turbolinux, and SUSE Linux?

· Name some distributions based on GNU/Linux.

82
Philosophy and History of Free/Open--Source Software

4 Philosophy and History of Free/Open--Source


Software
The birth of Open Source Software and Free Software was strongly influenced
by the views on software of the people involved, and the environment surround-
ing software. To gain a proper grasp of
Free/Open--Source Software, it is essential (4) Philosophy and History of
Free/Open-Source Software
to understand its philosophy and history.
History of FOSS

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”

Free/Open--Source Software in order to grasp FOSS Licenses


To understand meanings of software licenses and
the driving forces behind the birth of FOSS categories of licenses

and its development. The definition of FOSS


and the features of various FOSS licenses 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. 101
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

are also explored.

4.1 History of Free/Open--Source Software


The beginnings of Free/Open--Source Software were already beginning to take shape
in the 1950s, not long after the birth of the computer. The Free Software move-
ment later emerged in the eighties, and the
spread of the Internet was accompanied by History of FOSS
the emergence of GNU/Linux as a lead-
Birth of hackers Birth of Linux

ing example of bazaar--style development. Basis of emerging free


software
A pioneer of “Bazaar
model development”

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

the 2000s, FOSS is even being deployed in Copyleft


business use

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

4.1.1 Birth of Hackers (1950s)


The world’s first computer, ENIAC, was developed in 1946 by John Mauchly and J.
Presper Eckert at the University of Pennsylvania. Starting in the fifties, commer-
cial computers began to be sold, but were
mainly used by researchers at universities Birth of Hackers (1950s to Present)

and research institutes. The computers of


“Hacker” used at MIT “Hack” (definition from

that era were slow and had limited mem- to describe a person
who writes good
thefreedictionary.com)
Originally, a quick job that

ory. With computer science still in its in- programs or new


algorithms
produces what is needed, but
not well.

An incredibly good, and

fancy, it was extremely critical to come up Individuals who attack


systems are “crackers”
perhaps very time-consuming,
piece of work that produces
exactly what is needed.

with good programs and new algorithms. Hacker culture is a To bear emotionally or
physically.
type of gifting culture

It was around this time that researchers at “Hacker” title


bestowed by others
To work something (typically a
program).

To pull a prank on.

MIT first began using “hacker” as a term Unix conceived in


To interact with a computer in
a playful and exploratory

1971 rather than goal-directed way.

of praise for researchers who excelled at 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. 103
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

writing programs and algorithms.


Hackers openly published the programs that
they developed, instead of keeping them hidden from others. They also took pro-
grams published by other hackers and improved them. By sharing their results with
others and adding their own improvements, hackers created a type of gifting culture.
Hacker culture was also influenced by the scientific approach of publishing research
results for examination by others. Hackers were also driven by the pride that came
with being recognized by others as a hacker.
In 1971, Dennis Ritchie and Ken Thompson created Unix. Both Unix and C lan-
guage programming that runs on Unix were factors in accelerating the development
of hacker culture. Unix culture is still widely influential today, and its legacy con-
tinues to be inherited in the philosophies of Free Software and Open Source.
The term “hacker” is sometimes used in referring to an individual who attacks a
system out of malice. However, “hacker” in its truest meaning refers to a skilled
developer. Individuals who attack systems out of malice are more accurately referred
to as “crackers” and not “hackers.”

84
Philosophy and History of Free/Open--Source Software

4.1.2 Free Software Movement and FSF (1980s)


Back when computers were still used primarily by researchers, nearly all software
was published and could be freely used by anyone. As computers became widespread
among enterprises, software became a tool
for business and commercial proprietary Free Software Movement and FSF
(1980s)
software gradually became predominant.
Aim: World where citizens can live with Free

Starting in the eighties, an opposing move- Software alone

GNU Manifesto (1983)

ment emerged, based on the notion that Author: Richard Stallman

Launch of GNU Project (1984)

software should be free. This is known as Develop Unix-compatible OS from scratch

Developed main Unix functions through 1990

the Free Software movement, which was Free Software Foundation (FSF) (1984)
Founder: Richard Stallman

spearheaded by Richard Stallman. Stall- Organization for managing copyleft software

GNU General Public License (GPL) V. 1 released (1989)

man’s goal was to create a world where GPL Version 2 released (1991)

GPL Version 3 released (2007)

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.

alone. To realize these goals, Stallman pro-


posed the notion of copy--left (to be de-
scribed) as an alternative to copyright.
Stallman announced his GNU Manifesto in 1983. The following year, in 1984, Stall-
man launched the GNU Project to realize the goals of Free Software. The aim of
the GNU Project was to develop a Unix--compatible operating system from scratch.
The GNU Project worked on developing the main functions of Unix and made them
available as Free Software, until about 1990.
Stallman also founded the Free Software Foundation (FSF) in 1985, in order to
manage software that is compliant with the Free Software philosophy. In 1989, FSF
published the GNU General Public License (GPL) Version 1, a software license that
reflects the copy--left philosophy. GPL Version 2 was later released in 1991.
Stallman’s notion of Free Software is frequently misinterpreted to mean software
that is free of charge. The “free” in Free Software stands for “freedom” and not free
of charge.

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

Right of copyright holder cannot be abandoned under

other hand, ensures freedom of software by e.g. Japanese or German law, preventing notion of public
domain software

its license without abandoning copyright.


The symbol used for copy--left is a skewed
version of the copyright symbol. 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. 105
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

The notion of copy--left was created be-


cause of the inability to protect freedom of
software by abandoning copyright and releasing software into the public domain. If
a company decides to extend the functions of a public domain program, the original
software remains free but the extended version of the software need not be free. The
company has the right to decide what license it wishes to use.
In Japan, copyright law specifies that moral right (the right of the copyright hold-
er) cannot be abandoned, thus preventing software or any other work from being
released into the public domain.
In Germany, there is the notion of an authors right (Urheberrecht) to his or her
work. That right cannot be sold or otherwise transferred. Only the complementary
right to exploit the work commercially (Nutzungsrecht) can be transferred.

86
Philosophy and History of Free/Open--Source Software

4.1.4 Spread of the Internet


Free Software grew in tandem with the spread of the Internet. In 1986, NSFNET
was split off from ARPANET, a military network that began to be operated by
the US Department of Defense in 1969 and
the precursor to the Internet. NSFNET Spread of the Internet
was created as a network for the research
ARPANET launched by US Department of Defense

community, linking computers at research (1969)

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 drives growth of Internet

researchers. E-mail (Sendmail), DNS (Bind), newsgroups (INN), etc.

Free Software for e--mail (Sendmail), DNS Internet opened to commercial interests (1991)

NCSA Mosaic Web browser conceived (1993)

(BIND) and newsgroups (INN) was devel- Impetus for Internet boom

Growth of online e-commerce (since late 1990s)

oped and improved to incorporate the 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. 106
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

quests of global researchers. Improvement


of this software, which was fundamental to
networks, in turn drove the growth of the Internet.
In the nineties, the Internet was opened to commercial interests and the NCSA
Mosaic Web browser was conceived in 1993. Both developments led to a boom
in Internet use. The Mosaic browser was a breakthrough program that enabled
simultaneous display of text and graphics. Online e--commerce began to rapidly
take off starting from the late 1990s.

4.1.5 Birth of GNU/Linux (Early 1990s)


The emergence of GNU/Linux in the early nineties became a success story for Free
Software and played a major role in the emergence of Open Source. The Lin-
ux operating system kernel was released in
October 1991 by Linus Torvalds, then a Birth of Linux (Early 1990s)
student at Helsinki University in Finland.
Linux released by Linus Torvalds in October

GNU/Linux commands a growing market 1991


Student at Helsinki University in Finland

share today that centers on server appli- Licensed under GPL

cations. Linux is licensed under GPL and Free Software success story

Pioneered bazaar-style development model

qualifies as Free Software, but it employed Frequent beta releases in mid-development

Many developers send bug reports and patches

a development method that was different Driving factor in emergence of Free/Open-Source

from conventional software. Business success of Linux drew attention to


effectiveness of bazaar-style development and its
software, but Free Software movement was too radical

Prior to the emergence of Linux, Free Soft- for companies

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. 107
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ware and commercial software were devel-


oped by a specific developer or group. The
decision to respond to bug reports and requests to extend software functions was
left up to a development group. It was also customary to release software only after

87
History of Free/Open--Source Software

achieving a certain level of stability in the software. Linux development depart-


ed from this custom by issuing frequent beta releases in mid--development. Internet
users tested the beta releases and sent in their bug reports and patches. This method
involved development by a worldwide user base.
Later, Eric Raymond released the essay The Cathedral and the Bazaar, which used
the term bazaar--style development to refer to the Linux style of development in
which many individuals contribute code. By way of contrast, Raymond used the
term cathedral--building development, commonly called cathedral development, to
refer to a conventional style of centralized development (see Section 5.2.1: Cathe-
dral and Bazaar--Style Development).
The growing market share and business success of Linux drew attention to the effec-
tiveness of bazaar--style development and software developed through this method.
However, companies were apprehensive of the Free Software aspect of the software.
The notion that all software must have freedom was too radical for companies, who
viewed Free Software as being incompatible with business. This situation would
lead to the emergence of Open Source.

4.1.6 Growth of Open Source and Launch of Open Source Initiative


(Late 1990s)
Eric Raymond and Bruce Perens are credited with coining the term “Open Source.” The
term was created to address the alienation toward Free Software among business,
using a term that is widely acceptable to
companies. Open Source borrows from the Growth of Free/Open-Source; Launch of
Open Source Initiative (Late 1990s)
philosophy of Free Software, but with less
OSI (Open Source Initiative)

emphasis on the “freedom” aspect. For Founded by Eric Raymond and Bruce Perens

Strategic initiative to promote adoption by business

Open Source, the emphasis is placed on the Release of Netscape source code impetus for founding
OSI

advantages of releasing source code. The “The Open Source”


Proper noun focusing on software development model

Open Source Initiative (OSI) was later es- Prescribed under the Open Source Definition

Increased recognition has led to greater misuse and

tablished in 1998 to promote the spread of misunderstanding

Other terms being considered

Open Source. OSS : Open-Source Software

FLOSS : Free/Libre/Open-Source Software

The birth of Open Source is associated with 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. 108
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

the release of source code for the Netscape


Web browser developed by Netscape Com-
munications Corporation. Netscape was seeking for a way to recover the large brows-
er share that it had lost to Microsoft’s Internet Explorer. Influenced by Raymond’s
The Cathedral and the Bazaar, Netscape decided to release the source code for its
Netscape browser. At this point, Raymond and others proposed the notion of Open
Source as an easily acceptable term for corporations. It was hoped that the new
term would contribute to the success of releasing the Netscape source code.

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.

4.1.7 Penetrating the Enterprise Market (2000s)


The release of the Netscape source code drew business interest to FOSS. In 1999,
IBM began providing support for GNU/Linux, which had a major impact in opening
the way for serious deployment of FOSS
in enterprise systems. These developments Penetration of Enterprise Market
(2000s)
helped to remove the apprehension of users IBM begins offering GNU/Linux support (1999)

who recognized the low cost of FOSS but Open Source Development Labs (OSDL) founded

did not want to use FOSS for lack of guar- (2000)


GNU/Linux development for telecommunications, data
center and enterprise desktop applications

antees that the software would run prop- Linus Torvalds joins OSDL (2003)

erly. Consortium formed by IBM Japan, Hitachi, Fujitsu


and NEC (2001)

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

tral role in development (The Linux devel- 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. 109
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

opment had begun by himself on an indi-


vidual basis.) Consequently, Linux lacked
the functions needed for large--scale, mission critical systems. The situation prompt-
ed the founding of Open Source Development Labs (OSDL) in 2000, whose members
are involved in joint development to improve the functions of Linux. Among oth-
er projects, OSDL conducts GNU/Linux development for the telecommunications
industry, for data center and for enterprise desktop applications. Linus Torvalds
joined OSDL in 2003, where he is involved in development.
In Japan, a consortium of four leading companies joined forces in 2001 to extend the
functionality of enterprise GNU/Linux. The members of the consortium are IBM
Japan, Ltd., Hitachi, Ltd., Fujitsu Ltd. and NEC Corporation. Improvements to the

89
Definition of “Free/Open--Source Software”

functionality of enterprise GNU/Linux and a wider support structure have enabled


GNU/Linux deployment to spread to backbone systems and financial institution
systems, areas that were previously the exclusive domain of mainframes.

4.2 Definition of “Free/Open--Source Software”


Earlier sections explore the history of FOSS and touch on misunderstandings that
are associated with Open Source Software and Free Software. These misunder-
standings include the notion that releas-
ing source code equates to Open Source Definition of FOSS
Software, and that Free Software means
The software whose source code is published,

software without charge. This section ex- does NOT equal to FOSS
Insufficient, if ONLY publishing its source code

plores the definitions of Open Source Soft- GNU's definition

ware and Free Software to prevent further “Free Software”

OSI's definition

misinterpretation. “Open Source 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. 110
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

4.2.1 GNU Definition of “Free Software”


GNU uses the following definition of “Free Software”:
Free software is a matter of the users’ free-
dom to run, copy, distribute, study, change
and improve the software. More precisely, GNU Definition
it refers to four kinds of freedom, for the
“Free Software” is:

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

· The freedom to run the program, for The freedom to study how the program works, and
adapt it to your needs.

The freedom to redistribute copies so you can help your

any purpose (freedom 0). neighbor.

The freedom to improve the program, and release your


improvements to the public, so that the whole
community benefits.

· The freedom to study how the program Abstract shape: Copyleft

Concrete shape: GNU General Public License (GPL)

works, and adapt it to your needs (free- OK to charge for distribution

Not all Free Software asserts copyleft


dom 1). Access to the source code is a 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
111

precondition for this.


· The freedom to redistribute copies so you can help your neighbor (freedom 2).
· The freedom to improve the program, and release your improvements to the pub-
lic, so that the whole community benefits (freedom 3). Access to the source code
is a precondition for this.

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.

4.2.2 Definition by Open Source Initiative


The definition of Open Source is controlled by OSI and is prescribed under the
Open Source Definition (OSD). OSI explicitly defines the criteria for Open Source
licenses and approves licenses that meet its
criteria. The criteria for Open Source un- Definition by Open Source Initiative

der OSD is organized under the following Free Redistribution


Prescribed by the Open

headings: Source Definition (OSD)


Wider recognition leads to
Source Code

Derived Works

greater misuse of term Integrity of The Author's


Source Code
Criteria for FOSS licenses

1. Free Redistribution Over 50 licenses approved


No Discrimination Against
Persons or Groups
Based on Debian Free No Discrimination Against
Software Guidelines Fields of Endeavor

2. Source Code (DFSG)


OSD places greater emphasis
Distribution of License

License Must Not Be

on distribution criteria Specific to a Product

License Must Not Restrict


Free Software complies

3. Derived Works with Open Source


definition
Other Software

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.

4. Integrity of the Author’s Source Code

5. No Discrimination Against Persons or Groups

6. No Discrimination Against Fields of Endeavor

7. Distribution of License

8. License Must Not Be Specific to a Product

91
Free/Open--Source Software Licenses

9. License Must Not Restrict Other Software

10. License Must Be Technology--Neutral

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.

4.3 Free/Open--Source Software Licenses


Many different types of licenses are used for FOSS. This section examines the fun-
damental notion of a software license and what it means. Major FOSS licenses and
their respective features are also explored.
FOSS Licenses

Software licenses
To begin with, what is a software license?

Click-on contract is frequently used

Typical FOSS licenses and their characteristic


GPL/LGPL

BSD

Other licenses, dual licensing

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

4.3.1 Software Licenses


The price of retail software packages can range from several tens of US dollars
to several thousands of US dollars. The price of contract development for enter-
prise systems can range from several tens
of thousands of dollars to upwards of mil- Software Licenses
lions of dollars. This section examines the
Sales format for software actually for:

fundamental question of the price of soft- Media costs for distribution?

Commensurate cost of contract development?

ware and the value it equates to. For ex- Right to use software is generally purchased

ample, you might wonder if the price of Licenses

Types: Site license, volume account license, etc.

software partially covers media costs for Licensing is an act of contract


Frequently takes shape as contract of adhesion

distributing software and manuals, or the Shrinkwrap contract

User enters into agreement when shrinkwrap on package is


broken

cost of contract development. Click-on and click-wrap contracts

User enters into agreement when button is clicked in

Purchasing a piece of software equates to contract dialog box

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. 114
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

buying the right to use that software. The


price of software is therefore the prescribed
price to gain the right to use software. A license describes the contents of the right
for the purpose of buying and selling the right. Rights are commonly purchased for
a single machine, but can also be purchased as site licenses for organizations such
as companies or schools. Volume account licenses are also available to cover a fixed
number of machines, in units such as 100 or 1,000 machines.

4.3.2 Click--On Contract


With any license, the purchase of a right is an act of contract between the seller and
purchaser. The contract often takes the form of a contract of adhesion or clauses,
using a shrink--wrap contract or a click--on
or click--wrap contract. In a shrink--wrap Example of Click-On Contract
contract, the user is considered to have en-
EULA (End User License Agreement)

tered into the contract when the shrink-- Appears first time application is started

User enters into contract when Accept button is clicked

wrap on the package is torn. In a click--


on or click--wrap contract, a contract di-
alog box is displayed the very first time
the application is started. This dialog box
displays an End User License Agreement
(EULA). The user is considered to have 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. 115
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

entered into the contract when the Accept


button is clicked. However, it is a mat-
ter of ongoing legal debate in several counties whether users actualy enter a valid
contract in this way.

93
Free/Open--Source Software Licenses

4.3.3 Major FOSS Licenses and Their Features


OSI has approved more than 50 licenses for Open Source Software. This section
describes the major OSI--approved licenses.

4.3.3.1 GNU Public License (GPL)


The GNU Public License (GPL) is a concrete expression of the notion of copy--left
in the form of a license. GPL is widely used for Free Software.
To guarantee the freedom of software, the
GPL specifies that if derivatives of GPL’ed GPL
software are distributed, the distribution
GPL expresses copyleft as concrete license

must be accompanied by the source code GPL (GNU General Public License)

and must be distributed under the GPL. A GNU Public License (GPL)

If derivatives of GPL’ed software are distributed, it


must be accompanied by source code
derivative refers to software whose source Protects freedom of software

code has been modified, or software that Derivatives


Modified source code

incorporates GPL’ed libraries. Converse- Uses GPL’ed libraries

GPL v3 protects software freedom from

ly, if the author does not want to release Patents

Mechanisms to prevent modification

the source code to modifications of soft- 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. 116
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ware that is covered by the GPL, that au-


thor cannot distribute these modifications.
It is acceptable for the author to use the modifications for him-- or herself. This
may be an issue for companies wanting to do business based on GPL’ed software.

4.3.3.2 GNU Lesser General Public License (LGPL)


LGPL is less restrictive than GPL and is designed to be easier to use for everything
from commercial software to Free Software. Originally, LGPL was meant to be
used for libraries and was called the GNU
Library General Public License. However, GPL and LGPL
the name was changed to widen its appli- LGPL (GNU Lesser General Public License)

cation beyond libraries, and because FSF GNU Lesser General Public License (LPGL)

Formerly “The GNU Library General Public License”

did not officially endorse the use of LGPL. Features of LGPL (derivative licenses)
Derivatives based on modified source code must also

LGPL and GPL are identical in terms of conform to LGPL

No license restriction for software using LGPL’ed libraries


through dynamic linking

requiring derivatives based on modified source No clear line between derivative and non-derivative work,
depending on extent of linking

GNU’s position: Work is not a derivative if interface is

code to conform to LGPL (or GPL). The clearly defined and software module split off

LGPL a product of compromise?

major difference in LGPL is that it places LGPL a departure from GNU ideals

Software that links to GPL’ed libraries must also conform to


GPL, which could discourage use

no restrictions on the licensing of software Many libraries use LGPL

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. 117
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

that uses LGPL’ed libraries through dy-


namic linking. This means that software

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.

4.3.3.3 Berkeley Software Distribution (BSD) License


The BSD License is considerably less restrictive than GPL or LGPL, but is poorly
suited to protect the freedom of software. BSD places no restrictions on deriva-
tives. A developer can easily modify soft-
ware and make it proprietary software. BSD
The original BSD License had an obnox-
Berkeley Software Distribution (BSD) License

ious BSD advertising clause that said, “All BSD ... Berkeley Software Distribution

Much less restrictive

advertising materials mentioning features No protection of software freedom

Derivative work can be turned into proprietary

or use of this software must display the software

Advertising clause removed in June 1999

following acknowledgement: This product Modified BSD License

includes software developed by the Univer-


sity of California, Berkeley and its con- its contributions.”

tributors.” The advertising clause was a 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. 118
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

problem because it invoked developers to


replace “University of California, Berke-
ley” with their own names. This created a jumble of licenses and resulted in lengthy
acknowledgements when advertising distributions or collections of software.
A modified BSD license was created in June 1999 that removed the questionable
clause. Many BSD software programs are released today under the modified BSD
License.

95
Free/Open--Source Software Licenses

4.3.3.4 Mozilla Public License (MPL)


MPL is the license used for the Mozilla Web browser, an Open Source application
derived from the Netscape browser. The license does not require source code to be re-
leased for applications, plug--ins and other
stand--alone software that is separate from MPL, Apache License, Dual Licensing

MPL’ed software. MPL contains explicit


MPL (Mozilla Public License)

references to legal jurisdiction and patent Mozilla: Open-Source Web browser

Permits closed license for standalone software

issues. It also describes escape clauses re- (applications, plug-ins)

Contains references to legal jurisdiction and patent issues

lated to patent infringement. Includes escape clauses for patent infringement

Apache License from Apache Software Foundation


License used for Apache Project (Web server project)

Includes advertising clause

Not compatible with GPL

Multiple license formats


Dual licensing, triple licensing

Ex. Qt (QPL or GPL), MySQL (GPL or commercial license),


Mozilla (MPL, GPL or LGPL)

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.

4.3.3.5 Apache License


The Apache License is used for the Apache Software Foundation’s Apache Project,
which develops Web server software. Apache License Version 1.0 originally contained
an advertising clause. The clause was later relaxed in Version 1.1 to only require
acknowledgement in end--user manuals, rather than requiring acknowledgement in
advertising. Version 2.0 omitted the advertising clause altogether, but contains
patent--related clauses that make it incompatible with GPL.

4.3.3.6 Other Licensing Formats


Some software gives users the option to select from several licenses, depending on
the interests of the user. These programs use a dual or triple license, enabling the
user to select one license. Dual or triple licensing is used for software such as Qt GUI
toolkit, which is available under the Q Public License (QPL) or GPL. The MySQL
database management system is available under GPL or commercial license, while
Mozilla offers three licensing options including MPL, GPL or LGPL.

96
Philosophy and History of Free/Open--Source Software

4.3.4 OSI--Approved Licenses


In addition to the major FOSS licenses that have already been described, there
are more than 50 other OSI--approved licenses. OSI provides a certification mark,
that may be used as an icon, to show that
a license is OSI--approved. The OSI certi- OSI-Approved Licenses
fication mark indicates conformance with
OSI certification mark

OSD and is only to be displayed for soft- Only to be displayed for software suitably distributed
according to OSI-approved license

ware that is suitably distributed according OSI-approved licenses


Denotes conformance with OSD; requires application

to an OSI--approved license. to OSI for license approval

58 licenses (as of June 30, 2005)

OSI prescribes the steps required to ob- http://www.opensource.org/licenses/index.html

GPL-like licenses

tain OSI license approval. However, there GPL

MPL-like licenses

is considerable debate about the existence MPL, LGPL, CPL, Artistic License

BSD-like licenses

of too many licenses. The trend is to- BSD, MIT, ASF

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. 120
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ward convergence into major licenses such


as GPL (LGPL), MPL and BSD.

4.4 Chapter Review


· Explain the term hacker. Around what time was this term coined?

· Explain the term cracker.

· What was the attitude taken towards software during the early years of electronic
computers?

· In which year was the GNU Project founded?

· What is the goal of the Free Software movement?

· When were the different versions of the GPL released?

· Is Free Software free of charge?

· Explain the term copy--left.

· What is the relation between copy--left, copyright and the GPL?

· What is the specific development model that was made famous by the develop-
ment of Linux? What are its key attributes?

· What was the purpose of introducing the term Open Source?

· Name frequent misconceptions or misunderstandings of the term Open Source.

97
Chapter Review

· Discuss the relation between Free Software and Open Source.

· What is the GNU definition of Free Software?

· Name frequent misconceptions or misunderstandings of the term Free Software.

· 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?

· What is the purpose of a license?

· Explain the terms shrink--wrap and click--on contract.

· Explain what the GPL requires for modification, usage, and distribution of
GPL’ed software.

· How does the LGPL differ from the GPL?

· Why was the LGPL deemed necessary?

· How does the BSD license relate to the GPL?

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

· Is software governed by the GPL FOSS?

· Is software governed by the BSD FOSS?

· What are the characteristics of the MPL?

· What are the characteristics of the Apache license?

98
FOSS Development and FOSS Community

5 FOSS Development and FOSS Community


This chapter examines FOSS development and the functioning of the FOSS commu-
nity. A discussion of FOSS would not be complete without covering the subject of
community involvement. It is important to
understand how FOSS projects are imple- (5) FOSS Development and the FOSS
Community
mented and how you can get involved. De-
FOSS and the FOSS Communication

velopment projects are supported by com- community


FOSS is closely-linked to
FOSS projects are
supported by

munication between project members, so activities in the FOSS


community
communication
between development
participants

it is necessary to understand the commu- Development structure


FOSS developers
How FOSS project

nication methods that are used. The last works?

How to participate in
FLOSS survey: FOSS
developers on-line
survey, conducted from

part of this chapter describes the results FOSS projects?


2002 to 2004

Topics related to FOSS


of the FLOSS--JP FOSS developer survey development

conducted in 2003. 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. 121
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

5.1 Free/Open--Source Software and the FOSS Community


This section provides an overview of FOSS development and the FOSS commu-
nity. The Japan OSS Promotion Forum has published an overview of the distri-
bution routes for FOSS from the develop-
ment community to users. This section al- FOSS and the FOSS
community
so explores the types of FOSS communities
FOSS Distribution: Community to Users

that exist and describes some of the major Japan FOSS promotion forum's working group made a
detailed comment on FOSS distribution from

FOSS communities. communities to users

Types of FOSS communities


How developers and users gather to form their
community?

User communities
Growth of mutual support culture due to a lack of
vendor support

The next issue is to make a good relationship between


user community and developer community

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

5.1.1 FOSS Distribution: Community to Users


The Japan OSS Promotion Forum has published a paper titled “An Overview of Dis-
tribution Routes For OSS From the Development Community to Users.” The docu-
ment, published on February 10, 2005, was
authored by the Japan OSS Promotion Fo- FOSS Distribution: Development
Community to Users
rum’s Support Infrastructure Working Group,
Report prepared by WG of Japan FOSS Forum

whose members include over ten leading Findings of Support Infrastructure Working Group

Describes mechanism for FOSS distribution from

FOSS companies in Japan. The document development community to users

Published: February 10, 2005

Contents of report
describes GNU/Linux distributions and the GNU/Linux distributions: Main FOSS distribution route to
users

various organizations involved in the GNU/Linux Organizations central to GNU/Linux distributions

Development community; user support options and range of


support

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

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. 123
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

opment community as well as distributors,


independent software vendors (ISV), plat-
form vendors and system integrators, etc. FOSS distribution routes and support
responsibilities are also examined.
The document contains two major points to consider for FOSS deployment:

· names of core developers and their activities are published online

· users should deploy FOSS by choosing one of two levels of support:

1. support from vendors outside the development community, or

2. support from the development community assuming that the community will
act out of its own responsibility.

100
FOSS Development and FOSS Community

5.1.2 Types of FOSS Communities


The two major types of FOSS communities are developer communities and user
communities. Numerous local Linux User Groups (LUGs) have been formed for the
Linux user community.
Types of Communities

Developer communities
Communities formed around developer groups

Major FOSS projects form large-scale communities

Members take on various roles

User communities
User communities formed for each application

Cooperative role to address lack of information

Use mailing lists and message boards

Local Linux User Groups (LUGs)


Scores of LUGs across Japan

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.

5.1.2.1 Developer Communities


A developer community forms around a group of developers. Major FOSS projects
form large--scale communities that often involve a solid operating structure based
on the size of the community. Under this arrangement, members are responsible for
various roles including project management, documentation and PR, in addition to
developers that write actual source code.

5.1.2.2 User Communities (Local LUGs)


In contrast to developer communities that revolve around developers, user communi-
ties are often formed through the initiative of application users. The developer side
of a FOSS project typically does not release a lot of information. However, many
users will still want to use an excellent application, driving users to form cooperative
communities resembling mutual aid societies.
User communities make extensive use of mailing lists and message board systems.
Some hold regular meetings. Many Linux User Groups (LUGs) have been formed
with roots at the local level. Japan has scores of local LUGs that are active through-
out the country.

101
Development Structure

5.1.3 User Communities


Japan has a prolific number of user communities, due to a tendency to use in-
dependently localized versions of projects originally developed in English. User
communities in Japan are called User--kai
(User Groups), preceded by the name of User Communities
the FOSS. Prolific number of user groups, preceded by

A Google search conducted in June 2005 name of FOSS


e. g. Top 10 results of Google search using Japanese

using the keyword “User--kai” (rendered in keyword User-kai (June 2005):

Japan PHP User Group

Japan MySQL Users Group

Japanese) produced a list of top 10 results Samba Users Group Japan

Japan PostgreSQL Users Group

dominated by major FOSS user groups. ja: Japan: OpenOffice.org Japan Users Group

Japan Apache Users Group

The rest of the search reveals numerous Japan Zope User Group

Japan GNOME Users Group

links to FOSS user groups, giving an indi- Japan UNIX Society

Python Japan User's Group

Following results: User groups for KDE, Mathematica,

cation of the prolific nature of FOSS user Analog, Snort, SELinux, Firebird, etc.

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. 125
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

communities in Japan and their active lev-


el of involvement.

5.2 Development Structure


FOSS development is characterized by a style of development called bazaar--style de-
velopment. This section describes bazaar--style development and the roles of project
members involved in this style of develop-
ment. Other subjects explored include de- Development Structure
velopment resources and getting involved
Cathedral and Bazaar-style development

in projects. We also explore management Comparison between two types of development


method

of FOSS projects. Bazaar-style development was spotlighted starting


with great success of Linux

Roles of project members


Understanding the roles of various project members

Development resources
Services and businesses that support FOSS
development

Examples of the service

Project repositories

Getting involved in projects

Management of FOSS projects

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

5.2.1 Cathedral-- and Bazaar--Style Development


The comparison of cathedral--building development and bazaar--style development
was first examined in Eric Raymond’s 1997 essay, “The Cathedral and the Bazaar”.
Raymond used the term cathedral--build-
ing development to describe the develop- Cathedral and Bazaar-Style
Development
ment style used by GNU, which predates Eric Raymond’s 1997 essay The Cathedral and the Bazaar

the development of Linux. http://www.catb.org/~esr/writings/cathedral-bazaar/

Cathedral model
GNU described as example of cathedral development, predating
Linux

Note: Cathedral model is not synonymous with development style


of proprietary software

Only specific participants involved in development

No releases until specific results are achieved

Bazaar model
Linux development used as example of bazaar-style development

Open group of participants; respect for individuality; talented


coordinator manages flow of project

Releases any time in mid-development; basic notion of “fast


and frequent releases”

Bazaar-style development since used extensively for FOSS


development projects
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. 127
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

5.2.1.1 Cathedral Model


The cathedral model is a style of development in which only specific participants are
involved in development. The cathedral model is based on centralized, hierarchical
development, with no releases occurring until specific results are achieved. Raymond
used some GNU software as examples of the cathedral model of development. The
cathedral model should not be used as synonymous term for the development style
of proprietary software.

5.2.1.2 Bazaar Model


In the bazaar model, a large and open group of participants contributes to develop-
ment. Releases occur frequently in mid--development. Early Linux development is
a representative example of this development style. The bazaar--style development
process used for Linux made full use of the talents of Linus Torvalds as a coordinator.
Numerous FOSS projects have since been implemented using the bazaar model.

103
Development Structure

5.2.2 Roles of Project Members


In a large--scale FOSS project, members take on a variety of roles. The project lead-
er has the authority to make decisions about the direction of the project. A project
leader is in turn assisted by core members
who play a central role in development and Roles of Project Members
have the authority to change source code.
Project leader: Authority to direct project

The number of core members often ranges Core members: Authority to change source code

from a few individuals to several tens of Project participants


Regular developers: Provide feedback about new features,
enhancements and bug fixes

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

Regular developers also play important roles Other roles:


Resource development (non-programming)

as project members. Regular developers Evangelism, PR (mailing list and/or Web site management)

Financial supporters and providers of development resources

are often FOSS users who provide feedback Supporters for offline activities

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. 128
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

regarding new features as well as refine-


ments and bug fixes. Advanced users are
sometimes given the role of testers involved in testing software and providing bug
reports for each release. Document authors also play a critical role in development,
due to strong demand for documentation aimed at both users and developers.
In addition to programming and documentation, other important project members
include resource developers, PR members, financial supporters and sponsors of com-
munity activities.

5.2.3 Development Resources


Various companies and organizations provide project hosting services as resources for
FOSS development. These services can be actively and effectively used for devel-
opment. Project repositories include ser-
vices such as SourceForge.net, Savannah, Development Resources
BerliOS and the FSF/UNESCO Free Soft-
Project hosting services

ware Directory. Freshmeat.net is a popular Free/Open-source project repositories

SourceForge.net

directory site for new FOSS releases. BerliOS

FSF/UNESCO Free Software Directory

Programs are also available that provide savannah.gnu.org

Software directory sites, software search engines

public funding of FOSS development. In FreshMeat.net

Rpmfind.net, others

Japan, the Information--Technology Pro- Other development resources

motion Agency, Japan (IPA) operates the www.koders.com

Infrastructure Building Program for Open 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. 129
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Source Software to support FOSS develop-


ment.

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,

hosts more than 100,000 Free/Open--Source Inc. (Open Source


Technology Group)

projects, making it the largest repository http://sourceforge.net

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

Web site hosting, CVS repository, a bug Others services

tracking system and communication tools Japanese version


SourceForge.jp

such as message boards. 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. 130
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Open Source Development Network (OS-


DN) Japan operates a Japanese version called
SourceForge.jp. OSDN Japan is a unit of VA Linux Systems Japan.

5.2.5 BerliOS, FSF/UNESCO Free Software Directory, Savannah


BerliOS is a FOSS repository run mainly by a group of researchers from Germany’s
Fraunhofer Institute for Open Communication Systems, also called FOKUS. The
repository offers various services including
the DevCounter tool to promote interac- BerliOS, Free Software Directory

tion between developers, and the DocsWell


and SourceWell repositories for documents
and source code. Other services include
the SourceAgency information exchange for
FOSS project sponsors and developers.
The FSF/UNESCO Free Software Direc-
tory offers a catalog of Free Software. The
http://www.berlios.de/ http://directory.fsf.org/
directory is operated by the 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. 131
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Foundation and UNESCO.


Savannah (http://savannah.gnu.org) is
the software repository for official GNU software.

105
Development Structure

5.2.6 Freshmeat.net, Rpmfind.net


Freshmeat.net is a directory site operated by OSTG, the operator of SourceForge.net.
The site features daily news updates about new FOSS projects. A listing on Fresh-
meat.net is a good way for developers to
advertise their FOSS project. The site is FreshMeat.net, Rpmfind.net
also highly effective for getting word out
about frequent releases that result from
the bazaar model of development.
Rpmfind.net is an effective search engine
for finding software distributed in the RPM
format. The search engine covers all RPM
packages available for GNU/Linux distri-
http://freshmeat.net/ http://rpmfind.net/
butions that utilize the RPM package man- 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. 132
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

agement tool. FOSS deployment can be


simplified by using Rpmfind.net to locate
an RPM that is suitable for your computer environment.

5.2.7 Getting Involved in Projects


This section describes the typical way that a user might get involved in a FOSS
project. The process is initiated by examining the deployment of FOSS that imple-
ments certain functions. Numerous FOSS
programs can be found online, making it Getting Involved in Projects
easy to obtain software that implements
Find software that implements functions you want

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 doesn’t work or is missing

or there may be defects in the software. Take full advantage of released source code

From feeding back your results to joining a

Since the source code is available, you can development team


Get involved to advance software science and the FOSS

take full advantage of FOSS by modifying community

Find existing projects through a project repository


the software through debugging or extend- Make active use of development resources

ing the functionality of the 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. 133
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

If your modifications turn out to be use-


ful, you should send the feedback to the
developer. Fixes for defects should be sent to the development project as soon as
they are found. Over the course of repeated feedback, users are frequently asked to
join a development team. Users are encouraged to get actively involved in FOSS
development, which also contributes to the advancement of software science and the
FOSS developer community.

106
FOSS Development and FOSS Community

5.2.8 Tips for Getting Involved


There are certain courtesies that need to
be observed when getting involved in an Tips for Getting Involved
existing community or development project.
Honest and factual reporting

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

Include error messages, logs

software runs or describing problems with Code you contribute is not just for you
Observe certain courtesies

software. It’s quite understandable that Adhere to coding rules

Include comments so others can read and understand your

you may be agitated, because of a flaw in code

Include a description
the software you want to use, but if you Never send just your code (worst thing you can do)

Use simple and concise sentences to describe your code

let this out on the development communi- 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. 134
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ty, they will be less willing to help. If you


have a bug report, you need to provide de-
tails how to reproduce the bug and the configuration under which it happened. You
should also describe what you were doing at the time and what happened. It is best
to include error messages and log information from the software.
There are many precautions that you should take when sending in a patch or code
that extend the functionality of a program. The code you contribute to a develop-
ment project is not just for you, and should be written according to the project’s
coding rules. You should include comments for important sections of code, so that
others can read the code and understand why you are coding it in this specific way.
You also need to include a detailed description when submitting code. If you fail to
provide any description, the person on the receiving end will have no idea what to
do with your code. Use simple and concise sentences to describe the code you are
submitting.

107
Topics Related to FOSS Development

5.2.9 Project Management


Project management is fundamentally the same for FOSS as it is for general develop-
ment projects. Personal relationships among project members are critical to project
management. It is also important to treat
the activities of each project member with Project Management
respect.
Personal relationships are critical

Participation in FOSS development is open Worldwide development

Enables round-the-clock development: requires use of

to a worldwide developer base over the In- various communication tools

Progress of project accelerated by contributions from others

Requires communication skills

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

tion. Communication skills and flexibility projects

Accelerate development through frequent releases and quick


revisions

are required to ensure the smooth running Does not ensure quick completion

Ensure high quality and strong security through “eyes of

of a project. Advancement of a project many”

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. 135
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

also hinges on proper assignment of roles


based on each member’s contributions to
development.
Projects should be run with a focus on sharing source code over the Internet and
advancing development through frequent releases and quick revisions. Running a
project in this way enables you to capitalize on the features of FOSS development,
in which the “eyes of many” perform checks to enable high quality, secure software.

5.3 Topics Related to FOSS Development


This section examines several topics that relate to FOSS development, such as the
similarity of FOSS development methodologies and the agile development process
which is spotlighted recently. The system
of stable and development releases and the Topics Related to FOSS Development

problem of project forks are also examined,


Agile development and similar methodologies

as well as the pros and cons of FOSS de- Some similarities are there between agile
development and FOSS development

velopment. Stable versions and development versions


Two versions are simultaneously released: stable
version for average users and development version for
developer and progressive users

Project forks
There might be cases that project is divided by two
opposing points of view about its direction

Source code tree is branched at some point

Advantages and Downsides of FOSS

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

5.3.1 Agile Development and Similar Methodologies


Agile development is a software development methodology that emphasizes flex-
ibility in the software development process. As its name suggests, agile devel-
opment stresses realistic development that
is responsive to changes that arise during Agile Development and Similar
Methodologies
software development.
Twelve core practices of Extreme Programming (XP):

The Extreme Programming (XP) method 1. Planning Game

2. Small Releases
Continually plan in small units

Short release cycles

is a leading example of agile development. 3. Metaphor

4. Simple Design

5. Testing
Use metaphors for ease of understanding

Keep the design simple

Prioritize testing in program development

The development method of XP is expressed 6. Design Improvement (originally: Refactoring)

7. Pair Programming
Actively review code

Programmers write code in pairs

8. Collective Code Ownership Make all codes accessible to every programmer

in the following 12 practices: 9. Continuous Integration

10.Sustainable Pace (originally: 40-hour Week)


Continually test and keep the software running

Overwork leads to lower productivity

11.Whole Customer (originally: On-site Customer) Incorporate users into the team

12.Coding Standards Program out of respect for coding conventions

1. Planning Game 2, 8, 9, 12 are also important in FOSS development


However, No. 1, 3, 7 and 10 are difficult to implement under
FOSS development

2. Small Releases 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
137

3. Metaphor

4. Simple Design

5. Testing

6. Design Improvement (originally: Refactoring)

7. Pair Programming

8. Collective Code Ownership

9. Continuous Integration

10. Sustainable Pace (originally: 40--hour Week)

11. Whole Customer (originally: On--site Customer)

12. Coding Standards

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

5.3.2 Stable Versions and Development Versions


The bazaar model of development is based
on a policy of fast and frequent releases. Stable Versions and Development
Versions
Many projects separate their releases into Bazaar model

stable versions and development versions, Policy of fast and frequent releases

Conservative users inconvenienced by trial-and-error

since a trial--and--error approach to new approach to new features

Releases separated into stable versions and


development versions
features can be inconvenient to conserva- Development versions: Source code heavily modified

For developers and cutting-edge users

tive users. Under this system, bazaar mod- Addition of new features

Odd version numbers: 1.1->1.3->1.5…

el development focuses on the release of Stable versions: Changes kept to minimum

For general users

development versions. Incorporates bug fixes, security patches, etc.

Well-received features sometimes back-ported from


development versions without waiting for major update

Development versions are aimed at devel- Even version numbers: 1.0->1.2->1.4…

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. 138
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

opers and advanced users. These releases


incorporate new features at an early stage.
Sometimes the source code is heavily modified and unstable. In contrast, stable
versions are released for general users and incorporate minimal changes. Stable ver-
sions often focus on refinements that mainly consist of bug fixes and security patches.
Features that are well received in development versions are sometimes incorporated
into stable versions, pending stabilization of the feature.
Stable versions and development versions are sometimes distinguished by the version
number used. FOSS projects frequently use odd version numbers for development
versions and even numbers for stable versions, or the opposite. Linux, for example,
uses even numbers (2.0, 2.2, 2.4) for stable versions and odd numbers (2.1, 2.3, 2.5)
for development versions.

110
FOSS Development and FOSS Community

5.3.3 Project Forks


On rare occasions, a FOSS development project will branch off for various reasons,
resulting in a project fork. Examples of major project forks include X.org, which
branched off from the XFree86 project, and
Xemacs that branched off from Emacs. Project Forks
Sometimes a project will branch and gain
On rare occasions, projects can branch off

new features, before merging again with Examples of project forks

XFree86 -> X.Org

the original project to continue develop- Emacs -> XEmacs

Sometimes projects fork and merge again

ment of the software. This happened with Emacs -> Mule -> Emacs

GCC -> EGCS (Experimental/Enhanced GNU Compiler


System) -> GCC

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

separate development. Another example 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. 139
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

is gcc, which was branched off by Cygnus


Solutions into a separate development project
called EGCS (Experimental/Enhanced GNU Compiler System) around the time of
gcc 2.8. EGCS was later reborn as gcc 2.95.
Project forks are an unavoidable aspect of FOSS development projects, to the ex-
tent that FOSS projects are managed by a collective of developers. A fork should be
regarded as a means of last resort as it will typically weaken the projects consider-
ably. The sustainability of FOSS development is assured through the fundamental
FOSS principles of freedom of modification and redistribution, but a lively project
needs contributors. There is no way to prohibit a project fork. FOSS helps to main-
tain the sustainability of development even if different opinions within the project’s
development community lead to forks.

111
Topics Related to FOSS Development

5.3.4 Advantages of Free/Open--Source Development


The fundamental advantages of conducting software development on a FOSS plat-
form are the low cost and the inclusion of source code. One advantage of a plat-
form like GNU/Linux is its high scalabil-
ity to support everything from embedded Advantages of Free/Open-Source
Development
to mainframe platforms. Many FOSS pro-
Fundamental advantages of program

grams run on Unix--like platforms for IBM development on FOSS platforms


Low cost (although Free Software does not mean free of

PC--compatible machines, which is a ma- charge)

Comes with source code

High scalability (everything from embedded to mainframe)


jor advantage in terms of using existing Use existing Unix technology
Ability to use Unix technology and existing software assets

Unix technology without modification. The on low cost hardware (PC-compatible machines)

Increasing availability of development tools for

extensive catalog of GNU software and oth- various applications


Mission critical fields

er software assets can also be used. Image processing, multimedia, science and technology
computing, etc.

Development tools are increasingly avail- Embedded applications

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. 140
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

able today for applications ranging from


mission critical fields and business appli-
cations to image processing, multimedia, science and technology computing, and
embedded applications. An environment that enables developers to take advantage
of the benefits of FOSS for all types of applications is starting to emerge.

5.3.5 Risks of Free/Open--Source Development


In addition to its advantages, there are certain downsides of FOSS development.
The major downsides are as follows:

· Shortage of FOSS engineers Risks of Free/Open-Source


Development

· Lack of guarantees and support Shortage of FOSS engineers


Demand outstripping supply (both for user enterprises and system
integrators)

Urgent need for human resources development programs, training

· Lack of development experience environments, training materials and university education

Retraining of Unix engineers offers shortcut

Lack of guarantees and support


Shift needed from volunteer development to enterprise support

The shortage of FOSS engineers is an indi- Support issue highly dependent on technical capabilities of user
company

cation that demand is outstripping supply Lack of experience


Newness of FOSS development model

both among user enterprises and for devel- Knowledge of how to collaborate with development community
still to come

Challenge of finding balance for securing intellectual property

opment. Human resources development, rights


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. 141
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

training environments, training materials


and university education are urgently needed to address the shortage of FOSS en-
gineers. As a shortcut, existing Unix engineers can be retrained to address the
shortage of GNU/Linux engineers.
The support issue indicates that there is currently room for the emergence of compa-
nies that can provide support services. Presently, there is an urgent need to examine

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?

The importance of offline communication Communication is critically important

is also explored, including the benefits of Communication tools


On-line communication utilizing various tools

getting actively involved in conferences. What kind of tools are used?

Pros and cons of on-line communication tools


Evaluating the pros-and-cons of each tools

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

5.4.1 Communication Tools


Online communication for FOSS development is frequently conducted through e--
mail, mailing lists and message boards, as well as IRC (Internet Relay Chat) and
other chat systems. Wikis and blogs are
also used. E--mail tends to be most widely Communication Tools
used. Separate mailing lists are sometimes
Methods of online communication

provided for developers and users, and can E-mail exchange between developers

Mailing lists administered by project

be supplemented with additional mailing Developer mailing list: xxx-devel@hoge.fuga.org

User mailing list: yyy-uers@foo.bar.baz

lists devoted to discussion of specific top- Message board on project Web site

IRC (Internet Relay Chat) and other chat systems

ics. Conventional telephone and fax com- Wiki, developer blogs

Conventional tools to supplement online

munication is also used to supplement on- communication


Telephone, fax, etc.

line communication. English is the universal language of communication


Overall communication skills more important than English

Except for communication taking place lo- ability

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. 143
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

cally (in non--English speaking countries),


English is the main language for global com-
munication. Advanced English skills are not required, due to a stronger emphasis
on overall communication skills.

5.4.2 Pros and Cons of Online Communication Tools


The chart at right shows the respective pros and cons of using e--mail, mailing lists,
message boards, IRC and other chat systems, Wikis and blogs. E--mail and mail-
ing lists are relatively conservative meth-
ods of communication and are familiar to Online Communication Methods: Pros
and Cons
everyone. Message boards and chat sys-
Pros Cons
tems are accessible tools for carrying out Familiar user interface Not suited to discussion
E-mail
between multiple persons
discussions in real time, but there is a ten- Familiar user interface Redundancy from copies
Mailing list

dency for discussions to become derailed. Message Accessible, shows flow of


of all messages

Discussion tends to
board
This makes them unsuitable for in--depth IRC and other
discussion

Allows for instantaneous


become derailed

Not suited to in-depth


chat systems discussion discussions
discussion. Wiki
Emphasis on Comparatively static
documentation medium
Wikis and blogs are relatively static medi- Blog
Blogger can assert own Not designed for
opinions discussion
ums for communication, with an empha- 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. 144
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

sis on documentation. It is important to


choose the appropriate method of commu-
nication for each situation, for the sake of effective development and project man-
agement. The choice of communication method should take into account the level
of discussion, views of participants and the style of project management.

114
FOSS Development and FOSS Community

5.4.3 Offline Communication


The wide availability of tools for online
communication means that it is important Offline Communication
to select the best tool for each situation.
Power of offline communication

There are also limits to online communi- Significance of face-to-face communication

Non-verbal communication

cation. Body and hand language

Expression, tone of voice, general mood, etc

Sometimes accelerates development through kinship


Online communication can often result in and understanding personalities of others

Limits of online communication felt during:


problems such as flame wars or netiquette Eruption of flame wars

Observance or non-observance of netiquette

issues. Online communication involves many Difference between written and spoken words

Difficult to convey subtle nuances through writing

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.

of writing to convey ideas. These elements


make it extremely difficult to convey sub-
tle nuance to another person through online communication. The short history of
online communication and its shifting culture are additional factors that make it
difficult to communicate solely through online communication.
Occasionally meeting face--to--face and communicating offline can hold great signif-
icance. Non--verbal communication expressed through body and hand language, as
well as through facial expressions and general mood, can be powerful assets in terms
of understanding the views of developers. Non--verbal communication also conveys
information about the background of each individual. Offline communication often
helps development to proceed more smoothly.

5.4.4 Participating in Conferences


Participation in international FOSS conferences provides a good opportunity for de-
velopers located around the globe to participate in offline communication. Numerous
conferences are held throughout the year.
Major FOSS conferences include the Libre Participating in Conferences
Software Meeting in France, LinuxTag in
FOSS-related global conferences

Germany, and the Ottawa Linux Sympo- Libre Software Meeting/ Rencontres Mondiales du
Logiciel Libre (France)

sium in Canada. There are many other LinuxTag (Germany)

Ottawa Linux Symposium (Canada)

FOSS conferences such as Debian confer- Many others such as DebConf, BSDCon, etc.

Actively interact with others

ences and scientific conferences sponsored Advantages

Get word out about own project

by IT associations. Get advice about software design and implementation

Could lead to cooperation with developer teams

Mutual exchange between developers and users

Participating in conferences and actively Build personal network, exchange information, etc.

meeting other people involved in FOSS of- 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. 146
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

fers many advantages. In addition to get-


ting word out about your project, it pro-
vides an opportunity to get advice about software design and implementation. Con-

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.

5.5 FOSS Developers


This section examines the profile of engineers involved in the FOSS development
community. The Free/Libre/Open--Source Software Japanese Developers Online
Survey or FLOSS--JP Survey was conduct-
ed in 2003 and provides insight into the FOSS Developers
profile of FOSS developers in Japan, as FLOSS Surveys

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?

plores the type of contributions made by Reason for getting/staying involved


What is the reason to participate in FOSS activities?

developers, their level of involvement and Type of involvement


What is their involvement in FOSS projects?

whether they receive income from FOSS Global involvement

development activities. Realities that global communications on FOSS activities

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.

5.5.1 FLOSS Surveys


A FLOSS survey is an online survey designed to provide insight into the conditions
of FOSS developers. The original Free/Libre and Open Source Software: Survey and
Study or FLOSS Survey was conducted in Europe in 2002. The survey was carried
out by the Maastricht Economic Research Institute on Innovation and Technology
(MERIT).
The European survey was followed by the FLOSS--US Survey implemented in the
first half of 2003. The US survey was conducted by the Stanford Institute for
Economic Policy Research (SIEPR). The FLOSS--JP and FLOSS--ASIA studies were
implemented in Japan and other parts of Asia from 2003 to 2004. Both studies were
commissioned by the Japanese Ministry of Economy, Trade and Industry (METI)
and carried out by Mitsubishi Research Institute, Inc. or MRI.

116
FOSS Development and FOSS Community

5.5.2 Free/Libre/Open--Source Software Japanese Developers Online


Survey
The FLOSS--JP Survey was created due to extremely low levels of Japanese partic-
ipation in earlier FLOSS and FLOSS--US Surveys. Lack of Japanese participation
in the European and US surveys is blamed
on the language barrier, since both surveys FLOSS Surveys
were conducted in English. The FLOSS--
What is a FLOSS survey?

JP Survey was carried out using question- Provides insight into conditions of FOSS developers

Analysis-based online survey

naires prepared in Japanese. The FLOSS-- Free/Libre/Open Source Software online survey

ASIA Survey that followed was implement- FLOSS Survey (2002)

Conducted by Maastricht Economic Research Institute on


Innovation and Technology (MERIT)

ed using paper questionnaires prepared in FLOSS-US Survey (2003)

Conducted by Stanford Institute for Economic Policy

four languages: Chinese, Korean, Thai and Research (SIEPR)

FLOSS-JP Survey, FLOSS-ASIA Survey (2003-2004)

English. Conducted by Mitsubishi Research Institute, Inc. (MRI)

Commissioned by Japanese Ministry of Economy, Trade and


Industry (METI)

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

Online survey and questionnaires distributed at conferences

Valid responses: 547

OSS and Free Software, and whether they Survey content

receive compensation or sponsorship for their FOSS/FS experience, level of involvement, personal profile

Initial impetus for getting involved in FOSS/FS development,


reasons for staying involved, personal views

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:

enable comparison with data from the FLOSS http://FOSS.mri.co.jp/floss-jp/

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. 149
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

and FLOSS--US Surveys, but are not iden-


tical and have been altered to fit circum-
stances in Japan.

117
FOSS Developers

5.5.3 Developer Background and Involvement


This section explores the personal profiles of developers, as observed in the FLOSS--
JP Survey. Nearly all respondents are males with the median age in the early thir-
ties, which is several years higher than in
the FLOSS and FLOSS--US surveys. Re- Developer Background and
Involvement
spondents tend to be highly educated, with
Personal background

a majority possessing an undergraduate or Late 20s/early 30s, mostly male

Majority possess undergraduate or master’s degree

master’s degree. Many of the respondents Many software engineers, programmers, students and
university instructors

are software engineers, programmers, stu- Position on FOSS or Free Software


Identify with FOSS: 43.7%

dents or university instructors. Identify with Free Software: 26.7%

Do not care: 29.6%

When asked about their position on Open Time spent on development


(per week)
Source and Free Software, respondents tend Two-thirds spend 5 hours or less

to identify with OSS, unlike the European 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. 150
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

FLOSS Survey where many respondents


identify with Free Software. About two--
thirds of respondents in the FLOSS--JP Survey spend five hours or less on develop-
ment each week.

118
FOSS Development and FOSS Community

5.5.4 Reason for Getting Involved


More than one--third of respondents in the FLOSS--JP Survey indicate that they
got involved in a project as a result of releasing their own software program. The
next most popular reasons are, in descend-
ing order: sending in a patch, exchanging Reason for Getting Involved
e--mail with the author, replying to a user’s
Initial reason for getting involved in project

question on a mailing list, and reporting a Released program I wrote myself: 36.5%

Sent in patch: 16.2%

bug. Those who cite releasing their own Exchanged e-mail with author: 10.7%

Replied to user’s question on mailing list: 10.5%

program or writing their own patch ac- Reported bug: 10.5%

count for more than half of all respondents.


This data indicates that respondents to the
FLOSS--JP Survey are primarily made up
of program developers. 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. 151
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

5.5.5 Reasons for Staying Involved


Nearly two--thirds of respondents indicate that their motivation for staying involved
in development is to learn new skills, while nearly half the respondents cite a desire
to share their own knowledge and skills.
This data clearly indicates that developers Reasons for Staying Involved
possess an attitude of sharing FOSS infor-
Own motivation for continued development

mation. (multiple responses allowed)


Learn new skills: 64.9%

The reasons for staying involved was posed Share knowledge and skills: 48.9%

Solve problems not possible with proprietary software:

as a two--part question, inquiring about 29.2%

Improve FOSS/FS from other developers: 24.9%

the respondent’s own reasons and his or Realize new idea for software: 22.5%

Two-part question

her opinion of why others are involved. The Own motivation

Opinion on motivation of others

two sets of data are similar. However, the


desire to learn new skills is the leading rea- 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. 152
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

son for personally staying involved, but is


cited less frequently for the motivation of
others. Responses that are more often cited as a motivation for others include
solving problems not possible with proprietary software and the view that software
should not be a proprietary product. Interestingly, the data suggests a trend for
developers to feel that others are motivated for idealistic reasons.

119
FOSS Developers

5.5.6 Type of Involvement


More than half of all respondents in the FLOSS--JP Survey indicate that they are
involved in developing main functions. One--third of respondents are involved in
writing bug fixes and patches. The next
most common activities are testing, doc- Type of Involvement
ument translation and document prepara-
Main types of involvement (multiple responses

tion. Packaging, localization, project man- allowed)


Develop main functions: 52.1%

agement and user support are each cited Write bug fixes: 36.0%

Write patches: 33.6%

by about 10% of respondents. The data Testing: 20.9%

Document translation: 14.3%

indicates that respondents are involved in Document preparation: 14.0%

Packaging: 12.5%

many aspects of software development. Localization: 10.8%

Project management: 10.2%

User support: 9.8%

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.

5.5.7 Global Involvement


Interest in FOSS development tends to focus on the global nature of FOSS devel-
opment over the Internet. However, the FLOSS--JP Survey finds that 62.3% of
Japanese developers are mainly active in
the Japanese development community. Al- Global Involvement
though the remaining 37.7% of developers
37.7% involved in global development

indicate some involvement at the interna- community


Mainly active in Japanese community: 62.3%

tional level, only 16.1% indicate that they Mainly active in global community: 16.1%

Involved in both: 21.6%

are primarily involved in the global devel- English ability


68.3% feel own ability is limited
opment community. English ability and level of activity

Not necessarily related

Almost 70% of developers feel that their Depends on enthusiasm and patience

English communication skills are limited.


However, the survey shows no relationship 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. 154
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

between the level of FOSS involvement and


English ability. This indicates that En-
glish ability is not a prerequisite for involvement, and is dependent on the enthusiasm
and patience of the developer.

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

their FOSS development experience. This from FOSS activities


41.2% have profited indirectly from FOSS activities

data indicates that social recognition of Hired or found new job due to FOSS development
experience: 9.6%

FOSS development experience is starting Data indicating social recognition as technical


experience

Awareness of involvement in FOSS


to grow. development
School/employer not aware of own involvement in

Just over 40% of developers indicate that FOSS: 40.8%

Preference: Desire to be involved in FOSS

their school or employer is unaware of their development as part of work

involvement of FOSS development. Many 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. 155
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

developers indicate that they wish to be


involved in FOSS development as part of
their work, which suggests that the situation could be improved.

5.6 Chapter Review


· What are the characteristics of user comunities? What are the characteristics of
developer communities?

· What are the characteristics of cathedral--style development? What are the char-
acteristics of bazaar--style development?

· Discuss the relation between proprietary software, FOSS, cathedral--style devel-


opment, and 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?

· What are the characteristics of sourceforge.net, berlios.de, and freshmeat.net?

· 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?

· Discuss key aspects to project management in FOSS projects.

· What are the characteristics of agile development?

121
Chapter Review

· Which 12 practices make up extreme programming?

· Which of these can easily be practiced in the context of FOSS development?

· Which of these tend to be less suitable for FOSS development?

· Explain the motivation of separating the development of a FOSS project into


stable and development versions.

· What is a project fork ? Why should it be avoided if at all possible?

· 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 relevant is offline communication to FOSS development?

· How did FOSS developers typically get involved in FOSS development in the
past?

· What were typical reasons for staying involved in FOSS development?

· How many developers directly earned an income from FOSS?

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

changed. System development using FOSS FOSS business


Relation between
Vendors into FOSS
business

is explored as one facet of FOSS business, changes of IT


environment and FOSS
Many manufacturers
are moving in FOSS
business
using various case studies. Other topics Factors driving FOSS
business market for a
variety of reasons

explored include the reasons for involve- business


How is the market trend?

ment in FOSS business by companies, fo- Types of system


development using
cusing on the FOSS business of major ven- FOSS
Examining typical FOSS

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.

6.1 Reasons for Interest in FOSS Business


Changes in the IT environment and resulting shifts in the software business are two
of the leading factors driving the interest in FOSS business. The spread of broad-
band Internet service has had a particu-
larly strong impact on changes in the IT Reasons for Interest in FOSS Business

environment. The situation has caused a


Changes in IT environment

shift in the software business from a pack- Enormous improvement of S/W, H/W and highly
sophisticated network infrastructure (wide use of the

age sales model to a service provider mod- broadband Internet)

Changes in the software business

el. Software vendors have to change their business model

Shift from package sales to services


Market requires IT vendors to change their business to
service-oriented business

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

6.1.1 Changes in IT Environment


Technical innovations during the past dozen years or so have led to drastic advance-
ments in both hardware and implementation technology for software. Professor
Gordon Moore, co--founder of Intel Cor-
poration, proposed Moore’s Law in 1965. Changes in IT Environment
Moore’s Law predicted that the packing
Advances in hardware and implementation of

density of semiconductors would double ev- software


Faster CPU speeds

ery 18 to 24 months, which proved to be Moore’s Law

CPU clock frequencies nearing their limits

correct as CPU computing speeds acceler- Trend in technology development shifting to parallel and
distributed computing

Advances of software technology

ated. P2P technology

Multimedia technology

However, as CPU speeds became faster, Advances of software design methodologies

Spread of Internet
issues with power consumption and heat broadband (ADSL) connectivity

Now possible to freely download large-scale software

generation became apparent. Increases in 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. 158
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

CPU clock frequencies are nearing their


limits today, causing the trend in technol-
ogy development to start shifting toward parallel and distributed computing.
Advancements in various areas of software technology have also been remarkable,
such as the network technology from client--server to peer--to--peer architectures,
database, mass data processing technology, and multimedia technologies. Software
design methodologies have evolved to favor object--orientation.
Advancements in network technology and the spread of the Internet in particular
have had a major impact on the IT environment. The implementation of broadband
networks based on ADSL and optical connectivity have made it possible to rapidly
distribute massive volumes of data. It is now possible to freely exchange large--scale
software, in turn enabling simultaneous and parallel development of software on a
global scale. This is one of the major impacts on the growth of FOSS.

124
FOSS Business

6.1.2 Changes in the Software Business


Rapid changes in the IT environment have also driven the need for a sudden transfor-
mation in the nature of the software business. In the conventional software business,
the primary business models were package
sales, application development and system Changes in the Software Business

integration. Software service provision and


Need for transformation of software business,

maintenance were treated as incidental busi- driven by rapidly shifting IT environment


Conventional software business

nesses. Package sales

Application development

Changes in the IT environment led to new System integration

New issues emerged by changes in IT environment


challenges for the software business that Widespread unauthorized use of illegally copied software

Increasing complexity of software

began to hinder conventional ways of doing Numerous security incidents

Rapid obsolescence

business. For example, software and data What kind of business model is best?

can now be easily copied over networks, 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. 159
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

resulting in the rampant software piracy


and illegal use, leading to declining sales
of packaged software.
Software in itself has become increasingly bloated and complex, increasingly expos-
ing security issues such as viruses, worms and unauthorized access. The sheer speed
of progress in software and hardware has led to obsolescence of software soon after
it is developed and sold, making it difficult to recover development costs.

6.1.3 Shift from Package Sales to Services


Driven by changes in the IT environment, the software business began searching for
new business models. One solution is the major trend to shift from package sales
to a service--based business.
An application service provider (ASP) us- Shift from Package Sales to Services

es Web applications to provide services to


Shift to service-oriented business

other companies over the Internet. ASPs Emergence of ASP model

Provide services over Internet, using Web applications

have become quite prominent in recent years. Does not concern with its implementation

Use FOSS to enable early and low cost services

The ASP model does not concern with its Other service-based businesses
Customization

implementation to provide services. FOSS System integration using FOSS

Selective use of FOSS in application development for

is frequently used to enable early and low improved efficiency

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.

tomization of specific systems and the sys-


tem integration business. The ability to
modify and change the source code of FOSS--based systems gives them excellent
flexibility for customization. System integration using FOSS offers the same ad-
vantages, with the added possibility of building systems at low cost. The low cost

125
Factors Driving FOSS Business

factor is an advantage that cannot be ignored. Selective use of FOSS in application


development can be also used to improve the overall efficiency of development.

6.2 Factors Driving FOSS Business


The market for GNU/Linux--related business occupies a major share of FOSS busi-
ness today. GNU/Linux is now deployed in a wide range of application fields.
This section describes how the market for
GNU/Linux business is expanding, focus- Factors Driving FOSS Business
ing on the situation in Japan.
Expanding GNU/Linux related market
GNU/Linux has already been in use in many fields of
practical business

Network servers, mission-critical systems

Computational applications, desktops

Embedded systems

Case study: the situation of Japanese market

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.

6.2.1 Growth of GNU/Linux Market


FOSS server machines running GNU/Linux or FreeBSD initially were deployed
as Internet servers, namely Web, mail, DNS, firewall and proxy servers. These
FOSS servers have been running stable till
today and accomplished tremendous per- Growth of GNU/Linux Market
formance.
Internet servers

GNU/Linux also began to be deployed for Web, e-mail, DNS, firewalls

Already established in this field

workgroup servers as part of infrastructure Work group servers

for file sharing and client--server systems. File sharing, client-server systems

Deployment rapidly increasing as segment enters


growth period

This development was driven by the spread Servers for backbone systems

of Intranets that use Internet technology High reliability servers for large-scale tasks

Finance, telecommunications, e-government, etc.

to deploy LANs within organizations. GNU/Linux Studies by OSDL’s Carrier Grade Linux (CGL) working
group, etc.

Serious deployment began in 2003

deployment for these applications contin- 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. 162
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ues to grow today at a rapid pace.

126
FOSS Business

In addition to Internet servers and com-


paratively small--scale workgroup servers,
GNU/Linux is beginning to be deployed
in servers for backbone systems that re- Growth of GNU/Linux Market

quire high reliability and scalability. GNU/Linux (Cont’d)


Science and technology computing

deployment is also emerging as infrastruc- Simulations, analysis, data mining

GNU/Linux share rapidly growing; field naturally suited to GNU/

ture for diverse systems used as building Linux

>85% of Top500 run GNU/Linux

Top 5 all run GNU/Linux

blocks for financial, telecommunications, Linux Networx (2300CPU, 7.6TFlops)

GNU/Linux used lately for grid systems research

e--government and e--commerce systems. Desktop GNU/Linux


Major factors: Spread of FOSS office suites, low cost PCs, etc.

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

video recorders, Sharp Zaurus PDA, OpenMoko phone

simulations, analysis and data mining, due 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. 163
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

to the history of Unix workstation deploy-


ment in these fields. GNU/Linux cluster
computers that use parallel computing technology have produced excellent results.
Recently, the 5 fastest suprtcomputers on the Top500 are all running Linux, of
all systems in the Top500 >85% are running Linux (as of 07/2008). GNU/Linux
is recently being deployed for grid computing research, an area of application for
distributed computing.
In addition to science and technology, GNU/Linux deployment is expected to spread
on desktops. Driving factors in the growth of desktop GNU/Linux include that
practical FOSS office suites have developed, and the global trend toward increasingly
affordable hardware. However, some issues need to be resolved for GNU/Linux to
spread in Asia, such as the handling of Asian languages that use non--alphabetical
characters.
There is also a large market for embedded GNU/Linux. Embedded GNU/Linux
deployment is steadily increasing for information appliances and dedicated terminals
for specialized applications.

127
Factors Driving FOSS Business

6.2.2 GNU/Linux in the Japanese Market


The figure shows the forecast size of the Japanese GNU/Linux business market,
based on data from NEC Corporation. The GNU/Linux market was estimat-
ed at 183 billion yen in 2003, but is fore-
casted to grow nearly threefold to 450 bil- GNU/Linux Market in Japan
lion yen by 2007. In 2007, system inte-
Forecast for Growth of Linux Business in Japan
gration using GNU/Linux is forecasted to
Billion
Japanese
Yen

500

account for nearly half of the GNU/Linux 400


Linux SI

Support

market. More than half of the remain- 300


Linux PF(HW,SW)

160
210

ing GNU/Linux market is expected to sup- 200

94
120

130

port and maintenance services, with the


80 100

80
100
63
55
110
90

remainder comprising hardware and soft- 0


48

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

6.3 Types of Systems Development Using FOSS


This section explores the current FOSS business from a technical standpoint. FOSS--
based systems are widely deployed to provide Internet services. Typical FOSS--
based systems such as LAMP systems, Ja-
va--based systems and other systems are Types of Systems Development
Using FOSS
examined.
Market penetration and reasons for FOSS system
adoption
More than half of small-scale servers adopt FOSS

Major reasons are relatively lower cost and stability of


FOSS

Typical FOSS system structures


LAMP/LAPP systems

Java-based systems

Conventional applications for FOSS servers

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.

6.3.1 Market Penetration and Reasons for FOSS System Adoption


FOSS systems are adopted in more than half of all small--scale servers. According
to a survey conducted by Nikkei Business Publications, Inc., FOSS was adopt-
ed in more than 60% of Web servers and
half of all workgroup file servers. The main Market Penetration and Reasons for
FOSS System Adoption
reasons cited for using FOSS systems were
Adoption of FOSS systems on small-scale servers

their low cost and stability. The low cost Where are FOSS systems used?

(Source: Survey by Nikkei Business Publications)

factor is largely inherent to FOSS, but the Web servers: 60%

Work group file servers: 50%

other reasons cited for adopting FOSS sys- Reasons for adopting FOSS systems
Low cost: 65%

tems can be derived from the Unix--based Stable operation: 50%

Security: 30%

origins of FOSS systems. These reasons Ease of remote operation: 25%

include the stability and security of FOSS


systems, and the simplicity of management 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. 167
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

due to ease of remote operation.

129
Types of Systems Development Using FOSS

6.3.2 LAMP and LAPP Systems


LAMP and LAPP systems are typical configurations used for Web application
systems. A LAMP system uses the GNU/Linux OS running Apache Web server
and MySQL as a DBMS. Applications are
written using script language PHP. LAMP LAMP and LAPP Systems
is an acronym for Linux, Apache, MySQL
Web service development accounts for large

and PHP. percentage of Free/Open-Source development


Ranks high in FLOSS-JP Survey

A LAPP system uses a similar configu- Typical system configurations

ration except for using PostgreSQL as a LAMP systems development

GNU/Linux OS, Apache Web server, MySQL database, PHP


script language

database. PHP is frequently used as a LAMP stands for Linux, Apache, MySQL, PHP

LAPP systems development

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

such as Perl and Python are sometimes 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. 168
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

used via a CGI (Common Gateway Inter-


face). A LAMP or LAPP system can use
any of these script languages.
Web service development is very popular today, along with ASP. In many FOSS
projects, a certain percentage of development is devoted to Web service develop-
ment. In the FLOSS--JP Survey conducted in 2003, LAMP and LAPP systems
development accounted for a high percentage of development.

6.3.3 Java--Based Systems


Java was initially promoted as a way to run Java applets on client machines, based
on a “Write Once, Run Anywhere” ideal. In actual practice, Java is widely used
to run servlets on server machines. Nu-
merous Web application systems are built Java-Based Systems
using Java as an application layer.
Lower development costs

Free/Open--Source Java--based systems typ- Use Free/Open-Source Tomcat in place of commercial


servlet engines

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

Comparatively small-scale systems

Java deployment also reduces platform de- Used to implement systems comparable to LAMP systems

Large-scale systems

pendency, it is also used as a way to build Extensive use of J2EE or frameworks

Use GNU/Linux for running environment

low cost systems based on the GNU/Linux Frequently rely on commercial components to implement
complex business logic

platform. Many Java--based systems are 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. 169
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

built using GNU/Linux, Apache and Tom-


cat, in order to achieve low cost systems
comparable to LAMP systems. Even large--scale systems that make extensive use
of J2EE or various frameworks frequently rely on selective FOSS adoption based
on GNU/Linux. However, systems that require the implementation of extremely

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.

6.3.4 Conventional Applications for FOSS Servers


Many systems are configured using a combination of FOSS servers. For example, a
combination of stand--alone FOSS servers can provide an adequate level of service
for a small--scale workgroup server used by
several tens of staff. The widely deployed Conventional Applications for
FOSS Servers
Apache Web server is highly extensible, en-
Information sharing services, operation of portal

abling the use of modules to extend vari- sites


Apache used for Web server

ous features. These extension modules can Various modules can be used to provide diverse services

Small-scale system integration

be combined to implement diverse services. Work group server: Combination of standalone FOSS
servers provides adequate service level

Sometimes customized extension modules Use of package LAMP systems


CMS, business application packages, etc. Closer

are implemented to provide new services. inspection frequently reveals LAMP or LAPP system
underneath

LAMP systems are frequently used as the


basis of package FOSS systems for Con- 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. 170
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

tents Management System (CMS) or busi-


ness applications. A package FOSS system
can simplify the deployment of a new Web application system. Many such systems
are being developed today, and their deployment is forecasted to increase in the
future.

6.4 Entry of Major Vendors into FOSS Business


The last section of this chapter examines the reasons for major vendor participa-
tion in FOSS business. The basic approach of major vendors is that of a service--
oriented business model. Concrete exam-
ples of FOSS business are examined in Chapter 7. Major Vendors Moving into FOSS
Business

On-demand computing and FOSS

IBM's GNU/Linux branding strategy

Situation for leading Japanese manufacturers

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

6.4.1 On--Demand Computing and FOSS


The primary business of major computer
vendors was originally rooted in the main- On-Demand Computing and FOSS

frame business. Major computer vendors Mainframes -> Open systems (client-server) -> Web

later shifted their focus to open systems computing -> ?

Vision: networked servers provide on-demand

or client--server systems in response to the computing power


Computers used like water or electricity

Much like turning a faucet produces water or plugging into an

trend for down--sizing. These vendors have outlet provides electricity

No need to worry where water or electricity comes from

lately turned to Web computing for their IBM's on-demand computing, Sun's utility computing

FOSS-based platform for on-demand computing

primary business, which makes extensive Compete through services, not infrastructure or packages

Reasons FOSS is suited for common platform: low vendor


dependency, modifiable by each company, low cost,

use of Web technologies. scalability

IBM strategically positioning itself behind FOSS in

Looking even further ahead, major com- anticipation of transformation into services company

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. 172
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

puter vendors provide a vision that mul-


tiple servers are connected to enable on--
demand use of necessary computing resources. Under this vision, computers would
be used in much the same way that we use water and electricity resources. Infor-
mation processing would be available anywhere and at anytime, just as water can
be produced by turning a faucet or electricity accessed by plugging into an outlet.
This computing environment can also be understood as the realization of ubiquitous
computing.
IBM refers to this vision as on--demand computing, while Sun Microsystems labels it
utility computing. The labels are different, but the concepts are essentially the same.
Providing an infrastructure is essential to the realization of on--demand computing.
FOSS is expected to be a suitable solution for providing this infrastructure, due
to cost, development speed and security considerations. The deployment of FOSS
infrastructure for on--demand computing is similar to the way that various FOSS
servers provide Internet services today. Major computer vendors are also aiming
to create added value through the provision of services. Under this strategy, major
vendors are preparing FOSS that can be used as common platform as the basis for
customization services that differentiate one vendor from another. Major vendors
have settled on FOSS as a suitable platform for implementing customization services.

132
FOSS Business

6.4.2 IBM’s GNU/Linux Branding Strategy


IBM is leading the push behind GNU/Linux among major computer vendors. The
company is proud of its industry leading status for more than 30 years. IBM
was relatively early to focus on the future
potential of GNU/Linux, anticipating that IBM’s GNU/Linux Branding
Strategy
GNU/Linux would steadily gain populari-
IBM views itself as trend-setter for computer

ty in the future. industry


Pride as industry leader for over 30 years

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

IBM decides to back GNU/Linux

can acquire technology by buying out the Prevent GNU/Linux from going in its own direction

Build brand image where GNU/Linux is synonymous

developer of the technology, but this strat- with IBM

Can be interpreted as attempt to take over GNU/Linux


brand

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.

IBM adopted a strategy to influence the di-


rection of GNU/Linux. By putting its sup-
port behind GNU/Linux, IBM hopes to build a brand image in which GNU/Linux
becomes synonymous with IBM.
IBM is actively supporting developer communities through initiatives such as re-
leasing IBM patents to the community and sharing technology of its own products.
IBM maintains a good relationship with the FOSS community today. However,
IBMs strategy can be interpreted as an attempt to simply take over the GNU/Linux
brand. In the past, other companies have taken the wrong approach and created
a backlash among the community, resulting in business failure. Branding strategy
such as this requires a great deal of caution.

133
Chapter Review

6.4.3 Situation for Leading Japanese Manufacturers


The situation for Japanese computer makers is slightly different from IBM. Like
IBM, leading Japanese computer makers were driven to shift into new areas of
business as the mainframe market shrank.
However, Japanese computer makers his- Situation for Leading Japanese
Manufacturers
torically made the shift from proprietary Revenue source disappearing for leading

Unix to OEM Unix from overseas. Con- Japanese computer makers


Shrinking market for mainframes (except for IBM)

sequently, Japanese computer makers are Shift from domestic Unix to overseas Unix

Increasingly difficult to maintain proprietary OS

finding it increasingly difficult to develop 1,000-3,000 engineers needed to develop and


maintain single OS

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.

from 1,000 to 3,000 engineers. A shrinking


market has made it difficult for Japanese
computer makers to maintain a present OS development team.
Japanese computer makers realized that GNU/Linux would enable them to main-
tain and develop core technologies under a modest development team. In 2001,
leading Japanese computer makers jointed to participate in OSDL Japan. As FOSS,
GNU/Linux offers a way to minimize the influence of other companies. Japanese
computer makers realized that the Windows market alone did not offer enough po-
tential for profit, choosing to enter the GNU/Linux market with their backs to the
wall.

6.5 Chapter Review


· Name the conventional software--related business models.

· Explain the more recent service--oriented business models.

· In which of the application fields has FOSS already been successful?

· Which three reasons are frequently given for FOSS deployment in business?

· Explain the terms LAMP and LAPP.

· Why is FOSS expected to play an important role in on--demand computing?

134
Case Studies in FOSS Business

7 Case Studies in FOSS Business


This chapter continues the examination of FOSS business, describing various seg-
ments of FOSS business through the use of case studies. Leading examples of FOSS
business and the details of their business
are examined. (7) 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.

7.1 Types of FOSS Business


In this section, the different types of FOSS--related business are organized into 11
separate categories. The slide at right describes each category of FOSS business
using examples of leading companies from
Japan and abroad. Types of FOSS Business

Category Description Leading Companies

· Flagship Flagship Actively provide everything from contract


development of systems using own hardware and
OSS, to software and hardware maintenance and
IBM Japan, Fujitsu, N EC, Hitachi, HP
Japan, etc.

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,

· System integrator In-house OSS


comm ercial software, installation support, etc.

Release own software as OSS; provide support


services and contract systems development
etc.

Ten Art-ni, NaCl, ForeOneFirst, etc.

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

· Distributor Server sales


software; also provide contract systems
development

Sales of Linux-equipped PCs and servers


Enterprise, F-Secure, etc.

Dell, Toshiba, Sun Microsystems, etc.

Embedded Development and sales of OSS-embedded Sony, Matsushita (Panasonic),


inform ation appliances, PDAs, m obile phones Toshiba, Sharp, etc.

Embedded Custom ization for OSS embedded use; provide MontaVista Software Japan, Lineo

· In--House FOSS development tools

In-house business
use
development tools and support services for fee

U se OSS for own business


Solutions, AXE, etc.

Am azon, Google, Rakuten, Livedoor,


etc.

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

· Embedded development tools

135
Flagship Business (Major Manufacturers)

· In--house business use

· Education

The characteristics of each type of FOSS business are explored in the sections that
follow, in the order that they are listed.

7.2 Flagship Business (Major Manufacturers)


The flagship business centers on contract development of systems using the compa-
ny’s own hardware and FOSS. Flagship companies possess a comprehensive struc-
ture to actively provide everything up to
maintenance and support for software and Flagship Business
(Major Manufacturers)
hardware. Most companies in this cate- Receive comprehensive orders for everything from hardware to

gory are major hardware vendors such as software

Business of major hardware vendors

IBM Japan, Fujitsu, NEC, Hitachi, HP Japan, etc.

IBM, Fujitsu, NEC, Hitachi and HP. These Use FOSS to drive down costs for development of large-scale
systems

companies provide comprehensive solutions Provide comprehensive solutions

Possess numerous own development packages

in the form of low--cost contract develop- IBM in particular strongly pushing FOSS
Provides FOSS resource site and FOSS information

Numerous in-house FOSS projects

ment of large--scale systems using FOSS. Supports GNU/Linux through full range of platforms, from IBM PCs to
mainframes and wearable PCs

Released 500 IBM patents to FOSS community

IBM in particular is strongly pushing FOSS. Reason for market participation by major hardware vendors

System integration anticipated to generate annual profit of US$1.1

The company supports FOSS through var- billion worldwide

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. 177
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ious initiatives including the provision of


FOSS resource sites and FOSS informa-
tion. IBM also develops numerous FOSS projects internally and supports GNU/Linux
on all of its platforms. In addition, the company has released its own patents to the
FOSS community.
The major reason for participation in the FOSS market by major hardware vendors is
due to potential profits from the system integration market. The system integration
market is anticipated to generate an annual profit of 120 trillion yen worldwide.
Major computer vendors are desperately working to grab a share of the system
integration market through the use of FOSS.

136
Case Studies in FOSS Business

7.3 System Integrators


The system integration business is focused on contract systems development us-
ing FOSS. This segment of FOSS business can also be considered an extension
of the existing system integration business,
with the only difference being the shift to System Integrators
FOSS platforms. The major goal of system Extension of existing business, only platform has changed

integrators is to drive down development Drive down development costs using PC servers and FOSS

Also reduces vendor dependency

costs using a combination of PC servers Enables small- and medium-sized vendors to compete as
principal contractors, but competition increasingly fierce

Biggest hurdle is securing FOSS engineers


and FOSS. System integrators also wish to FOSS deployment requires advanced technical skills

Requires skills to combine multiple FOSS, modify FOSS, keep

reduce vendor dependency by using FOSS. up with fast pace of change, etc.

Easier to retrain Unix engineers

Competition in this segment is becoming Problem: Many engineers only know Windows development

Shortage of business applications

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

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. 178
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

orders as principal contractors.


Deployment of FOSS tends to require con-
stant technology acquisition due to the fast pace of change for FOSS, as well as
the advisability of combining multiple FOSS. Consequently, FOSS deployment is
said to require relatively advanced technical skills, which makes it difficult to se-
cure FOSS engineers. Although it is considered easier to retrain Unix engineers,
Windows engineers tend to be predominant today among system integrators.
System integrators are also faced with a shortage of FOSS--based business appli-
cations, which means that they must create an application layer above LAMP.
Sometimes this can cause development man--hours to increase. The situation is
improving today with the gradual appearance of development projects for FOSS
business applications.

137
System Integrators

7.3.1 NTT Comware Corporation


NTT Comware Corporation provides GNU/Linux consulting services and deploys
FOSS for system building and operations. The company is also involved in tech-
nology development to improve the relia-
bility of GNU/Linux. One of the activities NTT Comware
is contributing to the development of Ul- Conducts development to improve GNU/Linux reliability

tra Monkey load balancing software. Ul- Cluster solution for non-stop GNU/Linux servers

Ultra Monkey load balancing software (FOSS)

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

Heartbeat for monitoring operating status of each server

of non--stop GNU/Linux servers. The Ul- Member of OSDL

Contributes to development of Carrier Grade Linux (CGL) for

tra Monkey solution incorporates various telecommunications carriers

GNU/Linux consulting, system building and operations

software components including Linux Vir- New markets for GNU/Linux deployment

Apartment entry management system using fingerprint


authentication and L-Box embedded GNU/Linux server

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

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. 179
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

monitoring and removal of failed servers.


The solution also includes Heartbeat soft-
ware for monitoring the operating status of servers.
NTT Comware is a member of OSDL and is involved in the development of Carrier
Grade Linux (CGL) for telecommunications carriers. The results of CGL develop-
ment are expected to be utilized in the business activities of NTT Group companies,
whose core business is telecommunications.
The company’s GNU/Linux--based system consulting services include the develop-
ment of an apartment entry management system using fingerprint authentication.
The solution uses L--Box embedded GNU/Linux server. NTT Comware has al-
so developed a prototype university business system that has been implemented
at Waseda University and is provided free of charge to universities across Japan.
The company provides customization services for individual sites that deploy the
software.

138
Case Studies in FOSS Business

7.3.2 Nihon Unisys, Ltd.


Nihon Unisys, Ltd. is the co--developer of Alicia, a kernel crash analysis tool. The
software was developed in collaboration with Miracle Linux Corporation and NTT
Data Corporation. Alicia is an abbrevia-
tion for Advanced Linux Crash--Dump In- Nihon Unisys
teractive Analyzer. Development of Ali-
Provides high reliability comparable to Unix

cia was sponsored by the Japan OSS Fo- Alicia ( Advanced Linux Crash-dump Interactive Analyzer

Sponsored by Japan FOSS Forum’s Development Infrastructure Working


rum’s Development Infrastructure Work- Group

Provides environment for kernel crash analysis

Improves reliability of enterprise GNU/Linux

ing Group, whose aim is to improve the re- Integrates crash and lcrash tools for analyzing Linux kernel crash dumps,
enabling faster dump editing

Migrated Unix-based database to GNU/Linux for leading travel

liability of enterprise GNU/Linux by pro- agency

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 Tokyo’s Information Technology Center
(ITC)

Learning management system (LMS) for e-learning; released as FOSS

analysis of the Linux kernel was conducted Implemented using Java, Tomcat4, PostgreSQL, OpenLDAP

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. 180
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

using the crash Unix tool for crash analy-


sis, and lcrash for analysis of dump data
from Linux Kernel Crash Dump (LKCD). Alicia provides an interface for crash
and lcrash, acting as an integrated analysis environment for efficient dump anal-
ysis. Minimizing down--time is required in GNU/Linux deployment for mission--
critical systems. Nihon Unisys and other vendors can use Alicia and similar tools
to improve the efficiency of dump analysis during a crash, as part of their goal to
encourage the spread of enterprise GNU/Linux. Nihon Unisys has also undertaken
migration projects from Unix to GNU/Linux, such as the replacement of a Unix--
based database with a GNU/Linux--based system for a leading travel agency client.
Nihon Unisys also builds applications using FOSS, such as the CFIVE learning
management system for higher education institutions. CFIVE was co--developed by
Nihon Unisys and the University of Tokyo’s Information Technology Center (ITC).
The e--learning management system is built using Java, Tomcat, PostgreSQL and
OpenLDAP.

139
System Integrators

7.3.3 FOSS Deployment for Large--Scale Systems


FOSS is being deployed in other large--scale systems including the Tsutaya Online
system and Loppi kiosk terminals installed at Lawson convenience stores.

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

Large-scale system designed for 10 million users

Lawson “Loppi” kiosk terminals


Kiosk terminals installed at convenience stores

Rare success among convenience store kiosk ventures

Uses GNU/Linux server to control kiosk terminal used


for ticket reservations, etc.

Back-end servers installed behind each store

Deployed in over 7,600 stores

System easy to manage due to remote operation

IBM Japan responsible for maintenance

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.

7.3.3.1 Tsutaya Online


The Tsutaya chain has over 1,000 stores across Japan that sell books and rent videos
and DVDs. Tsutaya Online is operated as the portal site of the Tsutaya chain. The
site was originally run using Solaris but has since been migrated to GNU/Linux.
The move enabled the company to reduce deployment costs by one--quarter to one--
fifth the cost of the previous system.
Tsutaya has over 10 million members. The online portal site relies on a large--scale
system designed to support an equivalent number of site users. The site has been
running problem--free since migrating to GNU/Linux.

7.3.3.2 Lawson “Loppi” Kiosk Terminals


The Lawson convenience store chain operates more than 7,600 stores across Japan.
Lawson has installed kiosk terminals at each of its stores, as part of a diversification
trend in the Japanese convenience store business. The “Loppi” kiosks use a system
comprised of a front--end terminal operated by store customers, which is linked to
a back--end server in the back of each store running GNU/Linux.
IBM Japan handles maintenance of the Loppi system. From a system building and
operations perspective, the system is described as being easy to manage, since it has
a remote operation facility.

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

Provide automatic software updates

so provide added value through other ser- Develop proprietary installers or package managers

Localize (Japanese language versions)

vices such as providing automatic software Bundle with commercial software and commercial
resources (fonts, etc.)

Provide support services


updates, or through the use of a propri-
Critical to decide on method of creating added

etary installer or deployment of a pack- value to drive sales


Packing software onto CD-ROM translated into value

age management system. Distributors al- when networks were not as accessible

Walnut Creek’s distribution business

so provide added value by developing lo- Roots of GNU/Linux distributions

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. 182
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

calized versions of software in various lan-


guages. Commercial software or commer-
cial fonts are sometimes bundled to provide further added value.
GNU/Linux distributions have their roots in early CD--ROMs that contained vari-
ous software on a single disc, prior to the widespread network access that is available
today. At the time, packaging software onto a CD--ROM translated into value. How-
ever, software can be easily distributed through networks today, which requires new
ways of creating added value. Distributors must decide how to achieve differentiation
from their competition.

7.4.1 Ebb and Flow of Distributors


DistroWatch.com is a portal site for information about GNU/Linux distributions.
The site lists more than 300 GNU/Linux distributions worldwide, The site al-
so lists BSDs and other distribution pack-
ages. The portal provides various infor- Ebb and Flow of Distributors
mation about listed distributions includ-
DistroWatch.com

ing descriptions of new distributions and Portal site for GNU/Linux


distributions

reviews. DistroWatch.com offers a near- Also lists select BSDs,


etc.

List of worldwide
ly complete view of current trends in GNU/Linux distributions

Over 300 GNU/Linux

distributions. distributions listed

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

7.5 In--House FOSS Business


Companies in this segment of FOSS busi-
ness release their own software as FOSS. In-House FOSS Business
These companies market their own sup-
Develop own software and release as FOSS

port services and take on contract systems Effectively used by enterprise consortia

Primarily business application software for specific

development relating to their FOSS. The applications

Case studies
construction of large--scale software released Network Applied Communication Laboratory (NaCl)

Developer of Japan Medical Association ORCA system;

as FOSS is difficult to analyze, enabling deploying ORCA as FOSS receipt computer

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

business is notable for the emergence of en- 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. 184
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

terprise consortiums that deploy FOSS for


their members. Software in this segment
primarily consists of business application software designed for a specific applica-
tion.
Japanese companies that employ this business model include Network Applied Com-
munication Laboratory (NaCl), which develops the Japan Medical Association OR-
CA system. NaCl is deploying ORCA as a FOSS receipt computer solution. Other
companies include Ten Art--ni Corporation, the developer of the Garagardoa table
reservation system for the restaurant industry, and ForeOneFirst Co., Ltd., which
deploys the Francine Web POS system.

7.5.1 Network Applied Communication Laboratory


The ORCA Project is a research and business project of the Japan Medical Associ-
ation, an organization that is working to promote the standardization of medical
data. The ORCA Project is developing
a FOSS receipt computer for medical in- Network Applied Communication
Laboratory (NaCl)
stitutions to use in the monthly billing of Developer of software for ORCA standard

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

ly expensive and lack cross--compatibili- ORCA


Started as confidential project in 2000
use,
Official launch (March 2002)
improve

ty of data due to separate development Deployed at 1,279 facilities (as of July 2005)

ORCA business over 100 system


Certified
partner
Certified
partner
Certified
partner
deploy,
by manufacturers. The ORCA Project is integrators authorized by JMA for ORCA
deployment and contract maintenance
maintenance
Hos- Hos- Hos- Hos- Hos- Hos- Hos-
Some system integrators have released pital pital pital pital pital pital pital

developing a FOSS receipt computer and modified 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. 185
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

promoting standardization of data through


the release of master databases. The OR-
CA Project uses a proprietary license that resembles GPL. The license prohibits

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.

7.5.2 Ten Art--ni Corporation


Ten Art--ni Corporation is a provider of FOSS--based system building services aimed
at corporate members of the OSCAR Alliance. The OSCAR Alliance is a non--profit
organization established to advance the in-
formation processing industry through ac- Ten Art-ni Corporation
tivities that encourage the spread of FOSS.
Corporate member of OSCAR Alliance

The company’s two major systems are Gara- Voluntary non-profit association to promote enterprise
FOSS deployment

gardoa and Cerveza. Garagardoa table reservation system for restaurant


industry

LAPP system (Linux, Apache, PostgreSQL, PHP)

Released as FOSS

Co-developed by Ten Art-ni and New Tokyo restaurant


chain

Cerveza order issuance and acceptance system for


restaurant industry

Co-developed by Ten Art-ni and New Tokyo

GNU/Linux, Apache, Java servlet, Oracle system

Used by several corporations

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.

7.5.3 ForeOneFirst Co., Ltd.


ForeOneFirst Co., Ltd. is the developer of Francine, a Web POS system that was pre-
viously sold as proprietary software. The software was released as FOSS by the OS-
CAR Alliance in June 2003, in an attempt
to gain broader recognition and promote ForeOneFirst Co., Ltd.
the spread of the system. Francine is a
Francine Web POS system

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)

OSCAR proprietary license, resembling


deploy,
operation,
FOSS

GPL maintenance FOSS


support
functions. Other functions include inven- Main functions: cash register, sales
history, product ordering, inventory
management, store management,
Cus- Cus- Cus-
tomer tomer tomer

tory management, store management and Francine business


Francine
employee attendance management
NPO OSCAR
Alliance use,
improve

employee attendance management. Promote sales through association with


OSCAR Alliance brand

ForeOneFirst ultimately acts as core


member
Vendor
deploy,
member
Vendor

operation,
ForeOneFirst conducts business by provid- provider of deployment, customization
and support services
maintenance

Cus- Cus- Cus- Cus-


ForeOneFirst also provides support tomer tomer tomer tomer

ing deployment assistance, customization services for other vendors in OSCAR


Alliance
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. 187
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

and support services for Francine. The


Francine business employs a tiered struc-
ture to encourage the spread of the system, similar to the ORCA business.

7.6 FOSS Specialization


FOSS specialist companies focus on a specific FOSS through the main business of
providing support services and contract systems development. The success or fail-
ure of this business model depends on a
company’s ability to best identify a specific FOSS Specialization
FOSS as a foundation for business. Other
Conduct business focusing on specific FOSS

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)

Zend Japan (PHP)

orate with the community. In some cases, SRA (PostgreSQL)

SoftAgency (MySQL)

a company may need to secure engineers Sendmail

with advanced skills covering a wide range


of fields. 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. 188
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Companies that have succeeded at FOSS


specialization include VA Linux Systems
Japan, which is staffed by many Linux kernel engineers, and PHP company Zend

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

form. The company benefits from employ- development vendor


Not tied to specific product

ing many Unix engineers, who can be eas- Staffed by many Unix engineers

Conducts business focusing on PostgreSQL


ily retrained for GNU/Linux. As an in- Collaborates with FOSS community and major
developers in Japan and abroad

dependent vendor, SRA also benefits from Provides expertise

Sells Windows native version

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

Raises profile by publishing articles in magazines and


books

on PostgreSQL. SRA is staffed by core 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. 189
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

velopers of PostgreSQL and has ties with


both the FOSS community and major de-
velopers in Japan and abroad. The company sells PowerGres, a commercial variation
of PostgreSQL, and provides tuning and other support services for deployment and
operations. SRA also implements certification exams and publishes information
through magazines and books.

7.6.2 Zend Japan, Ltd.


Zend Japan, Ltd. is the Japanese subsidiary of Zend Technologies Ltd., which
was formed by the main developers of PHP. The Japanese unit conducts busi-
ness centered on PHP. Zend Japan offers
a PHP development environment and pro- Zend Japan, Ltd.
vides consulting services that capitalize on
Conducts business focused on PHP

its technical capabilities as the original de- Parent company Zend Technologies founded by main
developers of PHP

velopers of PHP. Specific services offered Capitalizes on technical expertise as original


developers of PHP

by the company include PHP--based sys- Offers PHP development environment

Provides expertise to improve PHP performance

Script compiler

tem tuning and the provision of fail--safe Caching feature

Web systems development using PHP

solutions. Enterprise systems

SugarCRM on Zend: Customer management application

PHP is a scripting language in which scripts System pairing J2EE with PHP applications

are first compiled to an intermediate lan- 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. 190
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

guage before they are run. PHP also im-


plements caching of compiled code in the
intermediate language. Tuning of these features requires extensive expertise and is
critical to improving overall system throughput.

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.

7.6.3 Good--Day Inc.


Good--Day Inc. is notable for taking on contract systems development with aggres-
sive support for FOSS. The company has a highly skilled group of FOSS engineers
and provides advanced FOSS--based solu-
tions such as high level tuning of FOSS Good-Day Inc.
systems.
Contract systems development with aggressive

Employees of the company include the de- support for FOSS


Also offers advanced technical services such as tuning

veloper of Sylpheed MUA software and con- for GNU/Linux and PostgreSQL-based systems

Staffed by FOSS engineers to provide synergistic

tributing members of OpenOffice.org. As benefits

Leading example as FOSS specialist vendor

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

ers. These activities include direct spon- Works with OpenOffice.org

Sales and support of laptops loaded with FOSS desktop


software

sorship of FOSS development for Japanese 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. 191
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

language software and Japanese desktop


software.
Good--Day also conducts sales and support for laptop PCs loaded with FOSS desktop
software, capitalizing on the development projects it sponsors. Good--Day is an
excellent example of a company that is actively sponsoring FOSS development while
skillfully utilizing the development results for its own business.

146
Case Studies in FOSS Business

7.7 Package Software Business


The package software business refers to the sale of proprietary package software
made to support GNU/Linux and other FOSS environments. Some companies in
this segment of FOSS business also take
on contract systems development using the Package Software Business
package software. The business strategy Proprietary package software made to support GNU/

is frequently employed for server software, Linux


Primarily implemented for server software to expand

primarily as a way to capture market share platform support

Clear-cut business model for proven software

by increasing the number of platforms sup- Product must be clearly differentiated


Without differentiation, users will choose FOSS

ported. Barriers for new software

Requires strong degree of differentiation in terms of performance,


features, ease of use, development environment, etc.

The package software business offers a clear-- Market established for network, server and storage
management

Opportunities in business knowledge field (accounting, legislation,

cut business model for software with a proven administration, etc.)

Not a strength of FOSS developers

Opportunity to improve interface for beginner users

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.

ware. Unless the software is clearly differ-


entiated from FOSS software, users may
choose to use FOSS instead. Differentiation can be achieved through performance,
features and ease of operation, or by providing a development environment for the
software. The business knowledge field is a promising area for the package software
business, since the field has yet to develop into an area of strength for FOSS. Other
promising strategies include sales of software aimed at end users or specific appli-
cations, such as the development of GUI software for general users that works with
existing FOSS.

7.8 Server Sales and Embedded Business


Companies in this segment of FOSS business are involved in sales of their own
hardware preinstalled with GNU/Linux. Almost all PCs that come preinstalled
with GNU/Linux today are sold for serv-
er deployment. The market for desktop Server Sales and Embedded Business

GNU/Linux PCs is expected to grow in the Server sales

future, with GNU/Linux PCs already be- Sales of own hardware pre-installed with GNU/Linux

Toshiba, Dell, Sun Microsystems

House-brand PCs

ing sold in Asia as low cost PCs. Toshiba, Outside of servers, other applications include factory
automation, specialized applications, etc.

Dell and Sun Microsystems are the major Embedded business

vendors in this segment. GNU/Linux pre- Information appliances

Media servers, hard disk recorders, PDAs, mobile


phones, etc.

installed servers are also sold by venture Consumer Electronics Linux Forum (CELF)

Established: July 2003

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.

preinstalled PCs are also sold for factory


automation use or for specialized applica-
tions.

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.

7.9 Embedded Development Tools Business


Companies in this segment are involved in customization of FOSS for embedded
systems. Income is derived from sales of development tools and the provision of
support services. Vendors include Mon-
taVista Software Japan, Inc., which pro- Embedded Development Tools
Business
vides the MontaVista Linux solution, and
Customization of FOSS for embedded systems; sales

uClinux developers Lineo Solutions, Inc. of development tools and provision of support
services

Other vendors include AXE, Inc., which Case studies

MontaVista Software Japan: MontaVista Linux

develops the axLinux and Shikigami solu- Lineo Solutions: uClinux

AXE: axLinux, Shikigami

tions, and Red Hat, Inc., which takes on Red Hat: Contract porting of GNU/Linux

FOSS embedded business offers excellent


opportunities for contract development
contract porting of GNU/Linux to various Since platform is not a differentiating factor, CE
manufacturers are pushing for common platform using

platforms. FOSS

Steady stream of business for contract development

The FOSS embedded business offers ex- dependent on hardware

Soum Corporation: Employs leading developers of 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. 194
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

cellent potential for contract development.


Since the platform is not a differentiating
factor when used in embedded applications, manufacturers can drive down costs by
using FOSS as a common platform. Contract development that is dependent on
specialized hardware also provides a steady stream of business for vendors.

148
Case Studies in FOSS Business

7.10 Proprietary Business Use


Companies in this segment deploy GNU/Linux for enterprise servers that demand
high reliability, in order to implement their own services using a low cost, stable
infrastructure. Venture firms involved in
Internet businesses often fall into this cat- Proprietary Business Use
egory. Some companies like Amazon.com
Deliver own services at low cost by deploying

and Google have rapidly grown into major GNU/Linux for servers that demand high
reliability

corporations. amazon.com

Google.com

Companies can gain a competitive advan- Rakuten

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

Employ many FOSS engineers

is made possible by employing a large staff


of FOSS engineers. It is critical for such 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. 195
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

companies to ensure that user feedback is


reflected into services, and to implement
appropriate system refinements to improve services. FOSS deployment is advanta-
geous to these companies as it enables the modification of source code.

7.10.1 Amazon.com, Google


Amazon.com has rapidly grown from its roots as an online merchant selling books,
CDs and DVDs. The company uses multiple Hewlett--Packard GNU/Linux ma-
chines for distributed Web server caching.
The system supports over 20 million prod- Amazon.com, Google
uct inquiries per hour.
Amazon.com

Google has also built a fault--tolerant sys- Uses multiple HP GNU/Linux machines

Distributed Web server caching

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

Proprietary automatic failure detection system based on

configuration of numerous low cost IA servers. Red Hat Linux

Distributed system to account for high rate of hardware

Google has developed a proprietary failure failure and distribution of data across multiple hard disks

Google File System for filing data

Map/Reduce Framework for I/O scheduling

detection system based on Red Hat Lin- Global Work Queue for scheduling queries

ux. The company employs a distributed 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. 196
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

system based on projected high rates of


hardware failure from deploying low cost
hardware. The system is also designed to distribute search data across multiple
hard disks.
Google is known for its fast search speeds and reliable search results. The Google
system includes Google File System, which uses a customized data filing method,
and a Map/Reduce Framework for automatic and efficient parallelization of I/O. The

149
Proprietary Business Use

system also includes Global Work Queue, an integrated application for scheduling
search queries into batch jobs.

7.10.2 Rakuten, LiveDoor


Virtual mall operator Rakuten, Inc. deploys numerous FOSS--based systems for the
company’s virtual malls. FOSS offers excellent ROI compared with extremely costly
license fees charged for commercial Web
application frameworks and databases. Rakuten, LiveDoor
Rakuten primarily uses PHP and MySQL, Rakuten

also deploying PostgreSQL and Tomcat. Deploys FOSS extensively for its virtual malls

WebLogic and Oracle licenses are costly

However, the software lacks all of the func- FOSS deployed based on balance of service and cost

Primarily uses PHP and MySQL, also PostgreSQL and Tomcat

tions of commercial software. Rakuten al- Software lacks some functions of commercial software

Issues: Shortage of engineers and test suites, frequent version


upgrades

so faces a shortage of engineers who are fa- LiveDoor

miliar with FOSS technology, and a short- Deploys FOSS extensively for its portal sites

FOSS suited for rapid deployment of services

Strategically involved in GNU/Linux distribution business


age of test suites. Other issues for the com- Purchased Turbolinux unit from SRA and turned into
subsidiary

pany include frequent version upgrades that Sells Linspire

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. 197
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

are the downside to the fast pace of FOSS


development.
Portal site operator LiveDoor Co., Ltd. also deploys FOSS extensively for its portal
sites. In the portal business, site operators achieve differentiation from competitors
through the provision of new services. This requires rapid deployment of services
that create added value in new ways. FOSS is suited for rapid deployment of services
due to the ability to modify the source code that comes with FOSS, making it
effective for the portal site businesses.
LiveDoor’s approach is slightly different from other companies in that it is strate-
gically involved in the GNU/Linux distribution business, in addition to deploying
GNU/Linux for its own systems. The company is actively involved in the FOSS
business and has acquired the Turbolinux unit from Software Research Associates,
Inc. (SRA). Since its acquisition, Turbolinux has been turned into a LiveDoor sub-
sidiary. LiveDoor also markets the Japanese version of Linspire.

150
Case Studies in FOSS Business

7.11 Education Business


Companies involved in the education segment provide training courses and imple-
ment FOSS certification exams. FOSS education is a peripheral business within the
software industry. The segment offers ade-
quate potential for business provided that Education Business
the FOSS user or developer base is large
Peripheral business within software industry

enough. There is a certain amount of de- Courses, materials

mand for textbooks and reference books, Adequate potential for business as number of users
and developers increases

“Dekiru” series of how-to books are expected to have


regardless of the type of software. constant sales, regardless of software

The certification industry is also a part of Certification business


Numerous GNU/Linux certifications already exist

the education business. A number of cer- LPIC, RHCE, Turbo-CE, CNA, ComTIA Linux+

Other FOSS certifications have been introduced

PHP、
tification standards already exist includ- PostgreSQL

Rapid growth in number of certification courses offered


by technical schools, etc.

ing Linux Professional Institute Certifica- 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. 198
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

tion (LPIC), Red Hat Certified Engineer


(RHCE) and Turbolinux Certified Engi-
neer (Turbo--CE) qualifications. In addition to GNU/Linux certifications, other
FOSS certifications have been introduced for PHP, PostgreSQL and other software.
The number of certification courses offered by technical schools is increasing. These
courses are popular and are viewed as an asset for getting hired.

7.11.1 GNU/Linux and FOSS Certification


The slide at right summarizes information about FOSS certifications. The table
shows the certifying body, certification name, exam difficulty and type, as well as
the impartiality and cost of examination.
Most certifications are aimed at beginner GNU/Linux and FOSS
Certification
to intermediate levels, with online exams
Certifications for GNU/Linux engineers

predominant. All certifications aimed at network administrators

All of the existing certification programs FOSS certifications


Main purpose: Train engineers to use company’s
software
are aimed at network administrators. The Organization Certification Level Testing
Method
Nutrality Cost
LPIC Level 1 Entry 30,000 Yen
NPO LPI Japan Online exam. Nutral
emphasis reflects the high rate of FOSS de- Turbolinux
LPIC Level 2
Turbo-CE
Middle
Entry
Online exam. Vendor
30,000 Yen
31,500 Yen
Turbo-CE Pro Middle depended 21,000 Yen
ployment for network applications, and the Red Hat
RHCT
RHCE
Middle
Expert
Practical
exam.
Vendor
depended
94,500 Yen
47,250 Yen
CompTIA Linux+ Novice Online exam. Nutral 27,825 Yen
large number of administrators that ac- Zend Japan Zend PHP
Certification
Entry Online exam. Vendor
depended
33,500 Yen
PostgreSQL CE Entry 13,650 Yen
tively deploy GNU/Linux and FOSS. The SRA
Silver
PostgreSQL CE
Gold
An Introduction to Free/Open-Source Software
Middle
Online exam. Vendor
depended
18,900 Yen
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 199
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

main purpose of current certifications is to


train engineers to use a company’s soft-
ware. This also explains why current certifications are aimed at beginner to in-
termediate level users. Certification programs that cover the entire spectrum from
beginner to advanced levels will emerge as the number of engineers in each field
increases.

151
Chapter Review

7.11.2 Training Courses


Availability of training courses related to
FOSS has begun to increase in recent years, Training Courses
mirroring the growth of the certification
Two main types of GNU/Linux/FOSS training courses

business. GNU/Linux and FOSS train- Network administrators

Courses basically designed to complement certification exams

ing courses are currently directed at two such as LPI, etc.

Developers of Web system software

LAMP/LAPP systems development

groups: network administrators and de- Increasing number of courses for development of Java
application servers

velopers of Web system software. Cours- IT schools and major IT vendors


Offer GNU/Linux/FOSS training with other courses

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.

tem software mainly focus on development


of LAMP systems and Java application servers.
The number of training courses related to FOSS subjects offered by IT schools and
major IT vendors is beginning to increase. Training courses tend to be short, ranging
from a few days to one or two weeks at most.
Technical schools, universities and professional graduate schools are only now be-
ginning to offer courses aimed at development of advanced FOSS engineers. The
critical need to train advanced software engineers using FOSS is just beginning to
be acknowledged. The number of training courses for the development of advanced
FOSS engineers is expected to increase in the future.

7.12 Chapter Review


· Name the different types of FOSS business.

· Give examples of the different types of FOSS business.

· What is the purpose of distrowatch.com?

152
FOSS Government Policy and E--Government

8 FOSS Government Policy and E--Government


Free/Open--Source Software has drawn the interest of national and local govern-
ments worldwide, who are increasingly adopting FOSS. This chapter describes the
reasons for FOSS deployment by nation-
al governments around the world. Trends (8) FOSS Government Policy and E-
Government
in FOSS deployment and characteristics of
Reasons for FOSS promotion by national and local

FOSS government policy are examined by government


Considering reasons why does government promote

region and country. FOSS?

Trends in Europe
Examples of Germany (Munich), UK, and France

Trends in the United States


US government, state governments (case study in
Massachusetts)

Trends in Asia
Situations regarding FOSS in east and southeast Asia

Trends in national and local Japanese government


FOSS adoption trends and their policies
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
201
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

8.1 Reasons for FOSS Promotion by National and Local Governments


This section examines the reasons for national and local governments to promote
FOSS, focusing on the following four aspects:

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

capitalizing on the low cost of FOSS Transparency of procurement and security


Transparency of procurement and ensuring of security

and its independency on a specific ven- through the utilizing the nature of FOSS are expected

Fostering the development of domestic industry


dor. FOSS critical to promoting national IT Industry

Overcoming the “Digital Divide”


FOSS is very efficient with low investment for the
2. Transparency of procurement and se- introduction of IT

curity: The features of FOSS are an-


ticipated to ensure transparency of pro- 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
202

curement and security.

3. Foster development of domestic industry: Utilization of FOSS is aimed at fos-


tering the development of domestic IT industries.

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

8.1.1 Reduce Costs and Vendor Lock--In

8.1.1.1 FOSS to Reduce Costs


It is correct to say that the biggest rea-
son for national and local governments to Reduce Costs and Vendor Lock-In

deploy FOSS is to reduce costs. The role


Reduce costs

of government is to spend taxes in order Thought to be chief advantage of deploying GNU/Linux

Nearly always true when replacing Unix

to generate and provide public services. There- TCO gap with Windows is small and debatable

Focus turns to maintenance costs

fore, it is entirely natural for governments Maintenance of middleware and applications; cost of
administrative engineers

Purpose of government to spend taxes by generating


to wish to deploy FOSS to improve efficien- and providing public services; governments seek to
deploy FOSS for improved efficiency

cy. FOSS can be licensed without charge, Prevent vendor lock-in


Important from standpoint of fairness
enabling deployment at a lower cost than Extreme example of vendor lock-in: “One yen bid”

-> See Vendor Lock-In

using commercial software. FOSS also runs 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. 203
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

on low cost PC servers instead of expensive


mainframes and Unix servers, which drives
down costs significantly.
In addition to deployment costs, system costs must be considered in terms of the
total cost of ownership (TCO), which includes the cost of operations. TCO includes
maintenance costs for everything from hardware and operating systems to middle-
ware and application software. Personnel costs relating to operations management
are also factored into the TCO.
The general assumption is that it is possible to reduce costs by replacing expensive
Unix servers with FOSS systems that run on PC servers. However, there is only a
small gap when comparing the TCO of Windows and FOSS systems running on PC
servers. It is difficult to determine which of the two has the lower TCO.

8.1.1.2 FOSS to Reduce Vendor Lock--In


Another aspect of FOSS is its independency on a specific vendor, which distinguishes
it from commercial software. It is preferable for national and local governments to
avoid building information systems (IS) using only products from a specific vendor.
This is also desirable from the standpoint of fairness in the public sector.
Vendor lock--in is evil in several ways, chiefly because increasing costs and lower
quality become inescapable under vendor lock--in. The principle of competition is
lost and it becomes impossible to change vendors when costs escalate or quality
drops. An extreme example of vendor lock--in is the “one yen bid.” Under this
arrangement, a vendor bids for a system design contract at a loss. This is done in
order to gain high value contracts for later systems building and operations.

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.

8.1.2 Transparency of Procurement and Security

8.1.2.1 Transparency of Procurement


Government systems procurement differs in some ways from procurement by pri-
vate sector companies. This is due to the need to ensure transparency of pro-
curement. The World Trade Organization
(WTO) has even established a Working Transparency of Procurement and
Security
Group on Transparency in Government Pro-
Transparency necessary for government procurement

curement Practices (WGTGP) as a result WTO Ministerial Conference

Established Working Group on Transparency in Government

of a WTO Ministerial Conference. Procurement Practices

Ensure transparency and competitiveness of public


procurement
Systems procurement in the public sector Issues

Closed public procurement

has a tendency to become closed. This is Prevent government-initiative collusion

Since source code for FOSS is released, using FOSS promises to

due to frequent personnel transfers within Security


ensure transparency of procurement

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

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. 204
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

sequently, many areas of the public sector


have long relied on vendors for tasks that
should be performed by the procurement side. These tasks range from systems
procurement planning and preparation of requirements specifications to receiving
inspections. It is not unusual for governments to designate a specific vendor and
procure systems without any competitive bids, resulting in government--initiative
collusion.
Since FOSS is released at the source code level, deployment of FOSS enables other
companies to examine the internal workings of currently running systems. Under
this arrangement, other companies continually have an opportunity to participate
in procurement. Transparency of procurement drives the principle of competition,
resulting in fair procurement.

8.1.2.2 National Security


Governments also view security as an advantage of FOSS. “Security” is used here
in the sense of ensuring national security, not in terms of security against viruses,
unauthorized access or information leakage.

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.

8.1.3 Fostering the Development of Domestic Industry

8.1.3.1 FOSS Critical to Promoting National IT Industry


Outside of the United States, many countries have cited the desire to foster the de-
velopment of their domestic software industries as a reason for FOSS deployment. IT
vendors from the United States currently
dominate almost all of the package soft- Fostering the Development of
Domestic Industry
ware market, in everything from operating
Critical mission of governments to promote

systems to middleware and applications. domestic IT industry


IT vendors from US dominate almost all of package software

Package software is structured so that prof- market

Governments dislike dependency on foreign sources for


high revenue, core software

its increase as the number of software ship- Desire to avoid “black boxing” of infrastructure technology

Strong FOSS emphasis in Europe and Asia


ments rises. These profits directly trans- Germany: Home to leading FOSS vendors such as SUSE, KDE,
OpenOffice, etc.

late into trade deficits with various coun- China: Announced policy to restrict government procurement to
domestic software

Japan: Local governments active in fostering


tries. Governments in these countries hope local IT industry
Hokkaido, Okinawa, Gifu, Nagasaki Prefectures

to use FOSS to foster the development of Desire to eliminate subcontractor structure for local IT firms

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. 205
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

their domestic software industries. This is


also expected to at least make a dent in
reducing the foreign outflow of licensing fees.
Operating systems and middleware in particular are software infrastructure tech-
nologies. Domestic R&D into software technologies is hindered when these infras-
tructure technologies depend on foreign “black box” products. Since infrastructure
software technologies are released as FOSS, utilizing FOSS also becomes essential
to fostering the development of an internationally competitive software industry.

156
FOSS Government Policy and E--Government

8.1.3.2 Strong FOSS Emphasis in Europe and Asia


The use of FOSS to promote domestic software industries has drawn particular
interest in parts of Europe and Asia. Strong government policies for FOSS are
being promoted in these regions, led by the example set by Germany and China.
Germany has historically been home to leading FOSS vendors such as SUSE, KDE
and OpenOffice.org. The German government is capitalizing on these strengths by
drafting preferential policies designed to foster the development of FOSS vendors.
China has rapidly turned its attention to FOSS since 2000. The Chinese govern-
ment views FOSS as a critical element to fostering the development of its domestic
software industry. The emphasis on FOSS also reflects a desire to maintain national
security. China has announced a policy that restricts government procurement to
domestic software. This policy further banks on using FOSS to cover for areas not
addressed by domestic commercial software.

8.1.4 Overcoming the Digital Divide


The digital divide among the poor is an escalating problem in developing countries.
Digitization is widespread among high--income earners and provides access to up--to--
date information, which opens up opportu-
nities to further increasing income. In con- Overcoming the Digital Divide
trast, low--income earners cannot purchase
Digital divide

digital equipment. This makes it difficult Digital divide created by gaps in income

Digitization among high-income earners

for the poor to obtain information and rise Low-income earners cannot obtain digital equipment

FOSS effective in promoting digitization among


beyond their current economic status. low-income earners
Enables IT advancement with limited funds
FOSS can run on low cost machines with Also critical to provide cheap hardware and affordable
education

basic specifications. It also enables indi- One of the acute problems facing Southeast Asia

viduals to obtain a diverse range of soft- and South Asia in particular


Overcoming the digital divide in developing countries

ware at no cost. FOSS is extremely effec- FOSS deployment expected to solve this situation

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. 206
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

tive for achieving digitization among low--


income earners. Operating and mainte-
nance costs relating to FOSS information terminals for personal use are extremely
low, in addition to low hardware costs. The cost advantage of software without
charge is maximized on low cost information terminals.
The digital divide is particularly acute in Southeast Asia and South Asia. Ventures
to develop and distribute low cost PCs and information terminals using FOSS have
emerged in these regions. The Simputer venture in India and the People’s PC
Project in Thailand use FOSS to achieve low cost PCs in the $200--300 range.

157
Trends in Europe

8.2 Trends in Europe


FOSS deployment among national and lo-
cal governments is highest in Europe, cen- Trends in Europe
tering in European Union member states.
European Union

National governments representing Germany, Promoting FOSS in aspects of lower cost and
interoperability

France, United Kingdom and Italy are ac- Germany


Entering the next stage of “how to deploy FOSS” from
tively deploying FOSS and have established the initial stage of “why FOSS”

policies to promote FOSS deployment. Case study: Munich Municipal Government


Migrating to 14,000 GNU/Linux PCs over 5 years

UK and France
UK: going deeply into FOSS

France: walking its own independent path regarding


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.

8.2.1 European Union


Since 2002, the European Commission has been implementing the eEurope initiative
to promote e--government in the EU. FOSS deployment is treated as a critical theme
of the eEurope initiative.
European Union

Main focus on reducing costs of e-government and


ensuring interoperability
FOSS ideal from standpoint of both cost and
interoperability

Promoting FOSS deployment


EC recommends governments deploy FOSS to reduce e-
government costs totaling 6.6 billion Euros (July 2002)

Launched portal site to encourage spread of FOSS


(December 2003)

Established COSPA to promote FOSS deployment (April


2004)

EU’s IDA Programme recommends OpenOffice.org format


as standard office document format for data exchange
within government sector (May 2004)

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

8.2.1.1 Cost Reduction


In July 2002, the European Commission issued a recommendation for shared de-
ployment of FOSS in the public sector. National governments were also encouraged
to reduce IT costs. In Europe, annual IT
costs for e--government had been climbing European Union (cont.)
every year and were estimated at 6.6 bil-
UNU-MERIT FOSS economic impact study (2006)

lion Euros by 2002, up 28% from the pre- Estimates value of FOSS at 12 billion Euro

Expects FOSS-related economy to account for 4% of

vious year. The main reason for the EC’s GDP in the EU

Identifies FOSS as area in which SMEs find good

focus on FOSS was to reduce IT costs. environment

Expects FOSS-related jobs to counter brain-drain


towards USA and to close IT gap between EU and USA

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.

8.2.1.2 Ensuring Interoperability


However, cost considerations were not the only reason for the EC to recommend
FOSS. Due to the large number of countries in Europe, there is an acute need for
data exchange between national and local governments and within the public sector.
Interoperability between systems is essential to facilitating data exchange. In order
to achieve interoperability, file formats and communication protocols must be made
compliant with open standards. Since internal specifications for FOSS are fully
published, FOSS deployment was viewed as a way to promote the adoption of open
standards.
The eEurope 2005 Action Plan describes the following goal and approach to inter-
operability:

1. Interactive public services, accessible for all, and offered on multiple platforms.

2. It will be based on open standards to ensure interoperability, and encourage the


use of Free/Open--Source Software.

8.2.1.3 EU Initiatives to Promote Spread of FOSS


The EU launched a new portal site in December 2003 to encourage the spread of
FOSS. The portal site contains information about best practices for FOSS adoption
by the public sector. A monthly e--mail summary of Free/Open--Source Software
news is also distributed through the site.

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

Federal Ministry of Interior announces guidelines for FOSS


migration (July 2003)

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

Munich city decides to migrate 14,000 machines to GNU/Linux (May


2003)

ed desktop environment. OpenOffice.org, Schwäbisch Hall district migrates 400 machines to GNU/Linux
(2002-2004)

Audit office of Mecklenburg-Western Pomerania completes

the leading challenger to MS Office, has migration to GNU/Linux (November 2004)

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. 210
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

its roots in StarOffice. OpenOffice.org was


originally developed by a German compa-
ny before a buy--out by Sun Microsystems.

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:

· Improve security: Security can be improved by avoiding a monoculture. Free/Open--


Source offers better resistance against threats such as crashes and viruses.

· Prevent dependency on a single vendor: Free/Open--Source can reduce depen-


dency on a single piece of software.

· Cut costs: Free/Open--Source can reduce costs.

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

8.2.3 Case Study: Munich Municipal Government


Munich is the third largest city in Germany. In May 2003, the city council of Mu-
nich made the decision to migrate all 14,000 of the city hall’s computers from Win-
dows to GNU/Linux. The news sent shock
waves around the world. It was unprece- Case Study: Munich Municipal
Government
dented for a city like Munich to undertake Munich city council decides to undertake GNU/Linux

an across--the--board migration from Win- migration for 14,000 PCs used by 16,000 users (May
2003)

dows to GNU/Linux, not just for servers Reasons

To reduce costs? (Not the biggest reason)


IBM/SUSE proposal: $39.5 million

but also for desktops PCs. Microsoft proposal: $36.6 million, later cut to $23.7 million

Avoid dependency on specific products

The decision to migrate to GNU/Linux was Promote market competition

“Soft” migration

directly prompted by the end of support Gradual migration overAug.-Dec.

Replace with Web-


5 years 2002
May 28, 2002
Jun. 2002 - Jun. 2004
client survey conducted
migration to OSS resolved at city council
detailed planning with IBM and SUSE
Jun. 16, 2004 authorized at city council
for Windows NT 4.0, which was widely based systems

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.

to replace the no longer supported systems


amounted to several tens of million Euros.
The Munich government began to study the feasibility of migrating to GNU/Linux
in 2002 as a way to reduce costs. The migration to GNU/Linux was also driven
by the municipal government’s efforts to switch its business systems to Web--based
systems.
However, the real reason for migrating to GNU/Linux was to avoid dependency on
specific products, as well as a desire to encourage healthy market competition. Like
Japan, the German software market was dominated by US software in everything
from operating systems to middleware and applications. The decision by the Munich
city council to migrate to GNU/Linux was designed to encourage the purchase of
German software through market competition. In terms of deployment costs, the
Microsoft proposal was actually lower at 36.6million, comparedwith39.5 million for
the joint IBM and SUSE Linux proposal.

8.2.4 Barriers to GNU/Linux Migration


After one year of study, the Munich government officially approved the LiMux
GNU/Linux migration project in June 2004. Migrating to GNU/Linux is not easy
to accomplish. The migration of business systems to Web--based systems involved
three hundred different types of client software used by the Munich government.
Migrating all of this software to GNU/Linux and Web--based systems is an enor-
mous task. Another problem is the lack of full compatibility between MS Office
documents used by the Munich government and OpenOffice.org.
After studying the situation, the Munich government decided on a gradual migra-
tion to take place over five years. Under the project, business systems are to be
replaced with Web--based systems as much as possible, so that they can be used

162
FOSS Government Policy and E--Government

with GNU/Linux browsers. Initially, emulation software such as VMWare will be


used to enable Windows applications to run on GNU/Linux.

8.2.4.1 Project Temporarily Halted Due to Software Patent Issues


The Munich government suddenly announced in August 2004 that the LiMux project
had been put on hold due to concerns over software patent issues. The government
cited the need to study legal and financial risks, based on the possibility that the
European Parliament might pass legislation on software patents. Fortunately, the
LiMux project was restarted within one month, after the Munich government de-
cided that the risks were within an acceptable level.

8.2.4.2 Debian Deployment and Postponement to 2006


In May 2005, the Munich government made the decision to deploy Debian in favor
of commercial distributions, as a way to minimize vendor dependency. The decision
was probably influenced by the purchase of SUSE Linux by US firm Novell.
The Munich government later announced in September 2005 that it was postponing
its GNU/Linux migration plans by one year, rolling the start date forward to 2006.
The postponement was due to the need for additional trials to work out further
project details. This shows just how difficult it can be to implement an across--the--
board migration to GNU/Linux.

8.2.5 United Kingdom


The public sector in the United Kingdom is slightly more conservative in its stance
toward FOSS, compared with Germany and France. The Office of Government Com-
merce (OGC) issued the UK government’s
Open Source Software Policy in July 2002. United Kingdom
The OSS Policy, available as a document
UK: Leaning toward FOSS from neutral stance

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)

FOSS considered to be realistic desktop alternative

FOSS anticipated to reduce costs; no issues with

in the OSS Policy: interoperability

1. UK Government will consider FOSS so-


lutions alongside proprietary ones in IT
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. 212
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

163
Trends in Europe

procurements. Contracts will be award-


ed on a value for money basis.

2. UK Government will only use products for interoperability that support open
standards and specifications in all future IT developments.

3. UK Government will seek to avoid lock--in to proprietary IT products and ser-


vices.

4. UK Government will consider obtaining full rights to bespoke software code


or customizations of COTS (Commercial Off The Shelf) software it procures
wherever this achieves best value for money.

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

libre or freedom. The French is said to deployment


Ministry of Culture and Communications to conclude

reflect a strong national emphasis on free- across-the-board GNU/Linux migration in 2005

French government establishes ATICA (now ADEA) to

dom, which has some basis in truth. promote FOSS (July 2002)

Large-scale deployment of FOSS desktops studied as


part of ADELE strategic plan for electronic

The French government established the Agen- administration (February 2004)

Calls for GNU/Linux migration on 5-15% of desktops by

cy for Information and Communication Tech- 2007

Defense Ministry signs 3-year, 7 million Euro contract


with consortium of Mandrakesoft and other companies
nologies in Administration (ATICA) in 2002. to gain CC-EAL5 certification (September 2004)

ATICA was created to encourage the adop- 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. 213
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

tion of Free Software and open standards.


The organization has since been renamed
the Agency for the Development of the Electronic Administration or ADEA.
FOSS already has a strong track record for government server deployment in France.
The French Treasury Department runs 500 GNU/Linux servers, while the Taxation
Agency operates another 200 GNU/Linux servers. GNU/Linux servers are also
deployed by the Foreign Ministry and Ministry of Agriculture. The Ministry for In-
frastructure plans to migrate 1,500 Windows NT servers to GNU/Linux, accounting
for three--quarters of all Windows NT servers used at 160 offices throughout France.
The project has attracted attention as it represents the efforts of a single public sec-
tor institution to migrate the majority of its machines to GNU/Linux. The Ministry
of Culture and Communications is in the midst of an across--the--board GNU/Linux
migration project that is scheduled to finish in 2005.
The French government is also examining the large--scale deployment of FOSS desk-
tops as part of its ADELE strategic plan for electronic administration through 2007.
The proposal sets a target of migrating 5--15% of desktops to GNU/Linux by 2007.
The reasons for migrating to GNU/Linux are to improve interoperability between
different systems and reduce life cycle costs through vendor competition.
The French Defense Ministry signed a seven million Euro contract with Mandrake-
soft, Inc., now Mandriva, in September 2004. The 3--year project, which is already
underway, aims to gain security certification at Evaluation Assurance Level 5 of
the Common Criteria (CC--EAL5). The ambitious plan to achieve OS certifica-
tion at CC--EAL5 level exceeds the current highest CC--EAL4 level certification for
commercial GNU/Linux and other GNU/Linux.

165
Trends in the United States

8.3 Trends in the United States


The US government has historically spon-
sored many aspects of FOSS R&D through Trends in the United States
institutions such as the National Science
US government

Foundation (NSF) and the Defense Ad- Although US Federal government has “No Policy”,
actual FOSS adoption are increasing

vanced Research Projects Agency (DARPA). State governments


FOSS deployment is gaining momentum
These institutions have made significant Case Study: State of Massachusetts

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

Released in the repository, GOCC (Government Open

by Richard Stallman when he was at MIT. Code Collaborative)

Much of GNU software that resulted from 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. 214
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

the Free Software movement was developed


in the United States. However, the US
government has not yet to adopt any strategies that specifically promote FOSS
at the federal level, even though its actual FOSS deployment is increasing.
Some state governments have begun taking an active approach to FOSS deployment.
Chief among these is the State of Massachusetts, which has announced a policy
to adopt open standards and FOSS. A project has also been launched to release
software developed by state governments as FOSS, for sharing with other state
governments.

8.3.1 Federal Government

8.3.1.1 US Federal Government’s “No Policy” Stance


The US federal government has taken a “no policy” stance toward FOSS, leav-
ing the choice to free competition in the marketplace. FOSS deployment has not
made any significant strides in federal gov-
ernment procurement, since it is not yet US Government
eligible to freely compete with other prod-
“No policy” stance by US federal government:

ucts. Procurement eligibility is dependent Strong opposition by leading IT vendors

on being included in government procure- Actual FOSS deployment by US federal government


is increasing

ment lists. Unlike commercial products, FOSS already deployed by 250 government sector institutions
(May 2002)

Government reports recommend FOSS deployment

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)

CC-EAL3 certification acquired for IBM/SUSE platform (January


2004) 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. 215
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

166
FOSS Government Policy and E--Government

due to strong opposition to any FOSS pref-


erential treatment by the mighty US soft-
ware industry, which is the most powerful
of its kind anywhere.

8.3.1.2 Actual FOSS Adoption Increasing


Actual deployment of Free/Open--Source systems is increasing due to the push be-
hind GNU/Linux systems by IBM and HP. According to a MITRE Corporation
study commissioned by the US Department of Defense, Free/Open--Source systems
were in use at 249 government sector institutions by May 2002. MITRE is a non--
profit organization primarily funded by the Defense Department. The study found
that institutions such as the US Air Force, Marine Corps, and Naval Observato-
ry were using Free/Open--Source systems. IBM and HP also announced in May
2002 that they had sold systems to various branches of the US government. The
list of customers includes the US Air Force, Defense Department, Department of
Agriculture, Department of Energy and Federal Aviation Administration.
A number of government reports have also been issued that recommend the use of
FOSS. One such recommendation came from the President’s Information Technolo-
gy Advisory Committee (PITAC), in a September 2000 report entitled Developing
Open Source Software to Advance High End Computing. MITRE reports published
in July 2001 and October 2002 described FOSS as having a critical role within the
Department of Defense, to a greater degree than generally acknowledged. MITRE
noted that FOSS was critical to four areas in particular, consisting of infrastructure
support, software development, security and research. In addition to its low cost
compared with proprietary software, FOSS was described as frequently having ex-
cellent features. It was also noted that removal of FOSS would lead to the loss of a
critical source of competition in terms of both quality and cost. The use of closed
source vendors was also linked to massive support costs and lock--in of users.

8.3.1.3 Start of FOSS Inclusion in Government Procurement Stan-


dards
The George Washington University’s Cyber Security Policy Research Institute (CSPRI)
is leading a project designed to acquire ISO 15408 certification for GNU/Linux. The
project was launched in 2003. ISO 15408, also known as the Common Criteria for
Information Technology Security Evaluations, is used in 20 countries including the
United States. Certification at CC--EAL3 level was acquired for SUSE Linux En-
terprise Server 8 running on an IBM xSeries machine in January 2004. The project

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.

8.3.2 State Governments


Legislation related to government procurement of FOSS has not been debated at
the federal level, although it has been studied numerous times at the state lev-
el. Radical legislation for mandatory state
procurement of FOSS systems has been State Governments
proposed in the California and Oklahoma
Movement to deploy FOSS among some state

state legislatures but were quickly reject- governments


Oregon, Texas, Hawaii and other states have proposed bills for

ed. Legislation that would have simply FOSS deployment, which were rejected or shelved

State of Massachusetts introduces preferential policy toward


FOSS (September 2003)

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)

Austin City implements GNU/Linux and OpenOffice.org trials


(December 2003)

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

California Performance Review Commission recommends


increase in FOSS deployment by California state government

position by commercial vendors and were (August 2004)


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. 216
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

either rejected or placed on hold.


In the United States, it is considered to
be extremely difficult to pass legislation that gives even the slightest preferential
treatment to FOSS. The situation contrasts considerably with that of Europe, which
has already progressed to debate over the approach to FOSS implementation.
However, FOSS deployment is gaining momentum with the deployment of GNU/Linux
servers by many state governments. In terms of desktops, the City of Austin imple-
mented trials for GNU/Linux and OpenOffice.org deployment in late 2003.
A major development occurred in September 2003 when the State of Massachusetts
announced that it was implementing a policy that favors FOSS procurement. How-
ever, the state toned down this policy within a matter of months. The revised pol-
icy now recommends consideration for “all possible alternatives - proprietary, open
source, and public sector code sharing - in determining best value solutions.” Despite
toning down its policy, the State of Massachusetts is moving forward with actual
large--scale deployment of FOSS.

168
FOSS Government Policy and E--Government

8.3.3 Case Study: State of Massachusetts


In 2003, the State of Massachusetts formed a voluntary IT committee comprised of
25 representatives from various state agencies and private sector companies. The
move came in response to a drop in state
tax revenues after the collapse of the Inter- Case Study: State of Massachusetts

net bubble. The difficulty of maintaining


Virtual Law Office

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

Migration of legacy systems to GNU/Linux platform

into a Massachusetts CIO “Kitchen Cabi- SUSE Linux running in virtual machine on mainframe

Red Hat Linux Advanced Server running on IA server

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

Reduce costs by sharing code with other states

Enables continued collaborative development through

state. community effort

MIT and Harvard provide technical and legal support

At a CIO meeting in September 2003, an 11 state agencies involved, from eight states

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. 217
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

important decision was made to implement


a comprehensive policy for future IT in-
vestment and operating expenditures. The policy stated that new applications
should adhere to open standards and Free/Open--Source. Meanwhile, existing ap-
plications were to be evaluated for encapsulation or migration to open standards
and Free/Open--Source. It is important to note that the State of Massachusetts
policy originated from within the state government. This makes it distinct from
Free/Open--Source legislation proposed in other state legislatures.
The first FOSS--based application to be developed under the new policy was the
Java--based Virtual Law Office. The system uses SUSE Linux Enterprise Server 8
running in a virtual machine on a mainframe. The other part of the system uses
Red Hat Linux Advanced Server 2.1 running on an IBM xSeries IA server.
Based on its own experience with FOSS--based development, the State of Mas-
sachusetts recognized the need for a framework to share source code with other state
governments. After studying the issue, Massachusetts prepared a legal framework
for handling copyright issues related to the sharing of source code. The state then
launched the Government Open Code Collaborative (GOCC) in December 2003 as
a repository for FOSS code. Currently, eleven state agencies are part of the GOCC
repository. These agencies represent the states of Massachusetts, Rhode Island, Mis-
souri, Pennsylvania, Utah, Kansas, Virginia and West Virginia. MIT and Harvard
University also participate in the project by providing technical and legal support.

169
Trends in Asia

8.4 Trends in Asia


This section examines trends in Asia by first examining the situation in Northeast
Asia. Three countries outside of Japan are examined, focusing on China, South
Korea and Taiwan. Later sections exam-
ine the situation in Southeast Asia with a Trends in Asia
focus on Thailand, Malaysia, Vietnam and
East Asia

the Philippines. The first Asia OSS Sym- China, Taiwan and Koria

Northeast Asia FOSS Promotion Forum: cooperation

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

Asia FOSS Symposium: held twice a year

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.

8.4.1 East Asia: China, Taiwan and South Korea


Interest in FOSS by the Chinese government is thought to have initially been driv-
en by a strong interest in FOSS deployment for national defense. The Chinese
government actively supports the promo-
tion of FOSS as a platform for software East Asia:
China, Taiwan and South Korea
development that is not bound to US and China

European companies. National GNU/Linux strategy

Government-led development of Chinese versions of

China is pursuing a national GNU/Linux GNU/Linux

Red Flag Linux, Yangfan Linux, Qihang Linux

Focus on human resources development


strategy through the development of Chi- GNU/Linux “1+1+1” Project

nese versions of GNU/Linux such as Red Taiwan


Many initiatives to promote FOSS

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.

Asianux OS, which was developed through


the collaboration of Japanese, Chinese and
South Korean firms. China is also focusing on human resources development. The
Linux “1+1+1” Project, led by the Beijing Association for Science and Technology,
was launched in 2003. The project aims to train 10,000 users, 1,000 GNU/Linux
engineers and 100 GNU/Linux instructors by 2006.
The Taiwanese government is also actively promoting FOSS. Government funds are
being used to develop GNU/Linux and FOSS programs. The country has also hosted
many FOSS events and international conferences.
The GNU/Linux market in South Korea has observed a realignment. The market
was once flooded with GNU/Linux distributions, but competition has weeded out

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.

8.4.2 Northeast Asia OSS Promotion Forum


The Northeast Asia OSS Promotion Forum is an international collaborative project
between Japan, China and South Korea. The first Forum was hosted by Beijing in
April 2004. This was followed by a second
event in Sapporo in July 2004 and a third Northeast Asia FOSS Promotion Forum

Forum in Seoul in December 2004. The International collaborative project by Japan, China and

Forum has established three joint work- South Korea


1st Forum: Beijing, China (April 2004)

2nd Forum: Sapporo, Japan (July 2004)

ing groups focusing on the following ar- 3rd Forum: Seoul, Korea (December 2004)

Established joint working groups that engage in

eas: Technology Development & Assess- activities


Technology Development & Assessment (WG1), Human

ment (WG1), Human Resource Develop- Resource Development (WG2) and Study on Standardization &
Certification (WG3)

Supporting organizations formed in each country


ment (WG2) and Study on Standardiza- Japan FOSS Promotion Forum created in Japan
Secretariat: Information-Technology Promotion Agency, Japan

tion & Certification (WG3). Each working (IPA)

METI, Ministry of Internal Affairs and Communications (MIC), and


Japan Information Technology Services Industry Association (JISA)

group meets regularly to discuss interna- involved as observers

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. 220
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

tional developments in each subject area.


Supporting organizations have been formed
in each country to support the activities of the joint working groups. The Japan
OSS Promotion Forum has been established to serve this role in Japan. The Infor-
mation--Technology Promotion Agency, Japan (IPA) is the secretariat of the Japan
OSS Promotion Forum, which is comprised of major vendors, system integrators
and GNU/Linux distributors. Also involved in the Japan OSS Promotion Forum as
observers are METI, the Ministry of Internal Affairs and Communications (MIC)
and the Japan Information Technology Services Industry Association (JISA).

171
Trends in Asia

8.4.3 Southeast Asia: Thailand, Malaysia, Philippines and Vietnam


This section examines the situation in Southeast Asia by focusing on Thailand,
Malaysia, Philippines and Vietnam.

Southeast Asia:
Thailand and Malaysia

Thailand
Leading FOSS nation in Southeast Asia

National Electronics and Computer Technology Center


(NECTEC): Core organization for promoting FOSS

Sales of 100,000 GNU/Linux PCs through ICT PC Project


(now called People’s PC Project)

Development of GNU/Linux Thai Language Extension (TLE),


etc.

Malaysia
Promoting FOSS through national government and
various government organizations

MIMOS (The Malaysian Institute of Microelectronic System)

Established the Asian Open Source Center (ASIAOSC)

MAMPU (Malaysian Administrative Modernization and


Management Planning Unit)

Announced Public Sector Open Source Master Plan (July 2004)


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. 221
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

Rampant software piracy (reportedly over 60% of all

government encourages FOSS deployment software)

FOSS promoted as part of e-Philippine program

as part of the e--Philippine program. Vietnam


Rapid acceleration in FOSS promotion, sparked by Asia
FOSS Symposium

Approved master plan: Applying and Developing Open


Source Software in Vietnam for the 2004-2008 Period
(March 2004)

FOSS training courses

Conferences on FOSS migration, 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. 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

8.4.4 Asia Open Source Software Symposium


The Asia Open Source Software Symposium is held every six months under the
sponsorship of the Center of International Cooperation for Computerization (CICC),
Japan. The event is also supported by or-
ganizations in each host nation. The first Asia Open Source Software
Symposium
Symposium was held in Thailand in March
Jointly sponsored by Center of International

2003. Six events have been held since then Cooperation for Computerization (CICC), Japan and
organizations in host nations

in Singapore, Hanoi, Taipei, Beijing and History


First Symposium: Phuket, Thailand (March 2003)

Colombo. 2nd Symposium:

3rd Symposium:
Singapore (November 2003)

Hanoi, Vietnam (March 2004)

4th Symposium: Taipei, Taiwan (September 2004)

At the Symposium, participating nations 5th Symposium:

6th Symposium:
Beijing, China (March 2005)

Colombo, SriLanka (September 2005)

gather to exchange information about ini- Features of Asia FOSS Symposium


Impact on host nation

tiatives related to FOSS promotion. Pre- Discuss topics related to FOSS


Share information about status of FOSS promotion in each region

sentations are given by various FOSS--re- Cooperate on FOSS promotion in Asia

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. 223
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

lated experts and key local officials. Roundtable


sessions feature discussions about FOSS top-
ics, such as collaborative approaches to promoting FOSS in Asia. The Symposium
has also served as a major catalyst in host nations and surrounding countries, as
was the case in Vietnam.

8.5 Trends in National and Local Japanese Government


In Japan, policies to promote FOSS are implemented by various branches of gov-
ernment, based on their respective government roles. METI and MIC are partic-
ularly active in promoting FOSS. METI
takes charge of policies to promote indus- Trends in National and Local Japanese
Government
try, while MIC promotes e--government at FOSS Policies by Ministry of Economy, Trade and

national and local levels. FOSS policies Industry

Survey on FOSS usage and FOSS deployment guidelines

are also implemented through various or- FOSS feasibility trials

IPA sponsorship of FOSS development by private sector

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”

Collaborative Outsourcing / e-Municipality Promotion

deployment among local governments in Strategy

Trends in FOSS deployment at local government level

Japan, from the perspective of providing Part of regional development policy

Avoidance of vendor lock-in and emphasis on cost

e--municipality for local residents. Case studies: FOSS procurement by local governments

Case study: Nagasaki prefecture and Hokkaido


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. 224
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

government

174
FOSS Government Policy and E--Government

8.5.1 FOSS Policies by Ministry of Economy, Trade and Industry


METI, which takes charge of policies to promote industry, is introducing government
policies to foster and improve the global competitiveness of the Japanese software in-
dustry and IT services industry. There are
three driving factors behind these strate- FOSS Policies by Ministry of Economy,
Trade and Industry
gies: Policies to promote Japanese IT service industry and software
industry

Current massive trade deficit in software

1. The current massive trade deficit in soft- Loss of technical capabilities from erosion of Japanese
infrastructure software

ware. Shortage of human resources development for Japanese


engineers, due to drastic increase of FOSS market

FOSS usage survey and guidelines for studying FOSS


deployment

2. The loss of technical capabilities from Wide overview of major FOSS, FOSS licensing and business
models using FOSS

IPA’s Infrastructure Building Program for Open Source Software

the erosion of Japanese infrastructure Funds development related to perceived areas of FOSS weakness
Enterprise technologies

software. Embedded field

Desktops

Issues unique to Japanese language (fonts, printing, character encoding)


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. 225
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

3. The shortage of human resources devel-


opment for Japanese engineers, due to offshore development.

8.5.1.1 Current Massive Trade Deficit in Software


The majority of both enterprise and consumer software used in Japan consists of
localized versions of overseas software with Japanese language support. Only a small
percentage of software is independently developed and sold in Japan. Except for
software used in consumer gaming consoles, very little software of Japanese origin
is used outside of Japan.
According to a survey conducted in 2000, Japan imported 919 billion yen in software,
compared with software exports of 9 billion yen. Imports of basic software such as
libraries and middleware came to 335 billion yen from the US alone. The massive
trade deficit in software is expected to have widened at present, along with the
Japanese software market expansion.
These circumstances make it difficult to achieve a significant increase in the volume
of software exports by fostering the Japanese software industry. A more immediate
solution is to reduce foreign software imports into Japan. FOSS deployment is
viewed as a way to restrict opportunities for using foreign software, in an effort to
drive down the total value of software imports.

8.5.1.2 Loss of Technical Capabilities from Erosion of Japanese In-


frastructure Software
Infrastructure software refers to operating systems and middleware such as databas-
es and libraries. Infrastructure software accounts for one--third of the value of all

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.

8.5.1.3 Shortage of Human Resources Development for Japanese En-


gineers Due to Drastic Increase of FOSS Market
GNU/Linux market in Japan has drastically expanded in the past several years.
Development site requires FOSS engineers, even if they are the latest graduate from
the university or technical colleges. The situation has led to concerns about the
lack of opportunities to train engineers and the shortage of skilled engineers. The
viewable source code of FOSS makes it an excellent source of material for training
engineers at higher education institutions and at enterprises.

8.5.1.4 Survey on FOSS Usage and FOSS Deployment Guidelines


Japanese software development vendors, system integrators and user enterprises have
various concerns and reservations about deploying FOSS. METI has responded by
publishing guidelines for studying FOSS deployment in August 2003. Written by a
committee of experts, the guidelines provide a wide overview of FOSS deployment.
Subjects covered include major FOSS, FOSS licensing and business models using
FOSS.

8.5.1.5 FOSS Feasibility Trials


In addition to publishing FOSS deployment guidelines, METI conducts FOSS trials
to examine issues that arise from actual FOSS deployment. Since FOSS server
deployment has rapidly escalated in even the public sector, METI has launched
trials to study the feasibility of FOSS desktops.
In 2004, METI conducted IT education at public schools using FOSS desktops (see
Section 8.7.4). METI has also announced plans to conduct FOSS deployment
trials in 2005 for ordinary terminals used by local government employees.
The trials conducted by METI make it increasingly clear that widespread use of
proprietary document formats from vendors is a barrier to FOSS deployment. A

176
FOSS Government Policy and E--Government

further barrier is the widespread use of proprietary vendor formats that extend
HTML and other standardized specifications.

8.5.1.6 IPA Sponsorship of Private Sector FOSS Development


The Information--Technology Promotion Agency, Japan (IPA) funds FOSS devel-
opment by private sector firms. The funding focused on perceived areas of general
weakness for FOSS deployment in Japan and is provided under the IPAs Infras-
tructure Building Program for Open Source Software. IPA--sponsored development
projects include crash analysis tools that are essential for building large--scale back-
bone systems. Other projects include development of improved clustering technology
and a development environment for embedded software. IPA also sponsors the de-
velopment of printing technology needed for FOSS desktop environments and has
purchased essential Japanese fonts for FOSS desktop use.

8.5.2 FOSS Policies in E--Government by Ministry of Internal Affairs


and Communications (MIC)
MIC, which promotes e--government at national and local levels, is introducing FOSS
policies that emphasize security and cost reduction.

FOSS Policies in E-Government by Ministry


of Internal Affairs and Communications

Study Group Concerning Secure OS

Report examining security requirements for procurement of FOSS


operating systems by e-government

Procurement of specified operating systems is “inadequate”;


procurement should be decided based on overall assessment of functions and
quality

FOSS comparable to commercial software for functionality and performance

Precautions for government procurement of FOSS operating


systems

Vital to include support contract

Additional software may be required if higher level of security is needed

Collaborative outsourcing strategy to promote e-municipality

Collaborative development of common systems for e-municipalities


Systems for online application and filing, accounting, payroll, etc.

Employs FOSS-like development method


Several prefectures enlisted to develop different e-municipality functions

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.

8.5.2.1 Study Group Concerning Secure OS


In 2004, MIC issued a report examining the security requirements of FOSS oper-
ating systems for e--government at national and local levels. The report concludes
that FOSS is comparable to commercial software in terms of functionality and per-
formance. The report further recommends that procurement of specified operating
systems is “inadequate”. These recommendations suggest that procurement should
be decided based on an overall assessment of functions and quality. Inclusion of a

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.

8.5.2.2 Collaborative Outsourcing/e--Municipality Promotion Strate-


gy
There are 2,200 local governments across Japan. Many of these municipalities per-
form the same tasks regardless of the size of government. Independent systems
development by each municipality entails multiple investments and is in many ways
wasteful. In response, MIC is implementing a program for collaborative systems
development by local governments as a way to reduce the overall cost of e--munici-
pality development. Systems development concentrates on e--municipality functions
such as online application and filing, as well as accounting and payroll.
Under the program, MIC has enlisted several prefectures to develop different e--
municipality functions. The software is then field--tested at the municipal level.
Development is based on commercial software due to the need for rapid development
and due to limited funds. However, the source code for newly developed software
is released without charge, enabling local governments to freely modify or use the
software. The collaborative outsourcing project can be described as using a FOSS--
like development method.

8.5.3 Trends in FOSS Deployment at Local Government Level

8.5.3.1 FOSS Deployment for E--Municipality Platforms


In addition to MIC’s collaborative outsourcing program, many e--municipalities are
developing Web systems using Java. Java applications and Java--based Web sys-
tems are not dependent on a specific OS,
so it is relatively easy to deploy FOSS-- Trends in FOSS Deployment by Local
Governments
based platforms on these systems. FOSS
FOSS deployment for e-municipality platforms

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

Yamanashi, Kagawa, Okinawa Prefectures, etc.

sis on cost reduction. Release of software developed under MIC’s collaborative


outsourcing project

Hokkaido, Shizuoka Prefecture

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

Deployed by 800 local governments

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

Kagawa and Okinawa deploy FOSS con-


tents management systems to improve qual-
ity and reduce the workload of government
staffs.
Although MIC’s collaborative outsourcing program is largely based on commercial
software, FOSS development environments are being used to keep costs down. Active
deployment of FOSS is increasing at the prefectural level, led by certain prefectures
such as Hokkaido and Shizuoka.

8.5.3.2 FOSS Deployment for Internal Systems


FOSS servers and GNU/Linux systems in particular are widely deployed by local
governments as Web servers and mail servers. More than 800 local governments in
Japan deploy GNU/Linux servers as gateways to connect local government WANs
and internal systems. This number represents one--third of all municipalities in
Japan.
Sumoto City is deploying GNU/Linux and OpenOffice.org on desktops used by its
employees, ahead of FOSS trials conducted by METI. However, the program is still
in its trial phases and does not involve an across--the--board migration of existing
systems.

8.5.4 Reasons for FOSS Deployment by Local Governments


This section examines the reasons for FOSS deployment by Japanese local govern-
ments. To answer this question, it is necessary to examine how local governments
implement systems procurement and un-
derstand the issues faced by local IT firms. Reasons for FOSS Deployment by
Local Governments
Systems procurement by local governments Systems procurement by local governments and issues for

suffers from a lack of skills on the pro- local IT firms


Ever-increasing concentration on centralized vendors due to too much
emphasis on established suppliers

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

Difficulty in judging costs

ing to an ever--increasing concentration on Regular rotation of IT systems personnel a problem

Regular personnel transfers leads to lack of specialized IT knowledge

centralized major vendors. Due to the in- Switch to long-term assignments for personnel with highly specialized
knowledge

Implement resident services and practice information

creasing complexity of systems, it is diffi- disclosure


Deploy systems according to needs of each situation, without being
limited to existing systems

cult for local governments to separate the Transparency of deployment process ensured

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. 228
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

phases of design, development and oper-


ations. Local governments also find it a
challenge to evaluate the contents of public bids based on functionality and per-
formance. The situation is further complicated by the selective use of black box
modules in system building. Local governments also encounter difficulties judging

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.

8.6 Systems Procurement by Local Government and Issues for Local


IT Firms
This section further explores the subject of systems procurement by local government
and issues faced by local IT firms. Systems procurement by local governments should
ideally be implemented through the close
collaboration of local government support- Systems Procurement by Local Government
and Issues for Local IT Firms
ed by local IT firms. In reality, a vicious Situation for local governments (LGs)
Created by MRI based on

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

requirements to systems operations

achieving this ideal. Additional development is automatically awarded to the same


vendor

Prevent LGs from directly awarding contracts to local IT vendors

Local governments tend to be dependent LGs are forced to accept expensive systems that suit the needs
of vendors

Situation for local IT firms


on major vendors based in urban centers. Local IT firms are subcontractors to major vendors
The subcontractor role tends to prevent local IT firms from

Complete dependency on major vendors is


developing the skill set needed for project management
Venture firms are not even qualified to participate in bidding
Vicious circle Subcontractors tend to be difficult to keep resources to learn
new technology

widespread among local governments due Tiered subcontractor structure is accelerating


due to the shortcomings of local IT vendors
The issue is compounded by the growing scale and

to a number of factors. For example, local the increasing use of shared e-municipality 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. 229
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

governments may limit bidding to estab-


lished suppliers. Sometimes, specifications
for a public tender are left up to vendors to write, even though it should be the

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

8.6.1 Case Study: Nagasaki Prefecture


Nagasaki Prefecture has hired a CIO from the private sector who has guided the
introduction of a new procurement system for the prefectural government. The
system has been in place since 2002. Like
other prefectures, Nagasaki Prefecture had Case Study: Nagasaki Prefecture
previously employed the practice of ten- Systems Procurement by Nagasaki Prefecture
Created by MRI based on
materials of Nagasaki Prefecture
Bidding & Order Local firms (2*N)
dering bids for large--scale systems based Prefecture staff
Development Spec.
(Requirements, Basic design)
Divide into
bidding unit (N) A system
Development Spec.
Development
Test Spec.
on vague specifications. This meant that 

System development is separated by function
Specification requires the use of FOSS B system
Development Spec.
Testing

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

Benefits of Using Detailed Specifications Separated by Function


pendency on specific vendors. This de- Tasks are narrowly defined, enabling local firms to participate in bidding based on own capabilities and
areas of specialization
Local firms with limited extra resources can get involved, due to availability of detailed specifications and
awarding of additional contracts if specification changes

pendency also applied to procurement of Many local firms can participate, since contracts are separated into small sizes

Benefits of Specifying FOSS


Specifying FOSS enables equal participation by local firms that do not possess their own software packages
Specifying FOSS enables contracted firms to use FOSS without worry
mainframes. The new procurement system 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. 230
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

specifies the use of FOSS and separates


systems development by function. Testing
and operations are also handled separately as part of a procurement system designed
to create opportunities for local vendors.
Under the new system, prefectural staff prepare the basic system design and define
the detailed requirements for each system function prior to bidding. The major
difference between this and the previous system is that vendors now bid on smaller
units of systems. The arrangement enables local vendors to bid on an equal footing
with major vendors. This is possible due to the availability of detailed ordering
specifications and the possibility of additional orders if specification changes. FOSS
is designated in government specifications, so that excessive requirements are not
placed on vendor guarantees. Specifying FOSS also helps to improve the technical
capabilities of local vendors, who lack the extra capital to deploy expensive commer-
cial software. The new procurement system has enabled the prefectural government
to reduce its procurement costs by one--half to one--third of previous costs.

182
FOSS Government Policy and E--Government

8.6.2 Case Study: Hokkaido Government


The Hokkaido government has indicated that it will actively deploy FOSS for its
HARP framework for development taking place under MIC’s collaborative out-
sourcing project. HARP stands for Har-
monized Applications Relational Platform. Case Study: Hokkaido Government
A report by Hokkaido Bureau of Econo-
Activities of FOSS Communities
my, Trade and Industry indicates that lo- HOSS: Hokkaido Open Source and Security (NPO)
e-Municipal project / Study Group on Open Source
Local User Communities
- DOLUG : Hokkaido Linux User Group
cal governments throughout Hokkaido are - PostgreSQL User Group Hokkaido Branch
- Zope User Group Hokkaido Branch
- NoBUG: Hokkaido *BSD User Group

actively sponsoring FOSS development. The Support from local governments


Commitment from the University establishment of FOSS venture firm (Technoface)

region is also noted for having an active Hokkaido Univ.


(Open System Engineering Course)
Industry-University collaboration project:
Hokkaido local govt.
“declaration of departure from Windows”
Ebetsu City “Branding Dictionary” project
OpenSOAP Large scale GNU/Linux adoption to

FOSS community and local vendors with Hokkaido high-school net

FOSS related firms


excellent technical capabilities for FOSS. Technoface: SIer based on OpenSOAP
IP telecom : IPT-Linux and remote surveillance service
Cyber blue : Development of Open Source GIS
Hokkaido actively sponsors FOSS projects 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. 231
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

through collaboration between industry and


academia and supports venture firms in-
volved in FOSS development.
Ebetsu City, which is located adjacent to Sapporo, provides an illustration of how
local governments are tackling FOSS development. The municipality is involved
in developing the Ebetsu Brand Encyclopedia project, a FOSS--based information
Web site for regional products and attractions. Development of the system is con-
ducted through the collaboration of local industry, government and academia. The
municipality intends to release the system as FOSS.
The Hokkaido government is also building a system for collaborative use by prefec-
tural secondary schools. The initiative is called the Hokkaido School Net project.
The system is designed to provide schools with various features such as e--mail for
teachers and students. Other features include group--ware, e--learning and video
chat capabilities. The system is built on a GNU/Linux platform to minimize depen-
dency on specific hardware and operating systems. Using GNU/Linux also enable
fully remote maintenance of the system. This feature is necessitated by the vast size
of Hokkaido, which makes it difficult to perform on--site maintenance. The system
also relies on FOSS for various server functions, such as using PostgreSQL for the
system’s library and textbook management database.

183
Education and FOSS

8.7 Education and FOSS


Digitization of education is a critical aspect of e--government frameworks. This sec-
tion examines the purpose of using IT equipment in educational settings as a major
premise for digitization of education. The
current situation for using IT equipment Education and FOSS
in Japanese schools is examined, as well as
IT use in educational settings

the motives of vendors involved in the digi- Fundamental idea to use IT equipment in the field of
education

tization of education. Current deployment Situation in Japanese schools


Japanese public schools suffer from a lack of funding to
of IT equipment at schools reveals a vendor manage IT equipment

Raising expectations for utilizing FOSS

strategy to lock in anticipated future users. Aim of software vendors

The inappropriateness of vendor lock--in is Motivated by a desire to invest in students as future


users

illustrated in the section 9.3 and the sig- Case Study: FOSS trials in education
Some trial projects to use FOSS in educational field

nificance of using FOSS in education is ex- have been conducted

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. 232
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

amined here. Examples of several FOSS


projects at schools are described to show
how FOSS is being used in education.

8.7.1 IT Use in Educational Settings


IT use in the field of education is stressed as part of the e--Japan strategy pro-
moted by the Japanese government. The e--Japan strategy sets this goal under the
heading Advancement of Human Resource
Development and the Promotion of Educa- IT Use in Educational Settings
tion and Learning. The e--Japan Priority
Area of emphasis under e-Japan strategy

Policy Program 2004, which was issued in Advancement of Human Resource Development and
the Promotion of Education and Learning

2004, contains a section on digitization of e-Japan Priority Policy Program 2004

Digitization of school education

school education. Under the objective of Improve IT environment in schools

By FY2005, provide 1:1 ratio of PCs to students in


computer labs and 5.4 ratio of students to each
improving the IT environment in schools, educational PC in regular classrooms
IT use in education not information literacy

the policy paper sets a goal of providing a education


Use of IT in education, not education of IT itself

1:1 ratio of PCs to students in school com- Except for “Information Study” curriculum in upper
secondary schools

IT use aimed at boosting achievement of fundamental


puter labs by FY2005. For regular class- goals of education
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. 233
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

rooms, the policy sets a goal of achieving


5.4 ratio of students to every educational
PC.
These goals show that Japan is placing a strong emphasis on the use of IT equipment
in education. However, it is important to remember that the purpose of IT use in
education is not to implement information literacy education. IT use in education
refers to education that utilizes IT, not education of IT. The purpose of IT use in
education is to boost achievement of the fundamental goals of education.

184
FOSS Government Policy and E--Government

Actual IT education is implemented at Japanese upper secondary schools under the


“Information Study” area of curriculum. Information Study should focus on teaching
fundamental IT education that can be widely applied. It should not consist of simple
information literacy education tailored toward specific software products.

8.7.2 Situation in Japanese Schools


Japanese public schools suffer from a lack of funding to deploy, administer and
operate IT equipment. This means that few schools employ an appropriate sys-
tem for administration of IT equipment.
Actual administration is frequently left up Situation in Japanese Schools
to a select group of knowledgeable teach- Inadequate funds to deploy, Instruction using IT

ers who often perform IT administration in administer and operate IT


equipment
equipment
Various experimental
programs are being tried

their spare time. This arrangement adds Administration of equipment


Administration of equipment
Implementation varies widely
depending on school board,
frequently left up to select

to the workload of teachers responsible for group of knowledgeable


teachers
school and teacher

Active use of multimedia


content

IT administration. Imposes extra workload on


teachers Reaction to FOSS from
Volunteer staffs from PTA students

System building tasks are sometimes per- committees or alumni


sometimes build systems
Able to quickly take in new
ideas

formed by a volunteer staff from PTA com- Inadequate safeguards for


security and privacy, despite
sensitivity toward these issues
Some teachers commented
that they learned new things
from students

mittees or alumni. The problem with this 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. 234
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

arrangement is that it is highly vulnerable


to neglect. Regular systems administra-
tion can be interrupted when the person in charge moves or their child graduates
from that school. The end result is that administration duties fail to be adequately
taken over by the new administrator.
Due to these circumstances, IT equipment is frequently operated with inadequate
safeguards for security and privacy. This situation occurs in spite of sensitivity
toward security and privacy issues among school IT administrators and teachers.
Although administration tends to be neglected at schools, some schools are imple-
menting programs that use IT in education in progressive ways. Unique software
and systems are being used for experimental programs led by teachers with a strong
interest in using IT equipment. In particular, many schools are actively using mul-
timedia content in education.
However, these programs are usually not implemented under a common framework,
so implementation tends to vary widely by school board, depending also on the
school and teacher. The level of active interest also varies widely from one school
board to another. One school board may be actively involved in using IT in educa-
tion, while a neighboring school board may not be involved at all.
The Japanese government has conducted demonstration experiments for FOSS de-
ployment in schools since 2004. These trials have revealed that students are able
to adapt to FOSS without any resistance. The ease of accepting FOSS reflects the
flexibility of children in terms of their ability to quickly take in new ideas. Some

185
Education and FOSS

teachers who participated in these trials commented that they were able to learn
new things from the students.

8.7.3 Aim of Software Vendors


Software vendors who push for deployment of their software at schools are partly
motivated by a desire to invest in students as future users. Software deployment
in schools is one effective strategy for at-
tracting a large base of users. Aim of Software Vendors
Software is frequently sold at discounted
Students and children seen as future users

prices to students and educational institu- Type of enclosure strategy

Reasons for academic pricing

tions under the guise of academic pricing. Pretext: For cash-strapped students

Real reason: Capture users at early stage

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

Meaningful to teach operating methods specific to

for financially strapped students. Howev- applications?

Is it fair to teach students about specific applications?

er, the real reason for academic pricing is


to capture users at an early stage. 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. 235
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Textbooks used for the Information Study


curriculum at upper secondary schools pro-
vide a straightforward example of how enclosure works at schools. As part of the
curriculum, students are taught how to use various applications. Many textbooks
attempt to illustrate how to use an application by using the example of an imaginary
application, without referring to a specific application. However, in actual practice,
the operation of an application has to be specific to the application being used.
This leads to the question of whether it is meaningful to teach students operating
methods that are specific to an application. The fairness of teaching students how
to operate only specific applications is also questionable. These issues have yet to
be resolved.

186
FOSS Government Policy and E--Government

8.7.4 Case Study: FOSS Trials in Education


Demonstration experiments of FOSS desktops in educational institutions were con-
ducted in 2004 as part of the IPA’s Infrastructure Building Program for Open Source
Software. The project consisted of field
tests of desktop GNU/Linux and Knoppix. Case Study: FOSS Trials in Education

In the first trial, 300 GNU/Linux desk- IPA-sponsored field tests of FOSS desktops in educational

tops were deployed at eight elementary and institutions (2004)


GNU/Linux desktops deployed at eight elementary and lower
secondary schools in Tsukuba City and Gifu Prefecture

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, Norway’s Skolelinux project (2003)
Skolelinux deployed and evaluated at four elementary and lower

Knoppix was distributed to eight schools secondary schools in Norway

http://www.skolelinux.org/portal/documentation/reports/

across Japan. Participating schools ranged UK’s Open Source Software in Schools project (2004)
FOSS deployed and evaluated at 15 elementary and lower
secondary schools in UK

from an elementary school to several upper http://www.egovmonitor.com/node/907


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. 236
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

secondary schools, in addition to a tech-


nical school and several universities. The
Knoppix software was used by 800 students.
Trial deployment of FOSS desktops in education is not unique to Japan. A number
of similar projects have been implemented in Europe. Norway, for example, imple-
mented the Skolelinux project in 2003. Skolelinux is a Debian--based GNU/Linux
distribution for education that includes education--oriented software packages. Un-
der the trial project, Skolelinux was deployed and evaluated at four elementary and
lower secondary schools in Norway. Similar trials were conducted in the United
Kingdom under the Open Source Software in Schools project taking place in 2004.
Under the program, FOSS was deployed and evaluated at 15 elementary and lower
secondary schools in the UK. Summary reports of these trials are available online.

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

Other subjects explored include the actual How is performance of


FOSS products?
Is the security of FOSS
product high or low?

security of FOSS products and the educa- Cost Educational benefits


Is it possible to reduce What is educational
tional benefits of FOSS. Later sections ex- cost by FOSS? efficiency from FOSS?

amine the importance of sustainable soft- Vendor lock-in


What is vendor lock-in?
Sustainability
Importance of
sustainable software
ware development and the positive impact How to avoid vendor
lock-in by adopting development

FOSS?

of FOSS on sustainable software develop-


ment. 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. 237
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

Developing speed of active FOSS project is amazingly

in which the actual performance of FOSS high

FOSS performance testing in Japan


products was evaluated. As a matter of fact, how is the performance of FOSS?

A series of performance evaluations on FOSS products


were conducted by a work group of Japan FOSS
promotion forum

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

9.1.1 Innovative and Fast Development


FOSS has a reputation for enabling innovative development. A large part of this
can be traced to the strong motivation of developers that support FOSS develop-
ment. The primary motivation of FOSS
development is a desire by developers to Innovative and Rapid Development

create software that they want, or to create


Reasons for innovative development

software unlike any other. Unlike many oc- Motivation of FOSS developers

Create software that developers want

cupational programmers, FOSS developers Create software unlike any other

Localization tends to be more easily implemented

are involved in development out of person- Localization undertaken by actual users that desire
localization

al desire, which is likely to produce inno- Rapid pace of development


Projects fundamentally driven by enthusiasm of

vative software. developers

Although development sometimes takes place through


business

Localization also tends to be easier to im- Desire to quickly develop software that developers want

Large projects involve worldwide developer base

plement with FOSS, because it is under- Round-the-clock development


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. 239
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

taken by the actual users that desire to


get localized software. It is important to
note that this is possible only because of FOSS.
Although FOSS development is sometimes implemented through business, projects
are fundamentally driven by the enthusiasm of developers, which leads to fast de-
velopment. This enthusiasm drives developers to rapidly develop the software that
they want. Major FOSS projects involve the participation of a worldwide developer
base, which can increase the pace of development through round--the--clock develop-
ment. This type of development is one reason why security patches to fix software
vulnerabilities are rapidly released under FOSS.

9.1.2 FOSS Performance Testing in Japan


The Japan OSS Promotion Forum’s Development Infrastructure Working Group
has tested the performance of select FOSS products. The products tested include
DBMS, PostgreSQL, JBoss and the Linux
kernel. FOSS Performance Testing in Japan

Benchmark performance of DBMS was test-


Performance evaluations implemented by working

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

JBFOSS performance and reliability evaluation using


SPECjAppServer2004

users browsing and buying items online. Performance of WebLogic surpasses JBFOSS

Evaluation and bottleneck analysis of Linux kernel using LKST

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

Members of Development Infrastructure Working Group

load. DBT--3 consists of business oriented Hitachi, SRA, NTT Data, NS Solutions, Sumisho Computer Systems, NRI,
Miracle Linux, Uniadex, NTT Comware, Nihon Unisys

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. 240
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ad--hoc queries and concurrent data modi-


fications. The reliability and performance

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

standpoint of evaluation. Cost evaluations FOSS is not almighty to reduce costs

must be performed based on a thorough Evaluating total cost of ownership (TCO)


Cost evaluation strongly depends on assessor's idea

understanding of where FOSS deployment Cost reduction factors


What items can be candidate for cost reduction factors

can reduce costs. The cost disadvantages by FOSS adoption?

Cost disadvantage of FOSS


of deploying FOSS also need to be under- What are disadvantage points in FOSS adoption?

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

9.2.1 Myth of Low Cost


Cost reduction is considered to be the major advantage of GNU/Linux deploy-
ment. This assumption is nearly always true when GNU/Linux is used to replace
Unix. When migrating from Unix, hard-
ware costs are likely to be driven down by Myth of Low Cost
the deployment of low cost IA (Intel Ar-
Presumed to be chief advantage of GNU/Linux

chitecture) servers. In the case of Tsu- deployment


Nearly always true when replacing Unix

taya Online, system building costs were Tsutaya Online: 1/4 to 1/5 cost reduction

Amazon.com: Saved $17 million

one--quarter to one--fifth lower due to GNU/Linux TCO gap with Windows is small and debatable

Inadequate experience and lack of thorough discussion

deployment. Amazon.com is said to have for meaningful comparison of desktops costs

Focus ends up being on maintenance costs

saved as much as $17 million from deploy- Maintenance of middleware and applications

Cost of administrative engineers

Once technology is created to easily manage multiple


ing GNU/Linux. desktops

Desktop tug-of-war between Windows and GNU/Linux

However, there is only a small gap in TCO 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. 242
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

when comparing GNU/Linux and Windows.


The advantage can be tipped in favor of
either environment by changing the assumptions about how a system is used. Com-
paring costs for desktop deployment is usually meaningless due to inadequate expe-
rience with FOSS. A lack of thorough discussion also hampers any meaningful cost
comparisons involving FOSS desktops.
Cost evaluations frequently end up focusing on maintenance costs. In addition to
the cost of maintaining middleware and applications, it is necessary to factor in
the cost of administrative engineers and user training. FOSS is drawing interest
today as a way to reduce costs for desktop use, which is linked to the desktop tug--
of--war between Windows and GNU/Linux. Once technology is created to simplify
the administration of multiple desktops, maintenance costs for FOSS desktops are
expected to fall dramatically. This development will enable effective cost reduction
through FOSS desktop deployment.

191
Cost

9.2.2 Evaluating Total Cost of Ownership (TCO)


TCO evaluations are normally used as a guidepost for economic evaluations of sys-
tems. The total cost of ownership refers to the total of all costs required to main-
tain, administer, and adequately operate
systems. TCO comprises various elements Evaluating Total Cost of Ownership

such as systems deployment and operat-


TCO (Total Cost of Ownership)

ing costs. Training costs for both users Total of all costs required to maintain, administer, and
adequately operate systems

and system administrators also factor into Elements contributing to TCO


Deployment costs, operating costs, training costs, etc.
TCO. Room to calculate TCO as desired, by changing

It is important to remember that a TCO standpoint of evaluation


Microsoft’s Get the Facts campaign: How are the facts

evaluation leaves room for the results to be represented?

Various assumptions are suspect


calculated in favor of the evaluator. This is Proper evaluation of TCO requires concrete
assumptions about how system will be used

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.

evaluation. Microsoft’s Get the Facts cam-


paign illustrates how facts can be twisted
according to the way they are presented.
In evaluating TCO, it is important to set certain concrete assumptions concerning
how systems will be used. The results of the TCO evaluation will depend on where
these assumptions are placed. Proper evaluation of TCO requires attention to the
assumptions made when calculating the TCO.

9.2.3 Cost Reduction Factors


This section examines how FOSS can reduce costs. To begin with, FOSS can be re-
lied on to drive down initial deployment costs. Since only one copy of a GNU/Linux
distribution is needed, minimal costs are
incurred in obtaining distributions. How- Cost Reduction Factors
ever, enterprise GNU/Linux distributions
Initial deployment costs

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

cluded in the distribution. Upgrade costs


Usually very low

Licensing costs are not required for sys- Frequently expensive for proprietary software

tems built entirely using FOSS. If propri- Hardware costs


Runs adequately on older hardware for certain
applications
etary software is required, only the license Systems can be tuned to adequately run on low spec
PCs

for that software needs to be purchased. 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. 244
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Licensing costs are not anticipated to take


up a significant proportion of overall costs
when deploying FOSS.
FOSS also enables the lowering of upgrade costs. Upgrades costs for GNU/Linux
distributions are typically quite low, while upgrade costs 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.

9.2.4 Cost Disadvantages of FOSS


FOSS also has certain cost disadvantages. These disadvantages are frequently iden-
tified during TCO comparisons with existing proprietary systems. The cost of train-
ing is considered as a major disadvantage
when migrating to a FOSS--based system Cost Disadvantages of FOSS
from a familiar existing system. In gen-
Frequently identified cost disadvantages

eral, users are extremely conservative and Training costs

will resist migrating from a familiar envi- Users are generally conservative and resist migrating from
a familiar environment to a new environment

Lack of textbooks and reference material for mastering


ronment to a new environment. Therefore, FOSS

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

Systems modification costs

A shortage of textbooks and reference ma- Servers may need to be modified

Some systems only designed to work with specific clients

terial to master FOSS also contributes to FOSS clients may not work within such 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. 245
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

higher training costs for FOSS. In compari-


son, books for commonly deployed systems
are widely available and can be used for self--study. The limited supply of informa-
tion for FOSS also drives up costs due to the need for customized training courses.
The same situation also exists for support costs. A limited supply of FOSS engineers
contributes to the view that support costs are still high. However, the high cost of
labor is anticipated to drop as FOSS becomes more common.
One element that can impede cost reduction from FOSS deployment is the need
for additional costs relating to system modification. This is likely to occur when
deploying FOSS for an existing system that is already running. For example, when
clients are migrated to FOSS as a way to reduce costs, the server may need to be
modified. This can lead to an actual increase in costs. The configuration of the
existing system comes into play, in terms of whether the system is designed to only
work with specific clients. Systems configured in this way may prevent FOSS clients
from working, so that modification of the overall system is required.

193
Vendor Lock--In

9.3 Vendor Lock--In


This section examines the nature of ven-
dor lock--in and the issues it causes. Ex- Vendor Lock-In
amples of vendor lock--in in other indus-
What is 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?

Examples of lock-in business strategies


to avoid lock--in, it is important to sepa- Vendor lock-in is found not only in IT market

rate the interface and implementation by Separation of Interface and Implementation


Promoting fair competition among implementations

adopting a standard interface. This ar- from each vendor, in conformity with standard
interfaces

rangement promotes competition via the FOSS and open standards


Reasons why fair competition requires more than

implementation. In addition, the relation- specification standards

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. 246
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ship between FOSS and open standards


is also explored, examining why it is not
enough to standardize specifications.

9.3.1 What is Vendor Lock--In


Vendor lock--in describes an environment or situation that locks in users to prod-
ucts from a specific vendor. Vendor lock--in is used as a customer retention strategy
by vendors. Various factors can lead to
vendor lock--in, such as the need to en- What is Vendor Lock-In
sure compatibility with archival data or
Vendor lock-in

between data formats exchanged by users. Locks in user environment to specific vendor’s
products

The integrated look and feel of a user in- Type of customer retention strategy

Can lead to endless vicious circle of biased

terface can also contribute to vendor lock-- procurement

Forces users into regular version upgrades

Monopoly can invite lower quality and higher costs

in. Other contributing factors can include Need to maintain compatibility with archival assets

Eliminates participation by other vendors through use of

how a system’s features are operated or the closed specifications

Used to be an excellent business model


knowledge of that environment. Users: Buy long-term support and peace of mind

Vendors: Stable revenue and growth of market share


Vendor lock--in used to be an excellent busi- 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. 247
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ness model. Users expected vendors to


provide long--term support in a vendor lock--
in situation. In some ways, vendor lock--in provided a way for users to purchase peace
of mind. For vendors, vendor lock--in was recognized as an effective business model
that balances long--term stable revenue and growth of market share.
Eventually, enclosure by specific companies became more of an obstacle for certain
products. This became true of products like software, which rely on frequent up-
dates and are high in interdependency. In these industries, vendor lock--in becomes
an obstacle to ensuring fair competition. Vendor lock--in of software and systems
encourages an ever--widening vicious circle of biased procurement. Under this ar-
rangement, locked in users must continue to procure product lines from a specific

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.

9.3.2 Examples of Lock--In Business Strategies


This section provides examples of enclosure in business that translate into vendor
lock--in. Although there are many examples of enclosure in business, it is rare
for strong vendor lock--in to be achieved
through technology. Examples of Lock-In Business
Strategies
The customer loyalty or rewards program
Rewards programs Mobile phone carriers and ISPs

is a leading example of a lock--in business Leading examples

Credit card companies


Frequently introduce new
models and services

strategy. Primary examples of rewards pro- Frequent flier programs

Mail order companies and


Users do not wish to change
mobile numbers and e-mail
addresses
grams include those used by credit card mass merchandisers

Everyday examples Introduction of mobile number


portability may reduce lock-in
Frequent buyer cards

companies, mail order companies and mass from retailers

Restaurant coupons
advantage

MNP: Mobile Number Portability

merchandisers. Frequent flyer programs Car dealers


Preferential trade-in
Worst case of vendor lock-in
“One yen bid”

used by airlines also fall into this catego- programs for car brands
from same manufacturer
Bid on first year at low cost

Gain highly profitable private


contracts in after the second

ry. Everyday examples include frequent Frequent model changes

An Introduction to Free/Open-Source Software


year

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.

buyer cards from retailers and restaurant


coupons.
Another type of vendor lock--in strategy is the preferential trade--in program offered
by some car dealers in Japan. This type of program applies to trade--ins of a car
brand from the same manufacturer. Car manufacturers also introduce frequent
model changes to encourage customers to upgrade to a new vehicle. This business
strategy is similar to the regular introduction of version upgrades for software.
Mobile phone companies and ISPs also rely on business models with similar elements.
By continually introducing new models and services, users are encouraged to upgrade
their equipment or purchase new services. At the same time, users tend to resist
changing their mobile phone number or e--mail address (ID), so that they are locked
into their assigned ID. However, the introduction of mobile number portability across
telecommunication carriers is expected to reduce the lock--in advantage for mobile
phone companies.
In Japan, the most unfair example of vendor lock--in is the “one yen bid,” which
undermines the very purpose of bidding as a way to reduce costs. The one yen
bid takes advantage of Japanese business customs and the complexity of system
building. Under this strategy, the vendor places an ultra--low bid on the first year
of a contract. After building the system at a loss, the vendor gains private contracts
after the second year and beyond, based on its established record as the system

195
Vendor Lock--In

builder. These contracts enable the vendor to take on highly profitable contracts
for systems operation and continued development.

9.3.3 Separation of Interface and Implementation


Interfaces should be clearly defined and standardized for the purpose of avoiding
vendor lock--in and promoting fair procurement. Separating the interface from the
implementation achieves fair competition
within a standard interface. The follow- Separation of Interface and
Implementation
ing steps are used to separate the imple- Separate from implementation to achieve

mentation, which will ideally result in fair competition


1. Derive necessary functions and separate into modules.

competition: 2. For each module, separate the interface and implementation.

3. Define the interface and establish it as a standard.

Separation of implementation ideally results in fair


competition

1. Derive the necessary functions and sep- From de facto standards to open standards
Conventional de facto standards

arate into modules. Implementation also treated as part of standard

Open standards

Standards formulation process also handled openly

Implementation left to each vendor

2. For each module, separate the interface Interface is specified to a standard, and implementation
is interchangeable

and implementation. 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
249

3. Define the interface and establish it as a standard.

Due to the importance of interface standardization, the trend among IT vendors


today is to emphasize open standards as vendors move away from de facto standards.
Conventional de facto standards were treated that way due to the large market share
of certain software. Under this arrangement, the interface is also treated as part of
the de facto standard.
In contrast with the de facto standard, which treats an existing implementation as
the standard, the de jure standard is based on a previously formulated standard.
Implementations are made to be compliant with the de jure standard. Sometimes
the decision--making process used in formulating the standard is entirely open. This
is referred to as an open standard. Under an open standard, only the interface is
standardized. Implementation is left to each vendor.

196
Features of FOSS

9.3.4 Free/Open--Source Software and Open Standards


Open standards are an effective strategy to avoid vendor lock--in. Open standards
are open in all phases of the standardization process and its application: e.g. partici-
pation on the standardization committees,
access to the standardization documents, Free/Open-Source Software and Open
Standards
and implementation of the standard. By
Avoid vendor lock-in

making specifications open, it is possible to Make specifications open to maintain competition


Open specifications alone are insufficient


maintain competition. However, it is wide- Also need to release source code

Enables other vendors to participate in system upgrades

User has upper hand for price negotiations

ly believed that open specifications alone Why open standards alone are inadequate
Vendors will always emerge to seek differentiation through

are not enough to maintain fair compe- proprietary means

Example of HTML

tition. According to this view, releasing Standard specifications decided by W3C

Browser war: Browser incompatibilities due to proprietary tag


extensions

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

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. 250
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

examined. What is secure software? From whom do we have to


protect our software?

Is FOSS really more secure?


Opinions from two sides: “More Secure” vs “Less
Secure”

“Many eyes” of developers


The reason why FOSS is more secure
Naked implementation
The reason why FOSS is less secure
FOSS Security Tools
There are many security tools 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. 251
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

9.4.1 Security of Software


By definition, the security of software provides a measure of whether software can be
anticipated to continue running. Obstacles to security include outside threats such
as unauthorized access and interception of
communications. Unauthorized manipu- Security of Software
lation of data such as falsification is also Security is the ability to keep software operating as

a threat to security. Additional obstacles expected

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

software. Interception: Unexpected leakage of data

Falsification: Transmission of insidiously modified data

Internal factors

Unauthorized access involves unexpected Software defect: Unexpected operation due to fault in software

Vulnerability: Fault or specification issue that could be used by


third party to take over system or leak data, etc.

manipulation by a third party. Intercep- Raises the issue

tion and falsification are examples of unau- Can FOSS improve security against these threats?

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. 252
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

thorized manipulation of privileged data


streamed over a transmission path. Both
problems can result in unexpected circulation of tampered data.
A software defect occurs when software operates in an unexpected way due to a fault
with the software. Software and system vulnerabilities occur when there is a system
fault or problem with specifications. These problems could enable a third party
to take over the system, or take advantage of the vulnerability to leak confidential
data. The next section examines whether FOSS can be used to improve security
against such threats.

198
Features of FOSS

9.4.2 Is FOSS Really More Secure?


There are two widely divergent views on
the impact of FOSS on security. One ar- Is FOSS Really More Secure?
gument holds that FOSS offers greater se-
Widely divergent views

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

claims that proprietary software from ma- Reality of the situation


Servers

jor vendors affords greater opportunities to Unauthorized access and security accidents occur on all
platforms including Unix, GNU/Linux and Windows

ensure security. Desktops


Viruses and worms targeted at FOSS are extremely rare

Low probability due to small number of FOSS desktops to begin

The reality for servers is that unauthorized with?

Depends on system design principles; operating systems


designed for convenience are comparatively more vulnerable

access and security accidents occur on all 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. 253
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

platforms including Unix, GNU/Linux and


Windows. The rate of problems depends
on the popularity of the platform.
The situation is slightly different for desktops. Viruses and worms targeted at FOSS
are extremely rare and almost non--existent today, although the number of FOSS
desktops is relatively low to begin with. However, it is hard to imagine that viruses
will become rampant on FOSS desktops as they are today, even with the spread
of FOSS desktops. This reasoning is due to the system design principles employed
for Free/Open--Source operating systems. The trade--off that exists between conve-
nience and security. Operating systems that are designed for greater convenience
have comparatively more vulnerabilities. As Unix--based systems, FOSS desktops
place an emphasis on security.

9.4.3 “Many Eyes” of Developers


The “many eyes” of developers is cited as one reason why FOSS offers greater se-
curity. The notion refers to the many eyes of developers that inspect source code
to identify any issues with code. This view
holds that continuous round--the--clock de- “Many Eyes” of Developers
velopment by a worldwide developer base
Possible reasons for greater security of FOSS

enables rapid response to defects. This in Rapid response to defects

Continuous round-the-clock development by worldwide

turn enables relatively fast response when developer base

Relatively fast response when critical vulnerabilities or


security holes are identified

critical vulnerabilities or security holes are Applies to actively developed FOSS projects

“Trojan horse” measures

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

FOSS is also claimed to be effective for


countering the “Trojan horse” program. This view holds that it is difficult to slip
unauthorized code into source code that is published as FOSS. Both the “Trojan
horse” measures and the notion that FOSS offers rapid response to defects are based
on the idea that security is improved through the vigilance of many developers.

9.4.4 Naked Implementation


FOSS is also claimed to reduce security, based on the argument that releasing
source code gives crackers enough information to attack FOSS. This view holds that
FOSS makes it easier to find errors or secu-
rity holes in the implementation or design Naked Implementation
of software, resulting in reduced security.
Reasons FOSS is thought to reduce 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

Lack of trust in volunteer development of FOSS


One frequent concern about FOSS is the projects

Risk is higher for less active FOSS projects

structure for security measures on the part 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. 255
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

of the software provider. Major vendors of


existing proprietary software are putting
adequate resources today into security measures. However, there is a lack of trust in
the security measures of FOSS projects, which are implemented through volunteer
development. The security risk is thought to be higher for FOSS projects that are
not particularly active.

200
Features of FOSS

9.4.5 FOSS Security Tools


This section introduces FOSS security tools as part of the subject of FOSS security.

FOSS Security Tools

GNU Privacy Guard (GPG)


PGP encryption tool from GNU

Many MUAs work with GPG

Snort, CodeSeeker
FOSS Intrusion Detection Systems (IDS)

OpenSSH
FOSS implementation of Secure Shell (SSH) protocol

Commonly used today in place of Telnet and remote


shell (rsh)

OpenSSL, GNU TLS


FOSS implementations of SSL (Secure Socket Layer)
protocol

Other tools: OpenVPN, Tripwire (system integrity


check tool), 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. 256
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

9.4.5.1 GNU Privacy Guard


GNU Privacy Guard (GPG) is a tool for PGP encryption of e--mail. Developed by
GNU, GPC is considered the standard tool for PGP encryption. Many MUAs have
been developed to work with GPG.

9.4.5.2 Snort, CodeSeeker


Snort and CodeSeeker are FOSS implementations of Intrusion Detection Systems
(IDS).

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.

9.4.5.4 OpenSSL, GNU TLS, Etc.


OpenSSL and GNU TLS are FOSS implementations of the SSL (Secure Socket
Layer) protocol used for secure communications. These technologies are frequently
incorporated into network software. Other major FOSS security tools include Open-
VPN for building virtual private networks (VPN) and Tripwire, a system integrity
checker.

201
Educational Benefits

9.5 Educational Benefits


This section examines the educational ben-
efits of FOSS. The ability to learn from the Educational Benefits
precedence of released source code is high-
Source code as an example

ly effective as an education tool. Well-- Learn from the precedence of released source code

Leading source code is equivalent to an excellent text

written source is the best textbook, while book

Using a debugger to verify that source code runs


sloppy source code sets a negative example Important issue is that the source code is really
runnable

for learning. In order to use a debugger to Low cost of development environments and

see how code works, it is critical to use resources


Low entry levels to start learning

source code that actually runs rather than Educational benefits of communities
We have much from communities

just sample code. With FOSS, it is possi- 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. 257
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ble to prepare a development environment


and obtain development resources at low
cost. This means that the barriers to beginning study are low. Information ex-
change through the FOSS community also provides practical benefits for education
that cannot be ignored.

9.5.1 Source Code as an Example


FOSS excels as a source of training material for IT engineers, by providing con-
crete examples for learning about software design techniques and working pro-
gramming technology. FOSS offers a way
to learn from actual examples rather than Source Code as an Example
just sample programs. Since FOSS pro-
Study concrete examples

vides actual running source code, it is pos- Software design methodologies

Programming techniques

sible to learn step--by--step how a program Actual programming samples

runs. This is accomplished by inserting de- Learn step-by-step how a program runs

Look up similar code

bug print routine or using a debugger. Source code as a textbook


Publications relating to FOSS such as Code Reading

Another major educational advantage of and Lions' Commentary on UNIX 6th Edition with
Source Code are published

FOSS is the ability to look up similar code.


The code can then be incorporated into 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. 258
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

your own code as long as it is permitted


under the licensing. Publications relating
to FOSS such as Code Reading and Lions’ Commentary on UNIX 6th Edition with
Source Code have long been published. These practical books are popular and
widely reprinted.

202
Features of FOSS

9.5.2 Using a Debugger to Verify how Source Code Runs


FOSS makes it possible to obtain, modify and check source code. It is impor-
tant to study source code that actually runs and to use a debugger that enables
you to see how a program runs. This ar-
rangement makes it possible to study prac- Using a Debugger to Verify that
Source Code Runs
tical techniques beyond theory. By study-
FOSS makes it possible to:

ing real code from actual programs, you Obtain source code

Modify source code

can learn about current technology trends Check source code

Source code that actually


and gain a broad understanding of soft- runs

ware design techniques beyond fundamen- Important to verify using


debugger

tal theory and technique. Verify operating logic

Learn through practical


experience

Enables study using real


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.

9.5.3 Low Cost of Development Environments and Resources


Proprietary software often involves tall barriers to participating in development,
primarily in terms of cost. These barriers include the need to purchase devel-
opment tools and receive fee--based train-
ing to learn about development technolo- Low Cost Development Environment
and Development Resources
gy. Although much of the information nec-
Proprietary software involves tall barriers to

essary for development is available online, participation


Purchase of development tools

essential information may need to be ob- Purchase of development information

Fee-based training

tained from vendors for a fee. Development resources comparatively lower


cost for FOSS

In comparison, resources for FOSS tend to Distributions include development tools

Information available online

be available at a comparatively low cost. Training largely fee-based

Risks for software technology acquisition under

Distributions come with development tools, FOSS


Time and effort

while information necessary for develop- Ability to control risks yourself is where FOSS excels in

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. 260
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ment is almost always available online. How-


ever, there is still a shortage of textbooks
and reference books for beginners, and training courses are largely fee--based.
FOSS offers lower financial risks for investment in software technology acquisition.
Beyond that, there are only minor risks associated with the amount of time invested
in training and the effort you invest. FOSS--based training makes it possible to
control these risks yourself, which is where FOSS excels compared with training
that uses existing proprietary software.

203
Educational Benefits

9.5.4 Educational Benefits of Communities


FOSS communities also offer educational
benefits, based on the approach that users Educational Benefits of Communities

can learn how to use software from the


Approach that users can learn how to use

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

for FOSS projects, which tend to be short Rules of communities


Give-and-take of information

information authorized by a developer com- Observe netiquette

Prevent flame wars from occurring

munity. Many FOSS communities normal- Development communities must also make an
effort to provide accessible information

ly conduct their virtual activities online. 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. 261
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

As part of FOSS communities, user com-


munities play a major role to facilitating
information exchange through mailing lists and message boards.
The rule of communication in FOSS communities is to exchange information on a
give--and--take principle. Observance of netiquette and respectful interaction are
also emphasized. In the faceless world of online communication, flaming can erupt
when participants fail to observe these rules of conduct. Flaming is undesirable and
has even caused some famous projects to split or stop completely.
Developer communities should also make an effort to provide ready access to rel-
evant information and user manuals. Projects with a good flow of feedback from
user communities as well as information from developer communities can expect to
achieve a positive cycle of growth. This leads to faster development and growth of
the user base and community.

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

Realizing sustainable software development


ware and scientific progress. The freedom Why FOSS enables us to realize sustainable software
development?

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

neering, and to producing better software. For the advancement of software


To produce better software 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. 262
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

9.6.1 Necessity of Sustainable Software Development


Sustainability of software development is desirable as long as there are users for
the software. This is due to the increasingly complex environment that surrounds
software today, which makes it difficult for
software to be flawless. Defects in soft- Necessity of Sustainable Software
Development
ware are continually discovered on a dai- Sustainable software development is necessary as long

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

OK to end development of tried-and-tested software*?

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

has had almost all of the defects worked Reasons

Changes in surrounding environment including OS, dependent

out of it. Although it might seem accept- libraries, etc.

Software must be adapted to support to these changes

able to suspend the development of tried-- FOSS capable of being adapted to diverse platforms

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. 263
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

and--tested software, this is frequently not


the case. Maintenance is often needed due
to the continually changing environment that surrounds software, both in terms of
operating systems and dependent libraries. Even tried--and--tested software must
be adapted to support these changes, as long as there are users that wish to use the
software in such environments.
Since FOSS enables modification and redistribution of source code, it can be easily
adapted to support diverse platforms. Consequently, FOSS simplifies the implemen-
tation of sustainable software development.

205
Sustainability

9.6.2 Realizing Sustainable Software Development


With proprietary software, there is a risk
of software development ending for what- Realizing Sustainable Software
Development
ever reason. For example, development
For proprietary software

projects are frequently suspended due to Risk of software development ending for some reason

poor sales. In extreme cases, development


of software may collapse due to the de-
veloper firm going out of business. When
this happens, the rights to the software are
sometimes transferred to another company
to carry on development, if the 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. 264
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

has some merit to keep the development


going.
In the case of FOSS, development is sustained even if the core development com-
pany pulls out of development or developers leave due to individual circumstances.
Development is carried on as long as there are users that wish to see it continue,
and other engineers to take over development. Under FOSS, all information includ-
ing necessary resources for development is published, which makes it possible to
implement sustainable software development.

9.6.3 Scientific Progress and Advancement of Software


There are fundamental similarities between the advancement of software and the
notion of scientific progress. These similarities are evident from the comparison be-
low. With FOSS, advancement of software
occurs when software grows or is expanded Scientific Progress and Advancement
of Software
under the following criteria:
Advancement of software and scientific progress
fundamentally similar

1. Implementation is shared and extended Compare the following points

Advancement of software (under FOSS)


through the release of source code. Implementation shared and extended through release
of source code

Source code must run properly. Avoid reinventing the

2. Source code must run properly. wheel

Scientific progress

3. Reinventing the wheel should be avoid- Knowledge shared and expanded through publication
of papers

Test theory through use of corroborative experiments

ed. Pointless to conduct the same research afterwards

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.

The notion of scientific progress shares the


following characteristics, which can be compared with the above points:
1. Knowledge is shared and expanded through publication of papers.
2. Theory must be correct and verifiable through corroborative experiments.
3. Pointless to conduct the same research afterwards.

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.

9.6.4 For the Advancement of Software


FOSS projects are supported by the notion of freedom. The freedom of Free Soft-
ware is prescribed by the Free Software Foundation in the four points shown below.
Copyleft is the abstract expression of the
four kinds of freedom, which GPL express- For the Advancement of Software

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

The freedom to redistribute copies so you can help your

any purpose. neighbor

The freedom to improve the program, and release your


improvements to the public, so that the whole community
benefits

·
Above four kinds of freedoms prescribed by FSF’s The Free

The freedom to study how the program Software Definition

Copyleft is abstract expression of four kinds of freedom

works, and adapt it to your needs. GPL expresses four kinds of freedom as concrete license

Leads to implementation of sustainable software


development

Should lead to advancement of software


· The freedom to redistribute copies so 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
266

you can help your neighbor.

· The freedom to improve the program, and release your improvements to the
public, so that the whole community benefits.

The sustainability of software development is maintained by guaranteeing the four


kinds of freedom. Sustainable software development in turn accelerates the advance-
ment of software. Without sustainable software development, software cannot be
advanced in an effective way.

207
Lack of Applications, Human Resources and Guarantees

10 Issues with FOSS


The previous chapter described the features of FOSS centering on its advantages.
This chapter examines the issues that surround FOSS today. The elements that are
lacking for FOSS deployment are explored,
describing the lack of applications, human (10) Issues with FOSS
resources and guarantees. Legal risks that
Lack of applications, human resources and

could have a major impact on FOSS de- guarantees


Factors lacking in order to utilize FOSS the most

ployment in business are examined. Al- effectively

Legal risks
so explored are the reasons for the slow Who secures legal risks in using FOSS?

spread of FOSS on desktops, which cur- FOSS deployment on desktops


Desktop use is backward in comparison with server use

rently lags in deployment. Diversity


What makes the issue of software complex?

The diversity of FOSS further complicates Standardization trends and localization

the issues that surround FOSS. The trend Standardization to eliminate diversities

Localization to use domestically in each nations


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. 267
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

toward standardization, internationalization


and localization is also examined in rela-
tion to the subject of diversity.

10.1 Lack of Applications, Human Resources and Guarantees


Since there are actually many FOSS projects being developed by a large developer
base, it is somewhat misleading to say that there is a lack of FOSS applications.
FOSS is frequently made available based
on the notion of users as developers. Con- Lack of Applications, Human
Resources and Guarantees
sequently, many FOSS applications may
Refinement of applications

seem incomplete from the perspective of Quality is vary widely between FOSS applications

Hope more contribution for further advancement to

users that are not involved in development. high-quality FOSS

Underdeveloped FOSS-related market and


Although some FOSS is highly refined, the support concerns
Underdeveloped in comparison to proprietary software

situation needs to improve. market

Bringing up support business is also future task

The relative immaturity of the FOSS mar- Shortage of human resources

ket and concerns about support are major Need to absolute increase of FOSS engineers

barriers to FOSS deployment in business. 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. 268
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

The FOSS market has begun to grow in the


last few years, but is still underdeveloped
compared with the proprietary software market. This is also true of the support
market for FOSS.
The shortage of human resources is a serious issue for FOSS. There is considerable
discussion today over the measures that need to be taken to foster the development

208
Issues with FOSS

of FOSS engineers. In order to energize the FOSS market, there needs to be an


increase in the absolute number of FOSS engineers that support the market.

10.1.1 Refinement of Applications


In the bazaar development model, develop-
ment does not occur under strict project Refinement of Applications
management, nor is there a guarantee of
Characteristics of bazaar development model

exhaustive testing. Consequently, the qual- Quality not always guaranteed

Separation of development versions and stable versions

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

Emacs, gcc, X Window System, apache, qmail, etc...

Latest applications may have many hidden issues

separate their releases into stable versions Refinement of desktop applications in particular

and development versions. This arrange- needs to improve


Demanding requirements of users (features and ease

ment balances the need for rapid software of operation)

Refinement of desktop applications directly linked to


assessment by users
development with the need to maintain qual- 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. 269
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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.

10.1.2 Underdeveloped FOSS--Related Market and Support Concerns


The FOSS--related market is still underdeveloped, while business deployment of
FOSS frequently is still at the stage of repeated trial--and--error. FOSS--related
training and support markets have grown
but are still largely inadequate. There is Underdeveloped FOSS-Related Market
and Support Concerns
still a shortage of FOSS--related books, with
Related markets still undeveloped

the Internet serving as the primary source Business deployment of FOSS often still at explorative
stage

for FOSS information. Training and support markets are small

Shortage of FOSS books

User concerns over FOSS support cannot Information frequently obtained online

User concerns about support


be erased under these circumstances. In Lack of heavy users nearby

Prefer to have person nearby to casually consult with when

the case of popular platforms, there is of- problems occur

Support business yet to take firm shape

ten a knowledgeable person nearby who No established support services

Concern over whether community can actually be relied


on
can be casually consulted with to resolve Some demand for comprehensive support from vendors
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. 270
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

problems. The limited spread of FOSS

209
Lack of Applications, Human Resources and Guarantees

means that there are few heavy users near-


by. Many users prefer to have a person nearby that they can casually consult with
when a problem occurs. These users are apprehensive about not having this option
with FOSS.
The next question is whether vendors are providing an adequate level of support.
Unfortunately, the FOSS support business has yet to take firm shape and there are
almost no established FOSS support services. Users also wonder whether they can
actually rely on the community to provide information. Since there is inadequate
support for FOSS, there is some demand for vendors to provide comprehensive
support services. Businesses that specialize in FOSS support have finally begun to
emerge in the last few years to address this need.

10.1.3 Shortage of Human Resources


FOSS suffers from a shortage in the absolute number of available FOSS engi-
neers. The shortage of GNU/Linux engineers is also frequently identified where soft-
ware development and system integration
takes place. However, since GNU/Linux is Shortage of Human Resources
a Unix clone, it is actually easy to retrain
Shortage in absolute number of FOSS engineers

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

High labor rates due to lack of supply

traditional base of Unix engineers in this Concern that situation will drive up overall costs

Need to secure support personnel

way. However, it is also said to be difficult Number of engineers steadily increasing

Numbers increasing starting from level below

to retrain young engineers that have been engineers

Government policies to develop advanced,

trained in Windows. hacker-level FOSS engineers


Public funds to support development of engineers

The increased demand for GNU/Linux en- Symposiums, seminars and “Codefests”

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. 271
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

gineers today also creates concerns that


the cost of labor will be driven up by the
lack of human resources and available engineers. Some persons in charge of IT at
user companies worry that the lack of FOSS engineers will drive up overall costs.
However, there has been sufficient discussion over the need for human resources de-
velopment, so the number of FOSS engineers is expected to increase in the future.
This development should drive down the cost of labor to appropriate levels.
The same situation is also occurring among support personnel. The number of en-
gineers is steadily increasing starting from the level below engineers. Consequently,
the shortage of support personnel is expected to be resolved at an early stage. Gov-
ernment strategies are also needed to address the development of advanced, hacker--
level FOSS engineers. There are several effective strategies to support human re-
sources development such as publicly funded support initiatives and sponsorship of
symposiums and seminars. Other effective strategies include sponsorship of “Code-
fests” and other events for improving technical skills.

210
Issues with FOSS

10.2 Legal Risks


FOSS deployment in business requires an adequate review of the legal risks and
litigation that could result from using FOSS. The relationship of FOSS versus
copyright and patents is particularly sub-
tle, with software patent compliance con- Legal Risks
sidered an area of weakness for FOSS. Since
Relationship of FOSS vs copyright and patents

FOSS development is implemented through Also weak points of FOSS

Possibilities to bear risks of intellectual property rights

the participation of numerous volunteer de- infringement

SCO controversy
velopers, it also carries a risk of copyright SCO sent a challenge to FOSS communities in 2003

and patent infringement. In recent years, Responsibility of warranty


Who has responsibility for defects in FOSS?

the series of lawsuits initiated by the SCO License violations


GPL violations occur every day in the world?
Group have had the greatest impact in terms
of FOSS--related litigation. 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. 272
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

There is no clear answer regarding the ques-


tion of who is responsible for the warranty
of FOSS products or for defects in FOSS programs. FOSS licenses that are designed
to guarantee the freedom of FOSS carry the risk of license violations, whether occur-
ring intentionally or out of carelessness. GPL violations in particular have occurred
in various parts of the world. License violations are sometimes discovered and re-
ported in the media.

10.2.1 Relationship of FOSS versus Copyright and Patents


Under the bazaar--style development of FOSS, many developers participate in devel-
opment. This arrangement carries a risk of containing code that infringes on copy-
right or patents, whether it is slipped in
intentionally or through carelessness. This Relationship of FOSS versus Copyright
and Patents
type of copyright infringement can also ex- Many developers participate in FOSS style

pose users to litigation and is therefore con- development


Risk of containing code that infringes on copyright or

sidered the biggest legal risk associated with patents; code can slip in intentionally or through
carelessness

Infringement on patent license


using FOSS. Normal business response

Cross-licensing

The handling of patent licenses illustrates Financial resolution (payment of patent royalties)

Both difficult to execute with FOSS

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

tain technology is thought to interfere with Example of guard mechanisms

MPLClause to the effect that any withstanding patents


applying to source code must be expressly declared by

a patent, cross--licensing is typically used the contributor


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. 273
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

in business. Under this arrangement, part-


ners mutually grant their patent rights to
each other. It is also common to seek a financial resolution through payment of
patent royalties. However, both cross--licensing and payment of patent royalties are
difficult to execute with FOSS. If there is infringement on a patent license, in the

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.

10.2.2 SCO Controversy


In May 2003, US--based firm The SCO Group, Inc. issued a warning to GNU/Linux
users to the effect that GNU/Linux had misappropriated Unix code. The compa-
ny claimed that the misappropriated code
infringed on intellectual property held by SCO Controversy
SCO. The series of controversies began in
US-based firm SCO Group issues warning against

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

SCO sues IBM for damages, claiming that IBM

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

SCO controversy barely receives attention today in

SCO further claims that the misappropri- 2005


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. 274
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ated code relating to NUMA, JFS and SMP


code is included in the Linux kernel from
Version 2.4 and later. The claim includes the assertion that the misappropriated
code is the property of SCO, which had purchased the Unix operating system from
Novell. As of 2005, details regarding the exact portions of code alleged to have been
misappropriated have yet to be disclosed. The details of documents showing that
SCO purchased the rights to Unix from Novell are also still undisclosed.
The SCO controversy has generated a very cool response from the surrounding
community. In a survey of more than 400 developers conducted in February 2004 by
the Evans Data Group, 73% indicated that SCO’s claims had no merit. The SCO
controversy barely receives any attention today in 2005.

212
Issues with FOSS

10.2.3 Responsibility of Warranty


The responsibility of warranty is generally assigned to the provider of a product.
The warranty covers a fixed period of time from manufacturing, guaranteeing that
the provider will repair any problem due
to a fault with manufacturing. The re- Responsibility of Warranty
sponsibility of warranty is perceived as one Is no one responsible for FOSS?

of the risks of FOSS, revolving around the Fundamentally provided “as is” and with “no warranty”

Proprietary software: Warranty conditions and exemptions

question of who has this responsibility and Does not mean that users can rest easy

Japanese Consumer Contract Act

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

Some experts consider exclusion of any warranty

ware is provided “as is” and comes with unenforceable under Japanese law

Situation can also be viewed as business opportunity

“no warranty.” Consequently, there is no Support business

Provide insurance and warranties, legal risk management,

party to hold accountable when some kind etc.

Open Source Risk Management (US firm)


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. 275
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

of problem arises. Proprietary software us-


es an End User License Agreement (EU-
LA) that typically contains clauses that prescribe certain warranty conditions and
exemptions. However, the complexity of software makes it difficult to guarantee that
a program is completely free of defects. Consequently, there is reason to conclude
that the conditions in an EULA place users at a disadvantage.
End users in Japan are protected under the Consumer Contract Act. Section 5,
Article 8 of the Act specifies that “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 contract for value, when it involves a latent defect in the material
subject. Some experts therefore believe that the “as is” and “no warranty” condi-
tions of FOSS licenses, which exclude any warranty whatsoever, are unenforceable
under Japanese law. If this is true, the responsibility of warranty for FOSS partly
lies with the FOSS distributor or system integrator. However, without any con-
crete legal precedence to date, the theoretical assignment of responsibility for FOSS
remains unclear.
The situation can also be viewed as providing an opportunity to conduct business
by providing certain services involving support, insurance and warranties. Another
possibility is to provide services for managing risks associated with FOSS. A number
of support businesses have already been started in Japan that provide comprehen-
sive support for several FOSS projects. In the United States, Open Source Risk
Management, Inc. has emerged to provide risk management services for FOSS.

213
Legal Risks

10.2.4 License Violations


FOSS relies only on licensing to provide consent for the use of software. This ar-
rangement hinders on the good will of others to abide by licenses. License violations
can sometimes occur out of these circum-
stances. License Violations

Incidents involving license violations


Printer driver

Binaries distributed free of charge contained FOSS code, but


software was not released as FOSS

Manufacturer issued apology on Web site and issued


replacement software with revised license

DivX Converter contained misappropriated XviD code


(FOSS)

PornView incident, in which original copyright notices from


GImageView were stripped

FSF responds to GPL violations


FSF manages copyrights for Free Software

By transferring copyright to FSF, legal authority and


responsibility is centrally managed by FSF

By transferring copyright, FSF has authority to take action


against violations
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. 276
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

10.2.4.1 Examples of License Violations


In the first example, a certain Japanese printer manufacturer was accused of license
violation for its GNU/Linux printer driver software. The binaries for the software
were distributed free of charge but not released as FOSS. However, analysis revealed
that the binaries contained FOSS code originally released under GPL, even though
the printer driver software had not been released as GPL. When informed by the
community of the problem, the manufacturer immediately issued an apology on its
Web site and pulled the software. The software was then re--released under a revised
license. The company’s response is said to have elevated its reputation in the eyes
of the FOSS community.
The next two examples describe license violations that were handled poorly. The
first example involves DivX Converter, a video format converter sold as proprietary
software. The software was found to contain misappropriated code from software
released as GPL. The company that sells DivX Converter responded to this criticism
by releasing the source code for the software. However, the company failed to
take adequate precautions when releasing the code, which led to problems later on.
License violations have also occurred with other DivX software, such as REALmagic
MPEG--4 software, which was found to contain XviD code.
A worse example of license violation occurred with PornView image viewer soft-
ware, which was released in October 2002. PornView was a modified version of
GImageView, which had been released under GPL. Despite using most of the code
from GImageView, the original copyright notices from the original application were
found to have been stripped from PornView. The issue was eventually resolved by
adding the copyright notices to the PornView software.

214
Issues with FOSS

10.2.4.2 Measures for Preventing License Violations


The Free Software Foundation has a basic structure in place to respond to GPL
violations. FSF recommends that authors of Free Software transfer their copyright
to FSF, placing it under the organization’s control. By transferring the copyright
to FSF, the organization gains the right to take action against GPL violations.
Under this arrangement, FSF can take direct action against copyright infringement
involving GPL violations relating to Free Software.

10.3 FOSS Deployment on Desktops


FOSS platforms initially spread on servers, but FOSS has been slow to spread on
desktops. Promotion of desktop deployment is an urgent issue for FOSS. This section
begins by examining current market trends
for FOSS desktop deployment. The phases FOSS Deployment on
Desktops
involved in the spread of FOSS to desktops
Trends in FOSS desktop market

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?

Examples of issues with Japanese language


language environments. environments
Font inadequacies and confusion over Japanese
character encoding prevent from spreading FOSS
desktops in Japan

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.

10.3.1 Trends in FOSS Desktop Market


In Japan, 2004 is viewed as “year one” for the spread of FOSS desktops. It was
during 2004 that FOSS desktops finally began to draw interest in the wake of FOSS
deployment for servers, backbone systems
and embedded applications. Trends in FOSS Desktop
Market
In January 2004, OSDL launched the Desk-
Was 2004 “year one” for spread of FOSS

top Linux Working Group. Several tri- desktops in Japan?


FOSS desktops begin drawing interest in wake of FOSS

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)

Desktop Linux Working Group

Several trials for FOSS desktops conducted


In Japan, the National Institute of Ad- AIST’s FOSS desktop strategy

FOSS trials for schools (IPA and CEC)

vanced Industrial Science and Technolo- Desktop GNU/Linux distributions

gy (AIST) conducted studies for a FOSS Java Desktop System

Turbolinux 10 Desktop

desktop strategy. Meanwhile, IPA and the Novell Ximian Desktop 2 (SUSE 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. 278
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Center for Educational Computing (CEC)

215
FOSS Deployment on Desktops

implemented demonstration trials for FOSS


deployment in schools during 2004.
Several desktop GNU/Linux distributions were released in 2004, which helped to
spark the FOSS desktop market. These releases included Java Desktop System,
Turbolinux 10 Desktop and Novell Ximian Desktop 2 (SUSE Linux).

10.3.2 Phases for Spread of FOSS Desktop Deployment


The spread of FOSS desktops is expected to occur in the phases described below.

Phases for Spread of FOSS Desktop


Deployment

IT engineers, high-end users

Routine task workers


Call centers

Counter tasks

Other routine work, etc.

Management, sales, general office workers, etc.


Issues

Improve interoperability of various electronic data


(eliminate diversity)

Eliminate diversity in how applications are operated

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.

10.3.2.1 IT Engineers, High--End Users


Early adopters of FOSS desktops are IT engineers and high--end users who are versed
in software technology. These users posses the skills to work around problems that
might exist in FOSS desktops, or have the ability to research a solution if they do
not possess these skills. Users in this category can gain the advantages of FOSS at
an early stage.

10.3.2.2 Routine Task Workers


In the next phase, FOSS desktop deployment is expected to progress in occupations
that involve routine tasks. These applications include call centers and situations that
involve counter and other routine work. The diversity of FOSS, which is an issue
elsewhere, is not a concern for FOSS use by routine task workers. These applications
are expected to capitalize on the advantages of FOSS, since FOSS desktops can be
tuned for better task efficiency in routine work.

216
Issues with FOSS

10.3.2.3 Management, Sales, General Office Workers, Etc.


FOSS desktop deployment is expected to spread to general office applications only
after widespread recognition is gained for FOSS desktops. Numerous issues still
need to be resolved for FOSS desktops to be deployed in these occupations. These
issues include the need to eliminate diversity by improving the interoperability of
various electronic data. Standardization of how applications are operated is also
needed.

10.3.3 Barriers to Spread of FOSS Desktops


This section examines issues relating to the spread of FOSS deployment on desk-
tops. Firstly, an expanded environment for FOSS office suites is needed for FOSS
desktops to be deployed as common of-
fice machines. FOSS applications such as Barriers to Spread of FOSS Desktops

OpenOffice.org are more refined than be-


Issues for spread of FOSS desktops

fore, and their quality is by no means in- Expanded environment for FOSS office suites

Actual applications need to be more refined

ferior to existing proprietary office suites. Templates, clip art libraries, etc.

Refinement of user interfaces

One problem with FOSS office suites is Migrate systems to Web applications

Deep-rooted barriers to spread of FOSS desktops


that they do not offer full data compat- in Japan
Inadequate Japanese language environment

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.

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. 280
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Since desktop applications are operated di-


rectly by users, they must provide a refined
user interface. With the exception of some existing GUIs, there needs to be some
kind of breakthrough in user interfaces for FOSS desktops to spread. For larger
organizations, the key to FOSS desktop deployment lies with overall systems mi-
gration to Web applications including migration of back--end systems. Otherwise,
there is a need to prepare compatible FOSS clients for client--server systems that
demand specific client software.
FOSS desktop deployment should accelerate once these issues are addressed. How-
ever, there are deeper--rooted barriers to FOSS desktop deployment in Japan. These
barriers relate to inadequacies in the Japanese language environment for FOSS desk-
tops. Demanding requirements for document style and customary ruled lines also
hinder FOSS desktop deployment in Japan. Many FOSS desktop applications al-
so have problems related to Japanese language support, such as application hang--
ups from kana--kanji conversion. Technical issues that surround the handling of
Japanese by FOSS desktop applications need to be resolved at an early stage.

217
FOSS Deployment on Desktops

10.3.4 Examples of Issues with Japanese Language Environments


This section explores issues with fonts and
character encoding that arise when deploy- Examples of Issues with Japanese
Language Environments
ing FOSS desktops in Japanese environ-
Font inadequacies

ments. These problems are barriers to the Controversy over copyright infringement by free fonts
(2003)

spread of FOSS desktops in Japan. No free fonts of adequate quality

High cost of developing Japanese fonts

Due to large number of characters

Too many character encodings


For historical reasons

JIS (ISO2022-JP)

Shift JIS

EUC-JP (Extended Unix Code)

Unicode

Other Asian nations also face same problem

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.

10.3.4.1 Font Inadequacies


In the Europe and US, a number of font sets have been released that can be freely
used. These fonts are also frequently included in FOSS distributions. The situation
is different in Japan, where there are very few free and redistributable font sets.
Japanese font sets are expensive to develop due to the large number of characters
they contain. There are almost no free fonts of adequate quality due to the labor
involved in creating fonts.
A controversy emerged in 2003 when some free fonts that are relatively common
to FOSS platforms were found to infringe on the copyright of commercial fonts.
This led to proposals for replacement fonts and development of another font sets.
However, a fundamental resolution to the issue has yet to emerge.

10.3.4.2 Confusion over Character Encoding


For historical reasons, four systems of character encoding are used today in Japan.
The four standards are JIS (ISO--2022--JP), Shift--JIS, EUC--JP (Extended Unix
Code) and Unicode. With the trend toward internationalization and multilingual-
ization of software, the shift to Unicode is starting to gain momentum. However,
the need to use existing data assets means that the problem of multiple character
encodings will not be resolved any time soon. Issues with fonts and character en-
coding are also a problem in other Asian nations. These issues are not unique to
Japan.

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

and cons of diversity as it relates to the What is diversity?

spread of FOSS. Diversity of data


Issues on data format handled by applications

Diversity of platforms
Issues on environments where applications work

Diversity of user interfaces


Issues on differences between operationality of
applications

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.

10.4.1 Driving Factors behind Diversity


Firstly, it is necessary to understand the meaning of diversity. Diversity is not ex-
clusive to FOSS. Systems that typically combine many pieces of software offer a
high degree of freedom to combine compo-
nents. This freedom results in an explosion Driving Factors behind Diversity

of possible combinations, which becomes a


What is diversity?

major issue in considering the outside in- Freedom to combine


components leads to explosion

terface. Coordinating the differences that in number of combinations

Diversity reflects a high degree


of freedom, resulting in a trade-
arise from diversity becomes a problem for off relationship with integrated
feel

external data exchange and implementa- Also happens in proprietary


environments

tion on platforms. It also becomes an issue PC-compatible machines

Diversity of devices

when considering the operation of users. Addressed by device


manufacturers

The issue of diversity reflects a high de- Difficult for minority makers

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. 283
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

gree of freedom, with the degree of diver-


sity proportional to the degree of freedom.
Consequently, there is a trade--off relationship between freedom and an integrated
feel. Since FOSS enables configurations to be changed at the source code level, the
degree of freedom is quite high. The strong diversity of FOSS means that problems
are more likely to arise.
Diversity is not exclusive to FOSS and also occurs in proprietary environments. A
good example is the diversity of devices that results in device driver issues. These
issues occur on proprietary operating systems that run on PC--compatible machines

219
Diversity

10.4.2 Diversity of Data


The issue of data diversity arises when there
is external exchange of electronic documents. Diversity of Data
Data is saved today in formats that are Problems arise during external exchange of

specific to each application, such as .doc, electronic documents


Data formats specific to applications

.xls or .ppt formats. In addition to pre- ex. *.doc, *.xls, *.ppt,...

Need to exchange actual content, not format


scribing diverse formats for each applica- Content in written documents

Written sentences, style, etc.

tion, diversity in data formats forces to Content in spreadsheets, presentations

Values, graphs, diagrams, fonts, etc.

lock in users to applications. Data dependent on individual application

Data exchange is performed for the pur- Different data formats within one category of
applications

Ex. Word processors

pose of exchanging the actual contents of MS-Word, OpenOffice.org Writer, KOffice, AbiWord, etc...

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. 284
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

data, as opposed to the data format. In


a document, data content refers to written
sentences or additional information about sentence style. Spreadsheet data refers to
table values and graphs. Presentation data refers to diagrams or text written into
presentation slides, or fonts used to portray text.
The underlying cause of data diversity is the dependency that exists between da-
ta and individual applications. The problem is that one category of applications
can use completely different formats. In the case of word processors, MS Word,
OpenOffice.org Writer, KOffice and AbiWord all use different data formats.
Standardization of data is being studied as a way to eliminate diversity of data.
This subject is explored later in this document.

10.4.3 Diversity of Platforms


The section examines the reasons for diversity of platforms or operating environ-
ments. The issue of platform diversity is due to excessive freedom in configuring
FOSS platforms, which involves the follow-
ing range of variables: Diversity of Platforms

· Kernel parameters, kernel modules Excessive freedom in configuring FOSS platforms


Range of variables

Kernel parameters, kernel modules

Libraries, tools

· Libraries, tools Other software to which applications are dependent on

Reasons for platform diversity (diversity of


operating environments)
Differences between distributions

· Software to which applications are de- Red Hat, SUSE, Debian, Knoppix, etc...

Differences in versions

pendent on Individual applications continually evolve on their own

Same issues also effect proprietary operating


systems

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

ing a FOSS platform leads to diversity on


Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

a massive scale, to such a degree that it


becomes less convenient to implement software. There are two major elements in

220
Issues with FOSS

platform diversity, centering on differences between distributions and differences in


application versions.
Except for projects like Linux From Scratch (LFS), in which the operating environ-
ment is customized from the ground up, the operating environment for programs
can be thought of in terms of leading distributions. Red Hat, SUSE, Debian and
Knoppix are examples of leading distributions. However, standards such as Linux
Standard Base (LSB) are desirable from the standpoint of needing to prepare a
testing environment.
Individual software continually evolves on its own, so that it is also necessary to
consider diversity over time. Operating environment and platform diversity is also
an issue with proprietary operating systems. For instance, applying a certain patch
such as a service pack can cause software to run in an unexpected way. Sometimes
software may work on certain OS editions but may not be supported on other
editions. These issues are frequently found on proprietary operating systems.

10.4.4 Diversity of User Interfaces


The operating feel of desktop applications directly influences their assessment by
users, as mentioned elsewhere in this document. Diversity of operation is a major
factor in breeding mistrust among users.
Users tend to favor a familiar interface and Diversity of User Interfaces
operating characteristics. Users are both- Diversity of operation directly breeds mistrust of users

ered by even the slightest change in oper- Particularly true for desktop deployment

Familiar user interface and operating characteristics


ating feel, even if the essential features are Essential features might be same but other differences exist

Different icons

the same. These differences can involve Different menu placement or menu titles

Different keyboard shortcuts

changes in icons, menu placement or menu Different error messages

etc...

titles, as well as differences in keyboard Users are conservative


Relearning new way of operation considered a waste of
shortcuts or error messages. Many users previous time and effort

After going to all that trouble to learn how to operate an

are conservative and consider it a waste of application


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. 286
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

time and effort to relearn how to operate


an application. There is also a certain de-
gree of emotional backlash from users. This comes from having invested the effort
into learning how to operate an existing application, only to have to relearn it with
a new application.

221
Standardization Trends and Localization

10.5 Standardization Trends and Localization


This section explores the subject of standardization as a way to address the issue
of ever--increasing diversity. Also examined are topics relating to international-
ization and localization, which need to be
understood in relation to the subject of in- Standardization Trends and
Localization
ternational standards.
Standardization of GNU/Linux

Standardization of GNU/Linux is present- The road to ISO standard

ly heading toward ISO standardization. Pro- Standardization of documents


Trial to make electronic document interchange smooth

posals for document standardization are i18n, m17n, l10n


Difference among internationalization, multi-

also being considered in an effort to con- lingualization and localization

Examples of internationalized applications


trol the diversity of data and facilitate the
exchange of electronic documents. The dif-
ferences between internationalization (i18n), 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. 287
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

multilingualization (m17n) and localization


(l10n) are examined in order to understand
the current situation for internationalized applications.

10.5.1 Standardization of GNU/Linux


The section on diversity of platforms touched on the subject of how minor variations
in the configuration of platforms make it less convenient to implement software. Dis-
cussions that led to the UnitedLinux con-
sortium arose from the notion of absorb- Standardization of GNU/Linux
ing the minor variations found in various
Seek to absorb platform variations

GNU/Linux platforms. UnitedLinux consortium’s trial

FSG (Free Standards Group)

There is also discussion today about in- Non-profit organization dedicated to FOSS-related
standardization

cluding GNU/Linux in ISO standards. The Develops standards

Develops compliance testing tools and tests software for


compliance

non--profit Free Standards Group (FSG) Linux Standard Base (LSB) Project

Dedicated to application compatibility between

is dedicated to FOSS--related standardiza- authorized distributions

Other related standards

tion. FSG is involved in various activities Portable Operating System Interface for Unix (POSIX)

Single Unix Specification (SUS) Version 2

such as the development of standards and Filesystem Hierarchy Standard (FHS)


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. 288
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

tools for testing compliance, and conducts


testing for standards compliance. The Lin-
ux Standard Base (LSB) project established by FSG is intended as a model for
GNU/Linux standardization. FSG is also working to ensure application compati-
bility between LSB--compliant distributions.
Other standards related to GNU/Linux standardization include POSIX, SUS and
FHS. The Portable Operating System Interface for Unix (POSIX) standard provides
a set of standard APIs for implementing applications. Single Unix Specification

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.

10.5.2 Standardization of Documents


Standardization of document formats for electronic data is being studied as a way
to address the diversity of data. This work is being done by the standardiza-
tion committee of the Organization for the
Advancement of Structured Information Stan- Standardization of Documents
dards (OASIS). The OASIS committee is
OASIS (Organization for the Advancement of

focusing on OpenDocument as a standard Structured Information Standards)


Study by standardization committee

format. OpenDocument is an XML--based OpenDocument

Based on XML

open standards specification that has no Open standards specification

No platform dependency

dependency on platforms or applications. No application dependency

Candidate for EU’s public document format

Used in OpenOffice.org 2.0 and KOffice 1.4

The neutrality of the OpenDocument stan- Distinct from XML-based document format

dard has also made it a candidate to serve proposed by Microsoft

as the standard public document format 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. 289
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

for the European Union. Among FOSS,


OpenDocument has been adopted as a doc-
ument data format for OpenOffice.org 2.0 and KOffice 1.4. Ideally, it should be pos-
sible to share data between OpenOffice.org and KOffice under the OpenDocument
standard.
One of the features of OpenDocument is that it uses XML--based data. However,
OpenDocument is distinct from the XML--based document format being proposed
by Microsoft for its next--generation Office suite.

223
Standardization Trends and Localization

10.5.3 I18n, M17n and L10n


These abbreviations stand for internationalization (i18n), multilingualization (m17n)
and localization (l10n). Each abbreviation takes the first and last letter from each
word and the number of letters omitted.
“I18n” takes the first letter “i” and last I18n, M17n and L10n
letter “n” from internationalization, omit-
“I18n” takes first letter “i” and last letter “n,”

ting 18 letters. omitting 18 letters

i18n (Internationalization)
Provision of framework that simplifies implementation
of m17n and l10n in applications

Preparation of fonts, input method, basic libraries, etc.

Gettext and message catalogs

m17n (multilingualization)
Modification to support multilingual handling

Not just characters and words, but also line breaks,


dates, currency units, etc.

Concurrent handling of multiple languages separates


m17n from l10n

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.

10.5.3.1 Internationalization (I18n)


Internationalization refers to the preparation of a framework that simplifies the
implementation of multilingualization or localization. Specifically, it refers to the
preparation of fonts and the provision of an input method for entering characters
from other languages. It can also refer to the provision of basic libraries and tools
for the same purpose.
The main programming framework for FOSS internationalization is gettext. The
gettext framework is used to prepare error messages and GUI labels for each lan-
guage. These elements are dynamically inserted and displayed by referring to the
locale value during execution. In the context of the gettext framework, the set of
messages prepared for each language is called a message catalog.

10.5.3.2 Multilingualization (M17n)


Multilingualization refers to the provision of support for multilingual handling in
an application. In addition to enabling display and I/O of characters and words,
multilingual handling typically refers to the implementation of line breaks according
to the grammar rules of each language. Other multilingual features include flexible
transcription of dates and currency units.
The ability to concurrently handle multiple languages is a critical aspect of multi-
lingualization. Without concurrent handling of multiple languages, the term local-
ization should be used.

224
Issues with FOSS

10.5.3.3 Localization (L10n)


Localization or native language support refers to modification of an application
originally implemented in another language (usually English). These modifications
enable the display of regional languages and appropriate handling of text data ex-
pressed in the regional language. Localization is the most ad hoc method of language
support but provides an extremely effective way to increase the number of local users
in each country. Consequently, localization tended to be widely deployed as an initial
strategy to promote the spread of FOSS.

10.5.4 Examples of Internationalized Applications


The last section examines two topics related to internationalized applications.

Examples of Internationalized
Applications

Necessity of internationalized
applications
Owner’s manuals

Translation

Need to display and edit at least


two languages

Handling of characters
Unicode

Issues with support for existing


character encodings

Number of Unicode-compatible
applications is increasing

Implementation still incomplete

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.

10.5.4.1 Are Internationalized Applications Necessary?


This section examines the fundamental need for internationalized or multilingualized
applications. The owner’s manual that comes with an electrical product is an exam-
ple of internationalized information in everyday offline media. The manual for an
export product intended for global use typically features several languages written
side--by--side. Word processing and editor software used to create these documents
must be multilingualized.
Translation--related software must also be multilingualized. The task of translating
between two languages, both of which is not English, requires the ability to display
and edit at least two non--English languages.

225
Standardization Trends and Localization

10.5.4.2 Handling of Multilingual Character Display


In order to implement an internationalized application, it is necessary to prepare a
framework for handling the display of multilingual characters. The Unicode encoding
system was proposed as a solution for multilingual character display. Unfortunate-
ly, there are some issues with Unicode today. These issues include compatibility
problems with existing character encodings and inadequate handling of relatively
common symbols. Both issues need to be improved.
Despite its many problems, application support for Unicode is gradually but steadily
increasing as part of the trend toward internationalization. Although many appli-
cations are incomplete in their implementation of Unicode, internationalized appli-
cations are expected to grow as a field.

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

development. The developers then release tool for themselves

Plenty of tools for


Analyzer, profiler

Source code

these tools as FOSS. Since distributed de- distributed development

Based on FOSS
management

Maintaining
development via the

velopment over the Internet is the prima- Internet

GUI-based tools are


compatibility

Localization

Documentation
ry means of FOSS development, develop- increasing, in addition to
conventional CUI-based IDE based on GUI
tools Bug tracking tools

ment tools for this purpose are particularly


extensive. Previously, almost all develop- 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. 292
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ment tools were CUI--based, but the num-


ber of GUI tools has recently increased as
the developer base has grown. This chapter examines basic development tools, fo-
cusing on program development using compiled languages.

11.1 Program Builds


In order to execute a program, it is necessary to create an executable program
from source code. This procedure is called the build process. The build process
for a typical program is described in this
section. Compiler
First, the source code is compiled using a
Process of building software

compiler, which converts the source code Compile

Source code -> object code

into an object code written in machine lan- Link

Set of object code -> executable code

guage. Next, the object code is linked to File describing the process of building software

Makefile

libraries using a linker, in order to create gcc, make, ld


De fact standard tools for FOSS development

an executable program. In FOSS develop-


ment, gcc is frequently used as the com-
piler and ld as the linker. 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. 293
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

The complexity of the build process in-


creases as the software being developed grows
in scale. The FOSS utility make is used to automate the sequence of processes in-
volved in a build. Developers use a makefile to describe the build process. The make
utility automatically reads the makefile during builds. This chapter examines the
gcc, ld, and make tools used for builds.

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

C++ compiler g++

C language. The features were later ex- Fortran compiler g77

Java compiler gcj

tended to include other compilers and li- Features

braries, adding support for additional lan- Widely used for commercial and non-commercial
operating systems

Can also be used as cross-compiler

guages beyond C. GCC now includes the C 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. 294
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

compiler gcc, the C++ compiler g++, the


Fortran compiler g77, the Java compiler
gcj and compilers for Objective--C and Ada. The name GNU Compiler Collection
is more appropriate due to the support for diverse languages.
GCC is used as the default compiler for many commercial and non--commercial
operating systems, in addition to FOSS operating systems such as GNU/Linux,
FreeBSD, and NetBSD. GCC can also be used as a cross--compiler and is frequently
used for embedded software development.

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

mizing the tasks required to update builds. and processing method


CFLAGS = -g -O2 -Wall $(DEBUG)
CPPFLAGS = -I.
.SUFFIXES:
Rules (compile, link, .SUFFIXES: .o .c .cc .f .p

This feature is accomplished by compar- installation, etc.) are


described in makefile
all: $(PACKAGE)
$(PACKAGE): $(OBJS)
$(LD) $(LDFLAGS) $(OBJS) -o $@ $(LDLIBS)

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:

dated and selectively building only those Looks up time of last


update and only clean:
$(PC) $(PFLAGS) $(CPPFLAGS) -c $< -o $@

$(RM) $(PACKAGE) $(OBJS)


executes minimum build $(RM) core gmon.out *~ #*#

portions of the project that were updated needed


An Introduction to Free/Open-Source Software
Makefile example
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 295
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

since the last build.


As software grows in scale, the process of
creating rules to support different platforms becomes more laborious. Autotools can
provide a certain degree of automation for generating rules.

228
Development Tools

11.2 The GNU Linker Ld


A linker is invoked at the end of the build
process to generate an executable file. The The GNU Linker Ld
GNU linker ld is used in FOSS develop-
Invoked at end of build process

ment. Linking involves the following pro- Link multiple object files and library or archive files

Relocate data

cedures: Tie up symbol references # ld -o a.out /usr/lib/crt1.o \


/usr/lib/crti.o hello.o -lc
Static linking
Combines all object files and libraries from build into one

1. Link multiple object files and library or program

Runs as standalone file but produces large file size

archive files. Dynamic linking


Only designates name of libraries

Dynamically links to libraries during execution

2. Relocate the data. Small file size

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.

3. Tie up the symbol references.

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

· Does the program logic run properly? Basically check for:

Are values for variables as expected?

Is conditional branch correct?

Possible to insert code to output values at various


These items can be checked by inserting points, but labor-intensive

Use of debugging tools

code at various points of the program to Debugging tools

output the values for variables. This pro- Debuggers, profilers, tracers, etc.

cess is labor--intensive, so debugging tools


are usually used. Various types of debug- 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
297

ging tools are used including debugger, pro-


files and tracers. Debugger are used to isolate the location of a bug, while profilers

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

common debugger, such as the ability to Debugger)


CUI debugger

set a breakpoint or perform step--by--step Features: Set


breakpoints, step-by-

execution. In order to stop execution at a step execution, etc.

DDD (GNU Data

specified line of source code, a breakpoint Display Debugger)


GUI front-end for GDB

is set. The programmer then displays and and other CUI


debuggers

verifies the value of the variables. Step--


by--step execution is used to execute source 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. 298
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

code one line at a time. Debugging with


a debugger is conducted by checking the
value of each variable while the program is temporarily stopped. This enables you
to determine if the program logic is correct.
GDB is a CUI--based program. FOSS GUI front--ends are also available such as
GNU DDD, which stands for GNU Data Display Debugger. GNU DDD can also be
used as a front--end for CUI debugger other than GDB. The slide shows a screen--
shot of GNU DDD.

11.3.3 Debugging Example


This section describes how FOSS debugging is conducted using the example of a
defect in gscanbus. gscanbus is a FOSS tool for capturing and displaying data
from a connected IEEE 1394 device.
Debugging Case Study (Part 1)

gscanbus
Tool for acquiring and
displaying data from
connected IEEE 1394
device

Problem (bug?)
Camera icon displayed
as question mark

Camera works
properly

Device type not


recognized

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

11.3.3.1 Identify the Problem


The first step is to examine the details of the suspected bug. In this example, a
connected IEEE 1394 camera works properly, but the device shows up as a question
mark instead of a camera icon. You can assume that the problem is due to an
inability to identify the device type.

11.3.3.2 Carefully Examine the Problem Area


Next, trace the source code to determine where the bug is hiding. Examination
of the file names contained in the gscanbus package reveals icon.h and icon.c
files. You can guess that these files contain
source code related to icon display. Debugging Example (Part 2)
Looking at the contents of the icon.h file
Dig through the source code

reveals that initIcons() and chooseIcon() File names

Icon.h and icon.c files are suspect

are functions called from outside. Based icon.h

InitIcons() and chooseIcon() functions called from

on its name, you can presume that choo- outside

ChooseIcon() is suspect; chooseIcon() function is for


initialization

seIcon() is related to the problem. initI- ChooseIcon() in icon.c file

Icon appears to be switched by rom_info>node_type

cons() is presumed to be a function for void chooseIcon(Rom_info *rom_info, GdkBitmap **xpm_node,


GdkBitmap **xpm_node_mask, char **label) {
switch(rom_info->node_type) {
case NODE_TYPE_CONF_CAM:
icon initialization. case NODE_TYPE_AVC:
*xpm_node = xpm_dvcr;
*xpm_node_mask = xpm_dvcr_mask;
*label = "AV/C Device";

By examining chooseIcon(0) from the icon.c An Introduction to Free/Open-Source Software


break;
case NODE_TYPE_SBP2:
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 300
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

files, it is possible to determine that the


icon used depends on rom_info->node_type.

11.3.3.3 Fix the Problem Area


Now that you have determined that there is a bug in the portion of code related to
rom_info->node_type, you can begin the debugging process. The gscanbus pack-
age contains rom_info.h and rom_info.c
files, whose names indicate that they con- Debugging Example (Part 3)
tain code related to rom_info. Using the
Debugging process

grep command, you can search the loca- Rom_info.h and rom_info.c files exist

Use grep to search location where value of node_type is set

tion where the value for node_type is set Get_node_type is suspect

Probable solution: Change code to return

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

int get_node_type(Rom_info *rom_info) {

The search results tell you that get_node_type char cpu;


if (rom_info->unit_spec_id == 0xA02D) {
if (rom_info->unit_sw_version == 0x100) {
return NODE_TYPE_CONF_CAM;
} else if (rom_info->unit_sw_version == 0x10000 ||
rom_info->unit_sw_version == 0x10001) {

is likely to be the source of the problem. }


return NODE_TYPE_AVC;
} else if (rom_info->unit_spec_id == 0x609E &&
rom_info->unit_sw_version == 0x10483) {
return NODE_TYPE_SBP2;

The icon can be expected to work prop- } else {

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

turn NODE_TYPE_CONF_CAM when the cam-


era you are using (unit_sw_version=0x101)
is connected. You can go ahead and make this change.

231
Analysis Tools

11.3.3.4 Check the Results


The last step is to build the source code
and check the results. In this example, Debugging Example (Part 4)
the icon was correctly displayed after fix-
Result

ing the code as described. However, there Icon is correctly displayed

Unknown if patch is correct method to fix problem

is no guarantee that the method you used Fix was possible because of viewable source code

Patch may be incorporated into next version by

is the correct method for fixing the prob- feeding back to community

lem. By feeding back your patch to the


community, the patch may be reviewed,
commented, and incorporated into the next
version of the software. Every piece of 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. 302
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

feedback contributes to the growth of FOSS,


so you should make an active effort to send
feedback.
The ability to implement fixes like this one is the biggest feature of FOSS. These
fixes are possible because viewing and modifying source code are allowed with FOSS.

11.4 Analysis Tools


In addition to debugger, tools are available to analyze the status of program ex-
ecution or to analyze source code. These tools help to accelerate and improve
the quality of bug fixes. Dynamic analy-
sis tools include profilers and tracers. A Analysis Tools
profiler is used to acquire statistical infor- Analyze how program runs dynamically and/or check

mation about CPU and memory usage. A source code statically


To help bugfix, quality improvement and speed up, etc.

tracer is used to trace function calls and Profilers / memory testing tools
Tools to get statistical information on CPU and memory

system calls. Tracers

A static source code analysis tool is used to Tools to trace function calls and system calls

Source code analyzing tools


analyze source code and jump to an arbi- ctags, etags, etc.

Create tag information by reviewing source code

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.

as ctags and etags are used to generate


tag information and jump to the definition
point of a class or function. Utilities such as cflow are used to display which func-
tions call which other functions.

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

Show process and thread status

formation about memory usage or detects Also acquire hardware information such as cache hit
ratio

memory leaks. CPU profilers


Measure CPU utilization rates

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.

11.4.2 GNU Gprof


GNU gprof is a utility for measuring and displaying the operating status of a pro-
gram. Gprof is the leading FOSS CPU profiler. Gprof can be used to measure
processing times and the number of calls
made by each function within a program. GNU Gprof
By analyzing the measurement results, you
Utility for measuring and displaying operating

can identify functions that use up a lot of status of program


Number of calls for each function, processing time, etc.

time of memory. Finding program bottle- Using gprof


Shows bottlenecks to consider for acceleration

necks in this way is useful for accelerating Specify -pg option when compiling

Execute program normally

the overall program. The basic procedure # gprof executable-file gmon.out

Sample output

for using gprof is as follows: func1 takes up zero time

func2 has room for acceleration

% cumulative self self total


time seconds seconds calls ms/call ms/call name
100.00 0.40 0.40 80 5.00 5.00 func2
1. Compile a program using gcc with the 0.00 0.40 0.00 3 0.00 133.33 func1

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software 305

“-pg” option if you want to use gprof.


Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

2. Execute the program normally.

3. Execute the command below. # gprof executable-file gmon.out

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

11.4.3 Memory Testing


This section examines two memory profil-
ers, MemProf and Memwatch. MemProf is a Memory Testing
GUI memory profiler that can be used to
MemProf

profile memory usage or test for memory Profiler for memory


usage

leaks. The slide at right shows a screen-- Test for memory leaks

MEMWATCH
shot of MemProf. CUI memory testing
tool for C

Memwatch is a CUI memory testing tool Detection of memory


leaks, data corruption,

for the C language that can be used to etc.

detect memory leaks and data corruption.


Use of Memwatch needs to be specified in 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. 306
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

source code and during compiling. Since


Memwatch is tailored for the C language, it
can show which portion of source code is causing a memory leak.

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

Traces function calls and system calls

CTrace
Traces function calls

Ltrace
Traces function calls for shared libraries

Strace for GNU/Linux and ktrace for *BSD


Traces system calls

__libc_start_main(0x080664e0, 1, 0xbffff654, 0x08106ab0, 0x08106af8 <unfinished ...>


setlocale(6, "") = "ja_JP.eucJP"
bindtextdomain("sylpheed", "/usr/local/share/locale") = "/usr/local/share/locale"
bind_textdomain_codeset(0x08106c02, 0x08106ba0, 0xbffff608, 0x08106aca, 0x40608968) = 0x08142870
textdomain("sylpheed") = "sylpheed"
g_get_current_dir(0x08106c02, 0x08142870, 0xbffff608, 0x08106aca, 0x40608968 <unfinished ...>
malloc(4097) = 0x08142890
・・・

Sample output from ltrace

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.

11.4.4.3 Strace, Ktrace


Strace and ktrace are used to trace system calls. Strace comes with GNU/Linux,
while ktrace comes with BSD. Truss is a tracer for Solaris.

11.5 Source Code Management


Source code management tools are used to manage source code, configuration files
and various documents, as well as their respective change histories. Team--based
software development must be conducted
by allowing each member to grasp the con- Source Code Management
tents of source code added by other mem-
Manages source code itself, the changing history

bers, or else development becomes confus- and so on


Essential tool for team development

ing. In some instances, you may wish to To make sure when, who, where and how modified?

Reverting back to older revision and/or making branch

roll back to an older version when a prob- versions are possible

Inevitability of source code management tool

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

management tools have been developed to


address the need for these features. 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. 308
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Source code management tools have evolved


as development styles have changed. Basic
version control was adequate when software development was still conducted by one
individual. The shift to team--based development led to a need for exclusive file
access, leading to the development of the Revision Control System (RCS) tool. As
development teams grew in scale, a bottleneck consisted in developers waiting for
file locks to be released. To resolve the issue tools were developed allowing multiple
team members to concurrently edit the same file. Increasing use of distributed de-
velopment over networks was also a factor in creating demand for features beyond
those provided by RCS. Tools such as Concurrent Versions System (CVS) and Sub-
version were developed to address the demand for these features. More recently, the
growth in development teams has shown centralized repositories to be a bottleneck
and several distributed version control tools such as git and ????? have appeared.

235
Source Code Management

11.5.1 Diff and Patch


Version control is the most basic feature
of source code management tools such as Diff, Patch
RCS, CVS and Subversion. Under ver- Patchfile (shown at right)

sion control, snapshots need to be saved Shows differences between files

*** hello.c 2005-06-17 17:46:46.000000000 +0900


Diff and patch
for each version of software. Changes are diff
--- nice.c
***************
*** 3,5 ****
!
int main(void){
2005-06-17 17:47:04.000000000 +0900

printf("Hello World!\n");
return 0;
--- 3,5 ----
Tool to generate differences

typically to only a few lines in a file and patch


!
int main(void){
printf("Nice to meet you!\n");
return 0;

Tool for applying differences to create revised file

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

Redundant to send entire modified file


ferences between old and new versions are Send only differences to administrator

Practice dates back to when transmission speeds were

normally saved. slow, making it necessary to reduce data volume

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. 309
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Diff utilities are used to generate differ-


ences between files. The patch tool is used
to generate a new version by patching the differences to old versions of files. Source
code management tools also use diff and patch features to generate differences, which
are output to a patch--file. The slide shows a sample patch--file. The sample patch--
file illustrates how it is comprised of information about old and new versions of files
and their differences.
Many FOSS development projects provide open (read) access to the source code
repository managed using CVS to any individual. However, only core members have
permission to write to the repository. If a developer without write privileges writes
a bug fix or adds features to a program, that person can send a patch generated
using the diff command. Sending just the patch makes it easier to understand the
changes that were made. It also reduces the size of the file being sent. This practice
dates back to when transmission speeds were slow, making it necessary to keep file
sizes as small as possible.

236
Development Tools

11.5.2 Version Control (SCCS, RCS, CVS and Subversion)


The major source code management tools are SCCS, RCS, CVS and Subversion.
CVS is widely used for FOSS development, but an increasing number of projects
today use Subversion.
Version Control (SCCS, RCS, CVS,
Subversion)

SCCS and RCS Commands in CVS and


Version control for single Subversion
files checkout

CVS Creates working copies from


repository
Creates working copies
on client based on commit

contents of server Saves to repository

(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.1 SCCS and RCS


Source Code Control System (SCCS) and RCS are version control systems for single
files. These tools are capable of managing version and change histories. To edit a
file the developer locks that file and thereby prevents other developers from editing
the same file. As soon as a change is submitted the lock is released.

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

11.5.2.4 Commands in CVS and Subversion


This section describes the basic commands used in CVS and Subversion. The check-
out command is initially used by the developer to create working copies on the client
from the repository on the server. The user edits these working copies.
After finishing a round of editing, the commit command is used to save the contents
of working copies to the repository. If the repository has been updated in the
meantime, the update command is used to refresh the working copies on the client
so that they remain up--to--date.
The add and delete commands are used to add and delete files to the repository.
These changes do not affect the repository until the commit command is used. The
diff command is used to show differences between specified file versions. The
status command acquires information about the status of files. This information
shows whether files are the latest versions or whether they have been updated on
the server or clients.

11.6 Other Tools


The final part of this chapter examines other relevant tools that are effective in
FOSS development. These tools include compatibility tools that absorb the differ-
ences between platforms and localization frameworks to add language support to
software. Documentation tools, integrated development environments (IDEs) and
bug management systems are also presented. The tools described in the following
sections represent just a small selection of the FOSS tools that are available. Many
other tools have been developed to cover various applications.

238
Development Tools

11.6.1 Maintaining Compatibility


For FOSS developers, one of the positive aspects of FOSS development is to see your
software widely used by others. However, differences between platforms need to be
absorbed in order to run one program on
many computers. The major factors that Maintaining Compatibility
lead to platform differences are as follows:
Differences in platforms
Differences in operating systems

1. Differences in operating systems are a GNU/Linux, *BSD, Unix, Windows, etc.

Differences in libraries

OpenGL/Mesa, Xaw, Motif/lesstif, etc.

very significant factor, such as the dif- Differences in versions

Specifications can change due to version upgrades

ferences between GNU/Linux, *BSD, Differences in paths

Unix and Windows. Need arrangement for absorbing these


differences
Labor-intensive to implement manually

Difficult to support platforms not possessed by

2. Next is the difference between libraries. developers

Libraries may be compatible in features 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
311

and specifications but exist in differ-


ent implementations. Examples include OpenGL and Mesa, or Xaw and Mo-
tif/LessTif.

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.

Developers must consider these differences when developing software. However,


ensuring compatibility with many platforms is a complex process and difficult to
implement manually. There is also a limit to the number of platforms that developers
and development teams can keep on hand. This makes it difficult to ensure support
for platforms not possessed by developers. The tools described in the next section
can be used to largely automate the task of maintaining compatibility.

239
Other Tools

11.6.2 GNU Autotools


Obtaining source code does not guarantee that a program can be built under your
own environment and executed. To compile and execute the same program on
different platforms (OS or environment),
it is necessary to use a tool for adjusting GNU Autotools
configurations to enable execution. GNU
Need more than just source code

Autotools was developed to address these Need tools to compile and execute same program on
different platforms (OS or environment)

needs by helping to improve the portability Improve portability and maintainability

Tools such as autoconf, automake, etc.


and maintainability of software. Autoconf: Used to generate configure scripts

Automake: Used to generate makefiles

A configure script can be used to gather Minor format differences depending on version

information about an environment and au- of Autotools used


Contradicts the very purpose of Autotools?

tomatically configure build parameters to


that environment. Configure scripts are 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. 312
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

used for many FOSS projects to improve


the portability of that software. The actu-
al configure script is written as a shell script under the assumption that platforms
share a minimum scripting environment. The configure script is typically very com-
plex due to the need to test a variety of conditions. Writing a configure script
manually is very labor--intensive.
GNU Autotools is a tool--chain comprising of Autoconf and Automake. Autoconf
is used to generate configure scripts, while Automake is used to generate makefiles.
Although Autotools improves the portability of software, it also has some issues. The
format of configuration files differs slightly depending on the version of Autotools
used. If the version of Autotools is different from the one used by the original
developer, some configuration files must be rewritten. Consequently, some of the
portability that is the purpose of Autotools is lost.

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

skills. Developers should make an effort to development


Many developers and users lack English skills

prepare versions of software in languages Desire for different language versions so that many
others can use software

other than just English and the developer’s Localization


Enables display of character strings such as menus

own native language, so that many people and dialogs in different languages

Developers do not need to be versed in each language

can use the software. Localization is criti- Translators do not need to understand source code

Localization tools do not support

cal for this purpose, in order to enable the internationalization


Multilingual handling, line breaks, etc.

display of menus, dialogs and other char- See I18n, M17n and L10n

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. 313
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

acter strings in various languages.


Localization centers on the work of trans-
lators in various countries, rather than centering on the original developers. This
is because it is impossible for the original developer to translate into all languages.
Tools that support localization must satisfy the following two conditions:

· developers do not need to be versed in each language

· translators do not need to understand source code

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

11.6.4 GNU Gettext


GNU gettext is frequently used for localization of FOSS. gettext enables local-
ization without major changes to existing source code. Localization with gettext
is performed using the following steps:
GNU gettext
1. Prepare a message catalog. The mes-
sage catalog consists of a combination Implements localization without major changes to
existing source code

of labels (msgid) and character strings Prepare a message catalog

Surround the internationalized character string with N_()

Ex. Change char *str = "Hi"; to char *str = N_("Hi");

(msgstr). Surround variables that call on the string with _()

Ex. Change printf("%s\n", str); to printf("% s\n", _(str));

Example of message catalog

2. Surround the internationalized charac- Replaces “Hi” (msgid) with “Guten Tag” (msgstr)

msgid "Hi"

ter string with N_(). msgstr "Guten Tag"

msgid "Add"
msgstr "Hinzufuegen"

Ex. change char *str = "Guten Tag"; msgid "Edit"


msgstr "E ditieren"

to char *str = N_("Guten Tag");. 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.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
314

3. Surround variables that call on the character string with _().


Ex. change printf("%s\n", str); to printf("%s\n", _(str));.

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

is cited as one reason for hesitation in de- Expand user base

User manual

ploying FOSS. This section stresses the im- Expand developer base

Helpful for hacking

portance of documentation. Above all, documentation helps the original developer

Tendency to forget the purpose of old code

Documentation is critical for users and oth- Writing documents perceived as bothersome

er developers. It is also important for the Documentation tools


Automatically generate documents from source code

original developers themselves. Preparing Can also graph class relationships, etc.

Not designed to identify purpose of program

user’s manuals helps to increase the user 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. 315
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

base, which leads to identification of bugs.


Preparing specifications and other docu-
mentation for developers is helpful to developers who use FOSS. Providing this
type of documentation also increases the likelihood that developers will write bug
fixes or add features by hacking FOSS source code.

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.

11.6.6 Doxygen, Javadoc, Doc++


The three leading documentation tools are Doxygen, Javadoc and Doc++. Doxygen
and Doc++ support multiple languages such as Java, C, C++ and PHP. Users can
select from HTML or LaTeX as the out-
put format. Javadoc only supports Java, Doxygen, Javadoc, Doc++
but comes standard with JDK. This means
Doxygen/Doc++

that you can use Javadoc in all your Java Supports Java, C, C++,
PHP, etc.

projects. All tools extract specially for- Output in HTML or LaTeX


formats

matted documentation from source code JavaDoc


Comes standard with JDK

files and use the context in which this doc-


umentation is found (e.g. class name of a
class being declared) to generate documen-
tation for the software. An Introduction to Free/Open-Source Software
Sample output from Doxygen

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

11.6.7 Integrated Development Environments


Despite the multitude of Unix, GNU/Linux and GNU programming tools that
are available, many employ a CUI. Although CUI tools are extremely convenient
for developers who are familiar with them,
they can be difficult to master. CUI tools Integrated Development
Environments
make it difficult for Windows developers
Unix and GNU programming centers on

to get involved in Unix software develop- command line tools


Convenience of many tools, but tools are difficult to

ment, since Windows developers are famil- master

Difficult to program outside of IDE framework

iar with GUI development environments. Demand for GUI-based IDEs as developer base grows

Simplifies migration from Windows development


environments
GUI integrated development environments Leading IDEs

(IDEs) are available for Windows develop- Eclipse with multi-language support

Anjuta for GNOME applications

ment and are the primary choice for de- KDevelop for KDE applications

velopment on that platform. IDEs provide 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. 317
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

an integrated interface for various features


and are extremely easy to use within the
features offered by the IDE. The downside is that it is difficult to use features not
available within the IDE.
Both CUI and GUI development environments have their respective advantages and
drawbacks. Demand for GUI IDEs for Unix and GNU/Linux environments has
emerged as the FOSS developer base has grown. Several IDE projects are being
developed today. The emergence of FOSS IDEs simplifies the process of migrating
to Unix and GNU/Linux development for developers who are familiar with Windows
development. Leading IDEs include Eclipse with multi--language support, as well
as Anjuta for GNOME applications and 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

language support including Java, C, C++, Runs on variety of operating systems

PHP, Ruby and COBOL. The plug--in ar- High extensibility


Billed as “universal tool platform”

chitecture of Eclipse in some ways makes Plug-in architecture to strengthen various features

Plug-ins for Java, C, C++, PHP, Ruby and COBOL

up for the disadvantages of IDEs. Due to History of Eclipse


IBM Visual Age released as FOSS

its high extensibility, Eclipse is billed as a IBM sells Eclipse-based IBM Rational Software
Development Platform

“universal tool platform” rather than an


IDE. 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. 318
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Eclipse was originally sold by IBM under


the name Visual Age, before it was re-
leased as FOSS in 2001. IBM currently sells the IBM Rational Software Devel-
opment Platform, which is based on Eclipse. IBM’s rationale for releasing Eclipse
was to increase the number of developers that can use Eclipse. Since Eclipse devel-
opers can also use IBM Rational Software Development Platform, IBM is banking
that more developers will buy its software.

11.6.9 Bug Reporting Tools


For development of smaller scale software, e--mail and spreadsheets are adequate
tools for bug reporting and management of correction histories. As software grows
in scale, the number of bugs also increas-
es so that only some bugs get corrected. Bug Reporting Tools
The involvement of multiple developers al- Also called bug tracking systems

so makes it necessary to grasp the work Dedicated database for bug tracking

Well-known tools: Bugzilla, Debian bug tracking system (BTS),

done by each person. E--mail and spread- GNU GNATS

Centralized management of bugs

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.

Bug life cycle


tem is called a bug tracking system or bug (1) bug report, (2) assignment of person to correct bug, (3)
correction of bug, (4) testing and (5) close of bug report

reporting tool. Bugs can sometimes recur after bug correction or during testing

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. 319
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

A bug reporting tool is a dedicated database


for bug tracking. Major bug reporting tools
include Bugzilla, the Debian bug tracking system (BTS), and GNU GNATS. These
databases track the life cycle of each bug by storing various information about

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,

2. assignment of person to correct bug,

3. correction of bug,

4. testing to verify correction of bug, and

5. close of bug report.

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

and GNOME. Mozilla.org to track


bugs for Mozilla
browser
Powerful bug tracking
and search features

Used for projects such


as XFree86, Apache,
Samba, GNOME, 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. 320
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

11.7 Chapter Review


· What are the kinds of tools used in software development?

· Explain the typical stages in the build of a program.

· How do developers manage complex builds?

246
Development Tools

· Explain the purpose of the programs gcc and ld.

· What are the advantages and disadvantages of static and dynamic linking?

· How can a debugger help in fixing a problem with a software package?

· What is the purpose of a profiler?

· What do the tools diff and patch do?

· What essential feature does CVS have that RCS does not have?

· What essential feature does Subversion have that CVS does not have?

· Explain the different actions a developer commonly performs on the repository


with CVS or Subversion.

· What is the purpose of the autotools?

· 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?

· What is the purpose of bug reporting tools?

247
Updating Software Environments

12 Maintaining Software and Development Ex-


amples
Starting with operating systems, almost all software is configured from numerous
software components. Some of these software components are themselves used by
multiple pieces of software. All resources
related to software are collectively referred (12) Maintaining Software and
Development Examples
to as a software environment. A software
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

Management of software packages

This chapter explores topics for all users Software components


Efficient use of software component enables us to

and topics for developers. All users need reduce man-hour of development

Major software components

to adequately update and maintain their System building example

software environments. We examine and Examples on Web System development and application
software

describe how to accomplish this. For 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. 321
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

velopers, we examine concrete examples of


software development using software com-
ponents.

12.1 Updating Software Environments


FOSS development occurs at a rapid pace with frequent version upgrades. Secu-
rity patches for FOSS are distributed as the need arises, just as with commercial
software. The task of adequately main-
taining software environments is still left Updating Software Environment

up to the responsibility of system admin-


Maintaining software environment

istrator (or user). This chapter examines Environment surrounding software changes day by
day, due to new versions of library, software and

the necessity of maintaining software envi- protocols

Configuration of software

ronments and describes how software en- Software needs to be set up to fit the surrounding
environment

Compiling source code and installing builds


vironments are maintained and how new Binary packages

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

amines tools that partially automate the Package management tools


up2date, yum, apt-get

process of maintaining and deploying soft- 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. 322
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

ware.

248
Maintaining Software and Development Examples

12.1.1 Maintaining Software Environments


System administrators maintain software
environments. One reason they need to do Maintaining Software Environments

this is: Software that is still under devel-


Reasons for maintaining software environments

opment is often updated very frequently. Software updated on daily basis

Add or enhance features

These updates can consist of new features Bug fixes

Patch security holes

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

Problem for others worldwide

dates. Your computer can be taken over and used to attack


other computers or send spam mail

Maintaining a software environment requires 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. 323
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

a certain amount of work such as upgrad-


ing software versions or applying patches.
There is a tendency to assume that updates are unnecessary if the user is satisfied
with their current software environment. However, the necessity for performing up-
dates can be easily understood if you consider the possible outcome of failing to
maintain software.
First of all, failure to update software causes problems for the computer user. Failure
to apply a security patch could enable an outside intruder to steal important data
or otherwise disrupt the operation of the computer. In addition to causing problems
for the computer user, data theft could cause problems for people worldwide. Failing
to patch security holes on your computer could make it vulnerable to being taken
over, either to attack other computers or to send spam mail. This could eventually
come back to you and result in your computer being attacked or flooded with spam
mail. Maintenance of your software environment is necessary for your own sake and
for the sake of others.

249
Updating Software Environments

12.1.2 Configuration of Software


In order to maintain a software environment, it is helpful to understand the ele-
ments that comprise software. Although source code is the primary component of
software, source code and compilers alone
are often not enough to run software. In Configuration of Software
addition to source code, software relies on
Elements that comprise software

various essential data. This essential data Source code alone is not enough

Other elements needed

can include icons, image data and config- Data used by software

Icons and image data

uration files used by software. Other da- Other data such as sample data, etc.

Documentation

Manual pages

ta is needed to actually use software, such Supplementary information, update history

Licensing information

as sample data and manual pages or other Configuration files

These files are typically circulated in one package

documentation. Supplementary informa- Packaging of source code

tion such as update histories and licensing 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. 324
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

information are also necessary.


These files are typically bundled with source
code and circulated as a software package. If the source code for the software is not
released, the software package will contain binary code in place of the source code
and distributed as a binary package.

12.1.3 Compiling Source Code and Installing Builds


FOSS is made available as a single file containing source code and related files. This
file often ends with a .tgz, .tar.gz or .tar.bz2 extension. The .tar extension
indicates that many files have been packed
together to an archive using a tar utility. Compiling Source Code and Installing
Builds
The additional .gz and .bz2 extensions Common formats for source code distribution

indicate that the archive has been com- .tgz, .tar.gz or .tar.bz2 extensions

Tar utility for packing multiple files together

pressed. The .tgz extension is sometimes Tools for compressing and uncompressing files

Two sets of tools are frequently used, based on different


compression formats

used and is simply an abbreviated form of gzip / gunzip


bzip2 / bunzip2

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

tar xzvf XXX.tgz

pressed using the gzip (GNU zip) or bzip2 Configure source code to fit environment

./configure

compressors respectively. The gunzip or Install build (Install as root)

make; make install


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. 325
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

bunzip2 command is then used to uncom-


press these files.
In order to create usable software from the source code you obtained, you must
unpack the source code. The source code must then be compiled and the resulting
binaries installed. The concrete steps for doing this are as follows:

1. Unpack the source code.

250
Maintaining Software and Development Examples

tar xzvf xxx.tgz

2. Configure the source code to fit your environment.


./configure

3. Install the build. (Install as root.)


make; make install

12.1.4 Binary Packages


The software build process is largely automated but is time--consuming. It is also
bothersome because of the need to configure various options. These options are
used to select the right software features
for your environment. To save time and ef- Binary Packages
fort, software is frequently distributed as a
What is a binary package?

binary package. Binary packages that con- Provided for each platform and contains pre-compiled
and pre-configured binary code packaged with other

tain precompiled and preconfigured binary necessary files

Examples of package management systems

code are prepared for various platforms. A RPM (Redhat Package Manager)

System developed by Red Hat

binary package also contains other neces- Deb: Package management system used by Debian

Difficult to apply binary packages to different


environments
sary files. Often cannot be used with different versions of same
Red Hat distribution, due to different library

RPM and deb are the main packaging meth- configurations, etc.

If this happens, you can rebuild the binary package

ods for binary packages. RPM (Red Hat from the source package to install 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. 326
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Package Manager) was developed by Red


Hat. Deb is the packaging system used for
Debian GNU/Linux. In addition to simply copying and installing files, RPM and
deb check to see that necessary libraries are installed. These tools also include
uninstall features. Due to the features they offer, RPM and deb are called package
management systems.
The downside of a binary package is that it is difficult to apply to different en-
vironments. When source code is compiled for a binary package, the version and
the location of necessary libraries are designated. This means that binary packages
frequently cannot even be used with different versions of the same distribution, such
as different Red Hat distributions. If you encounter this problem, you will need to
rebuild the binary package from the source package to install the software. Due to
the effort that this involves, binary packages are frequently prepared for each ver-
sion of major distributions. Binary packages for major software are also prepared
by distributors.

251
Updating Software Environments

12.1.5 Package Management Tools


RPM and deb can simplify the installation of software, but administrators need to
obtain the right source code or binary package. For example, when installing new
software, you must locate and download
necessary libraries and install them along Package Management Tools
with the software package. In order to up- Main features

date software, you must obtain the update Update software that has been revised

Simplify installation of new software

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

yum (Yellow dog Updater, Modified)

Developed for Yellow Dog Linux

software. apt-get

Developed for Debian’s deb format

Package management tools automate the All three tools support RPM format

sGUI-based management tools also available such as

installation of new software and updating Synaptic, etc.

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. 327
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

of software. These tools also install and


upgrade libraries and other software that
has dependencies with the software being installed. Software packages are provided
through network repositories and are frequently made available by distributors.
The leading package management tools are Red Hat Update Agent (up2date), yum
and apt--get. Up2date was developed for Red Hat Linux. Yum, which stands for
Yellow dog Updater, Modified, was developed for Yellow Dog Linux. Yum is al-
so used today for Fedora Core. Apt--get was developed for Debian GNU/Linux.
Up2date and yum are management tools for the RPM format. Apt--get was orig-
inally designed for the deb format, but now also supports the RPM format. All
three of these tools are CUI--based. However, GUI--based management tools such
as Synaptic are being developed for users that are not accustomed to using a CUI.

252
Maintaining Software and Development Examples

12.2 Software Components


The effective use of software components or libraries is extremely critical to soft-
ware development. A software component is a collection of frequently used features
that can be used by other software. Effec-
tive use of software components can signifi- Software Components
cantly reduce man--hours required for soft-
Software components

ware development. Reducing the amount Efficient to reduce man-hour of software development

Avoid “re-invention of the wheel”

of new development also improves reliabil- Many components are published as FOSS

Finding and using components


ity. FOSS software components are wide- Several repositories are found in the Internet

ly available online. Active use of software Types of components (Data, XML, GUI, etc.)
Classifies major components

components is also helpful to avoid “rein- Language specific components


Major language has its component library and the
venting the wheel” through unnecessary ground-- repository for them

up development. 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. 328
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

12.2.1 Finding and Using Components


Software components are made available in a number of different ways, depending on
their general applicability and maturity. Basic and general purpose components that
are widely used by developers are bundled
with compilers and interpreters. Examples Finding and Using Software
Components
include the C++ Standard Template Li-
Finding software components

brary (STL) and PHP Extension and Ap- Standard supplied components such as STL, PEAR, etc.

Download from repository such as CPAN, RAA, etc.

plication Repository (PEAR), an extension Find using search engine

Specialized libraries or those that have recently started

library for PHP. development

Installing and using software components

Developers need libraries and narrowly fo- Include in program source tree

Install to directories for each language # perl -MCPAN -e shell


cpan> install [module-name]

cused utilities. These are available through Often the case for scripting languages

Simplified installation using CPAN Perl module

Install as shared libraries

Internet repositories reserved for a specif- Interface or binding to enable various languages to use library

After installation, library is called from program being created

ic development language. The Compre- 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. 329
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

hensive Perl Archive Network (CPAN) and


Ruby Application Archive (RAA) are two
examples of such repositories.
Software components for specialized applications or recently developed software
components are not listed in repositories like CPAN and RAA. Sometimes these
components are only available from the author’s Web site. These components can
be found using a search engine. Information about these components can also be
gathered from mailing lists and other resources. However, software components that
have recently started development are likely to still have many bugs.
In addition to differences in availability, software components also differ in how they
are installed. A small software component can be used by including it in part of the

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:

# perl -MCPAN -e shell


cpan> install module-name

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.

12.2.2 Types of Components (Data Structure, XML, GUI, Etc.)


Many FOSS software components are available. This section provides a breakdown
by category of some of the leading FOSS software components that are available.

Types of Components
(Data Structure, XML, GUI, Etc.)

Data structure Web page


STL HTMLParser

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.

12.2.2.1 Data Structures


These components support generic data structures such as arrays, lists and trees.
C++ STL is a leading FOSS data structure.

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.4 Network and Web Services


These components support the transmission of objects between networks. Leading
examples include OpenSOAP and Mono. OpenSOAP is the FOSS implementation
of SOAP, while Mono is the FOSS implementation of Microsoft’s .Net framework.

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.6 Web Page


HTMLParser is a leading Web page component used to analyze HTML syntax.

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.

12.2.3 Language Specific Components


Software components are designed to be used by many developers. For this rea-
son, components are frequently released through a software library or repository
for each development language. A reposi-
tory makes it easier for developers to find Language Specific Components

the software components that they want. Available libraries and PHP

Sometimes specifications for software com- specifications

Java
PEAR
http://pear.php.net/

ponents are formulated to enable software J2EE, Struts

Java Community Process (JCP)


Smarty

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

XPG (formerly PyPI)

APIs and commands to be http://www.python.org/pypi

provided by Unix
Ruby
C++ RAA

STL http://raa.ruby-lang.org/

Standard Template Library

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

12.2.4 System Building Example


This section describes how software components are actually used, using the exam-
ple of a web system and common application software. The web system described
here is built using the PHP development
language. Three software components are System Building Example
used, consisting of the PEAR extension li-
Web System

brary, Mojavi web application framework Using software components such as PEAR, Mojavi,
Smarty

and Smarty template engine. Also exam- Applications


Application building example
ined is the file configuration for an actual Location of Application Files

1. Find files containing project information

application. 2. Examine subdirectories in source tree

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.

12.2.5 Web System


This section examines how a Web system is built using the example of PHP--based
development. The software components used in this example are PEAR, the Mojavi
MVC (model--view--controller) framework
and the Smarty template engine. PEAR Web System
was developed with an emphasis on im-
PHP software components

proving the reusability of code, which sim- PEAR

Library for improving


Browser

plifies support for multiple DBMSs. Us- Mojavi


reusability of code
Apache

HTML

ing Mojavi and Smarty makes it possible Smarty


MVC framework PHP

Mojavi

View Template
Template engine

to separate the labor of programmers and Advantages


Controller

Model
Smarty

Web designers. Simplifies support for


different DBMSs
PEAR::DB

DB

The illustration in the slide shows the over- Simple to reuse code

Divides labor of
MySQL
Postgre
SQL
etc...

programmers and designers Linux

all configuration of applications. PEAR is 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. 333
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

used to connect to DBMSs, while Smarty


is used for HTML output. Mojavi is used
as the MVC framework to perform the main processing for the system.

258
Maintaining Software and Development Examples

12.2.5.1 Web System -- PEAR::DB


This section describes how PEAR’s DB class is used to improve the reusability of
code under PEAR. DB class provides an integrated interface for DBMSs. PHP in-
corporates interfaces for DBMSs but uses
different functions for each DBMS. With- Web System – PEAR::DB
out DB class, changing the DBMS requires // Connection
PEAR::DB $connection = mysql_connect($host, $user, $pass);

major changes to source code. For exam- Integrated interface for


DBMSs
mysql_select_db($dbname);
// SQL execution
$sql = "SELECT * FROM testtable";
$result = mysql_query($sql);
ple, if the DBMS is changed from MySQL PHP uses different
functions for each DBMS
// disconnection
mysql_close($connection);

to PostgreSQL, all mysql_xxx functions Changing DBMS requires


major changes to code

Advantage of using
// Declaration of PEAR::DB
must be changed to pg_xxx. In some cas- PEAR::DB

Change just one part of


include("DB.php");
// Type of Database
$type = "mysql";

es, arguments may also need to be changed. code


// Connection
$db = DB::connect
("$type://$user:$pass@$host/$dbname");
Other classes for PEAR

DB class supports DBMS changes by revis- Authentication, testing,


networking, XML, etc.
// SQL execution
$sql = "SELECT * FROM testtable";
$result = $db->query($sql);

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.

designates the DBMS that is being used.


However, with or without PEAR, any fea-
tures specific to MySQL must be replaced in the example given.
In addition to DB class, PEAR has many classes including those for authentication,
testing, networking and XML. These classes are provided under a similar arrange-
ment to DB class.

12.2.5.2 Web System -- Smarty


One issue that arises when building a web system is the intermingling of the pro-
gram and HTML in the source code. This arrangement results in poor presenta-
tion of both the program and HTML. Al-
though Web designers frequently use web Web System – Smarty
design software for design, HTML from de-
Template engine

sign changes must be reflected in the pro- Improves design


presentation
<h1>
<? print $title; ?>
</h1>

gram every time a change is implemented. Intuitive for designers

Does not affect input


<table>
<?
for (i=0; $i<=10; i++) {
print “<tr><td>”.$array[$i].”</td></tr>”;
}
This process is simple but time--consuming and output for Web
design software
?>
</table>

to perform. Template engines were devel- Smarty


Used for XOOPS and
<h1>{$title}</h1>
oped to address these issues. By separat- Rakuten (leading e-
commerce site in Japan)
<table>
{section name=i loop=$array max=”10”}
<tr><td>{$array[i]}</td></tr>
systems {/section}
ing the program and HTML, the presen- Many acceleration
features
</table>

tation is improved. Template engines are 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. 335
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

also designed so that template formats are


not affected by Web design software.
Smarty is the leading template engine for PHP. Using a template engine generally
tends to slow down operations because of the need to convert templates to PHP
code during execution. However, Smarty has many acceleration features to address
speed issues. Smarty is already being used in applications such as the XOOPS CMS

259
Software Components

and large--scale Web systems operated by Rakuten (which is leading e--commerce


site in Japan.)

12.2.6 Application Building Example


This section shows how software is actually used on desktops, using the exam-
ple of mpatrol. The mpatrol tool is a small application used in development
to detect memory leaks and illegal memo-
ry access. Mpatrol supports an extremely Application Building Example
large number of platforms. The list of sup-
Desktop application software

ported platforms includes AIX, DG/UX, Example: mpatrol

Tool for detecting memory leaks and illegal memory

DRS/NX, DYNX/ptx, FreeBSD, HP/UX, access

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.

OS, SINIX, Solaris, Tru64, UnixWare, Ami- Where to obtain mpatrol

http://www.cbmamiga.demon.co.uk/mpatrol/

gaOS and Windows. $ tar xzvf mpatrol_1.4.8.tar.gz


...
$ cd mpatrol
$ ls
AUTHORS COPYING.LIB NEWS VERSION config man tests
Mpatrol can be downloaded from http: CHECKSUMS ChangeLog
COPYING
$
INSTALL
README bin
THANKS build
doc pkg tools
extra src

//www.cbmamiga.demon.co.uk/mpatrol. 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. 336
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

12.2.7 Location of Application Files


Unpacking the mpatrol package shows that it comprises of the files described below.
Many other FOSS packages use a similar file configuration.

Location of Application Files

File configuration after unpacking

AUTHORS Author’s name bin Location for binary code

Contains source code to

CHECKSUMS Checksums for each file build generate necessary builds for
each platform

Contains files used by


COPYING Copyright notice config
Autotools

COPYING.LIB Copyright notices for libraries doc Contains documentation

ChangeLog Update history extra Contains files used for testing

INSTALL Installation information man Contains manuals

Contains files necessary for

NEWS News pkg packaging such as for RPM,


deb, etc.

README First file to read src Contains main source code

THANKS Acknowledgements tests Contains code for testing

VERSION Version information tools Contains source code for tools

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.

12.2.7.1 Files Containing Project Information


The AUTHORS file contains the author’s name and information about the author.
CHECKSUMS contains checksum values from each file. CHECKSUMS is used to determine
if files have been altered.

260
Maintaining Software and Development Examples

COPYING and COPYING.LIB contain copyright and licensing information. COPYING


contains licensing conditions, while COPYING.LIB contains copyright notices for li-
braries used by the software.
ChangeLog contains the update history for the software. Sometimes this file is au-
tomatically generated when using a source code management tool for development.
INSTALL contains installation information such as the installation method. NEWS
contains notable news items from the update information.
The README file is the first file you should read after unpacking the software package.
This file describes each file and contains important notes. Credits from the software
author are normally contained in the THANKS file. The VERSION file contains version
information about the software.

12.2.7.2 Subdirectories in Source Tree


The bin directory contains precompiled binary code. The build directory contains
source code necessary for generating builds for each platform.
The config directory contains files used by Autotools.
Documentation such as manuals and tutorials are often placed in the doc directory.
Manuals are customarily placed in the man directory.
The src directory contains the main source code. Necessary files for packaging such
as those used by RPM and deb are provided in the pkg directory.
The tests directory contains code for testing purposes. Any files used for testing
are contained in the extra directory. Sometimes a tools directory is provided.
This directory contains tools necessary for builds, or source code for tools that come
bundled with the software.

12.3 Chapter Review


· Who is responsible for maintaining the software environment?

· What are reasons for updating the software environment?

· Besides source code, what is essential for running software?

· If you receive FOSS in a .tar.bz2 file, what do you need to do to unpack the
archive?

· What are the advantages and disadvantages of binary packages?

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

· Explain the following terms “software environment” “software package”, and


“binary package”.

262

Você também pode gostar