You are on page 1of 337

(1) What is Free/Open-Source

Software(FOSS)?
Why choose Free/Open-Source Software?
The processes involved in writing software
understand the importance of source code to software
FOSS and proprietary software
Differences between FOSS and proprietary software
Releasing source code
the merits of releasing source code
Misunderstandings and the truths about FOSS
FOSS engineers and the career paths
examine the skills required for FOSS engineers, and
the career paths

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.
Why Choose Free/Open-Source
Software?
Reasons for interest Contents
in FOSS What is FOSS?
Standards (open Major FOSS Packages and
standards) Distributions
Value, quality, innovation Philosophy and History of FOSS
Freedom of choice FOSS Development and FOSS
A lot of flexibility Community
Security FOSS in Business and Case
Studies
Cost
FOSS and Government Policy,
E-government
Purpose of this course
Features and Issues with FOSS
Learn about significance
of FOSS Development Tools
Understand benefits of Software Components and
FOSS Examples of Application
Building
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.
Process of Writing Software
Operating principles of computers
Confirming the basics of computers

Binary code and source code


Why the source code is so important?

Compilers and interpreters


Divided into two categories

Programming languages
Overview of typical programming languages

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. 3
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Operating Principles of Computers
Von Neumann architecture
Executes a sequence of instructions stored in memory
Machine language
Binary code
Difficult for people to read
Evolution from 8-bit to 16-bit, then 32-bit and now 64-bit

Computer configuration
Central processing unit (CPU)
Storage devices
Primary storage device (memory)
Secondary storage device (external memory, hard drive,
etc.)
Input/output devices
LCD/CRT display, keyboard, mouse, printer, 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. 4
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Binary Code and Source Code
Binary code
0010000 0a29 2020 2020 2023 6874 7369 6920 2073

Machine language (native code) 0010020


0010040
0010060
2061
7520
6576
6574
746e
7720
706d
6c69
7469
726f
7720
2068
7261
2065
6874
2079
6163
2065
6168
206e
6564
6b63
696c
6166
0010100 6c75 2074 6573 7261 6863 7020 7461 7368

Example of instruction set directly


0010120 200a 2020 6920 2066 205b 4c24 5f44 494c
0010140 5242 5241 4e59 3233 505f 5441 2048 3b5d
0010160 7420 6568 0a6e 2020 2020 2020 5320 5359
0010200 4554 5f4d 444c 4c5f 4249 4152 5952 334e

executable by CPU 0010220


0010240
0010260
5f32
5952
2020
4150
334e
7865
4854
5f32
6f70
243d
4150
7472
444c
4854
5320
4c5f
200a
5359
4249
2020
4554
4152
2020
5f4d
0010300 444c 4c5f 4249 4152 5952 334e 5f32 4150

Represented by hexadecimal numbers 0010320


0010340
0010360
4854
4152
6473
200a
5952
705f
2020
334e
6f72
2020
5f32
2267
2020
4150
243a
444c
4854
444c
4c5f
3a3d
4c5f
4249
2422
4249

Byte-code
Executed by virtual machine
/*

Used for Java, etc. * Initialize directory-related fields in the mount structure.
*/
static void
xfs_dir_mount(xfs_mount_t *mp)
{

Source code uint shortcount, leafcount, count;

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) -
Understandable to people (uint)sizeof(xfs_dir_leaf_hdr_t)) /
((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
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. 5
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Compilers and Interpreters
Compiler
Converts source code to binary code during compiling
Advantages of compiled languages
Low overhead during execution; high-speed execution
Drawback of compiled languages
Changes in source code require recompiling
Interpreter (scripting languages are also a type of
interpreted language)
Source code interpreted at each execution
Advantages of interpreted languages
No compiling required; easy to create codes
Drawbacks of interpreted languages
Inferior performance during execution; not suited for
large-scale systems
Some interpreted languages are first compiled each time to
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.
Programming Languages
Major compiled languages
C language
Object-oriented extensions of C
C++
Objective-C
Conversion: C -> Assembler* -> Machine language
*Assembly language corresponds nearly code-for-code
with machine language, but is designed for people to
read
FORTRAN, Pascal
Programming languages that use byte-code interpreter
(Virtual Machine type)
Java, C# (.Net)

Major interpreted languages


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.
FOSS and Proprietary
Software
Software as a product
Difference between software product and 'goods'

Issues with software products


Problems such as illegal copy and piracy

Countermeasures
What were the countermeasures against such issues in
the past?

Emergence of Free/Open-Source
Spotlighted as a novel software paradigm
Turning point of software 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. 8
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Software as a Product
Traditionally, software had a strong “freebie”
element
Accessories to hardware
OS, applications and other minute software
Basic reservations about paying for immaterial goods
Commoditization of computers (from mid-90s)
Package software became commonplace
Proprietary software emerged as product
Difference between software and material goods
Negligible cost to copy
Rampant illegal copying and piracy
Difference between software and information content
(music, film)
Software requires 100% integrity (zero tolerance for
“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.
Issues with Software Products
Illegal copying, piracy Vulnerabilities
Casual copying Security holes
Particularly rampant in Bugs
Asia (but incidence is Increased complexity
not necessarily zero in of software
US/Europe)
Accelerated by
developments in P2P
technology
Winny
WinMX
gnutella
Demise of copyright
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. 10
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Countermeasures
Measures against illegal Measures to address
copying vulnerabilities
Hardware-based solutions Patches
USB dongles, etc. Security patches
Copy protection technology Bug patches
Superdistribution systems Automatic updates
Digital watermarks Cost of maintenance
Software-based cannot be ignored
countermeasures
License keys
Serial keys
Non-technology solutions
Comprehensive licensing
agreements
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.
Emergence of FOSS
Freedom to copy
Solution to piracy issue
Does not equate to discarding copyright
Software use managed through license

Can counter the risk of vulnerabilities


Fixes implemented by worldwide developer base
If you have the expertise, you can fix it yourself

Paradigm shift in software products


Shift toward being paid for services
Support services
Customization
Provide total solutions

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.
Releasing Source Code
Levels of publishing source code
Inadequate just releasing source code

Effects of publishing source code


Many benefits for both users and 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. 13
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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

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

Benefits for developers and development


projects
Can turn to others for help (someone is likely)
to debug the software
to add new features
modify the source code out of need
to handle maintenance

Benefits for users


For users capable of modifying source code
Ability to fix by oneself if problem occurs (maybe)
Ability to perform detailed customization (maybe)
Learn operating principles and acquire technology
Other users
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.
Truth and Misunderstanding about
FOSS
“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”

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. 16
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
“Open Source” is a Proper Noun

Terms that are proper nouns by definition:


“Free Software”
“Open Source Software”
“Open Source” is trademarked in the US by Open Source
Initiative

Becoming common nouns


Other examples of common nouns from proper nouns
Walkman (portable stereo)
Rolodex (rotary file)
Xerox (copier machine)
Leads to misconceptions, controversy, false rumors
and lies
Needs to be properly understood

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.
“Free Software” and “Free Beer”

“Free Software” is freedom software


Free Software is frequently distributed without charge,
but does not have to be free of charge
You can still conduct business with Free Software
Confusion over the meaning of Free Software
Richard M. Stallman admits to poor choice of words
Stallman prefers “freedom software”
Freedom of software is not assured under e.g.
freeware and shareware

“Free Beer” is beer without charge


Freedom of beer is not guaranteed

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.
More Than Just Publishing Source Code

Publishing source code doesn’t make it


Free/Open-Source
One of the major misconceptions about FOSS
Must meet Free/Open-Source Software criteria
Critical to release source code under license consistent
with OSD
Essence of copyleft not about releasing source code

FOSS checklist
Does released source code actually run?
Is it compilable?
Modifying source code permitted?
Redistribution of modifications permitted?

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.
FOSS Technology and Career Paths

Skill set for FOSS engineers


What skills are required for FOSS engineers?

Types of FOSS engineers


When and what FOSS technologies are used?

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?

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

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. 22
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Skill Matrix for FOSS Engineers
System
Applicatio
Package
OSS PBL
System n Developmen Classroom lectures
Administrator Integrator Developer (Project
Developer t Hands-on trainings based
Skill Level 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Learning)
FOSS
Integra Common

O1 Understanding OSS                     We need this types


System OSS

development
O2 OSS Community Participation                                                      ¿  of training course!!

integration
Network
I1 UNIX Operation                Training course
UNIX

tion

I2 UNIX System Administration   ¿                                            for Linux
I3 UNIX Server Administration   ¿                                            certification
OSS Software Components                            ¿ We need this types
Dev.
Env.

D1      
OSS

D2 OSS Development Tools     ¿      ¿     of training course!!


C1 Basics of Computer                     
Common

C2 Computer Language                      ¿    ¿     ¿ 

University / Professional school


System Development Method                      ¿     ¿      ¿

Software Development
C3   
PMBOK
Project Management                       ¿          ¿           ¿

Training Course
C4   Seminar
T1 Database             ↑  ↑   ↑  ↑   ↑   ↑ 

Package development
FOSS tuning
T2 Network                   ¿  ¿   ¿  ¿ 

development
Web system
T3 Web Service                  ¿  ¿   ¿  ¿   ¿  ¿ 

Code reading
Technology

T4 Middleware                  ↓  ↓         


T5 Multimedia                                      ¿  ¿   ¿  ¿ 
T6 Platform                                ¿  ¿   ¿  ¿ 
T7 High Performance                           ↓  ↓   ↓  ↓ 
T8 Security    ¿                   Security
Seminar
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 - Level 2 : Senior engineers that can do their jobs independently
-  Central skills for the engineer - Level 3 : Leading engineers in their section

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. 23
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Career Paths for FOSS Engineers
t t ont
g nt
ec c t nt l is t i r e nt er n n
in s t a i t je m e a a i s a e m e i o i o
t e ul ch ci ic ial ftw pm sto vic at at
ke al s r
o
Pr ag
e e l e r c
ar S
on A p c
Sp Ap pe So el C u er
s pe du
M C IT an IT s v O E
m de

FOSS specialist can offer technical


advice, on FOSS selection, FOSS con-
figuration for effective use, etc.
l.7
(He/she plays a role as FOSS somme-
Lv lier for their companies and participates
FOSS in FOSS communities outside)
v el l.6 Specialist
le Lv
h
ig
H v l.5 Con- IT
L sultant Archtect
Project IT
v el .4 Manager Specialist
l
le Lv
d le
id v l.3
M L Package/
l Application
FOSS System
v e l.2 Sytem Develop- develop- Admin-
le Lv Integrator ment ment istrator
try
En v l.1 The scope of
L FOSS skill set

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

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. 25
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FOSS Application Fields
Network servers
network servers were the quickest to adopt 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

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. 26
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Network Servers
Very high affinity between FOSS and network
services
Evident from origins of FOSS

Internet Service Providers (ISPs)


FOSS used for mail servers and name servers
Portal sites, Web servers
Load balancer also critical for large-scale ISPs

Small-scale network servers


In-house intranet systems
Mail servers, file servers
Groupware
Wiki for information sharing

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.
Internet and Enterprise Systems

Evolved from network servers


Factors driving FOSS use for Internet business
FOSS servers used as platforms
Emerging IT companies and Internet venture firms
Desire to maximize return by reducing system investment
costs
Popularity of e-commerce

Making inroads into enterprise sector


FOSS gradually making inroads into business applications
E-learning, ERP, CRM
Business package software for specific 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. 28
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Embedded Systems
FOSS penetration in embedded environments
GNU/Linux, NetBSD and other FOSS operating systems
support many different CPU architectures
Various embedded platforms are supported
Motivation for porting often evolves out of developer interest

Embedded equipment manufacturers look to FOSS


EMBLIX (since 2000), CE Linux Forum (since 2003)
Main equipment applications
Portable information devices
PDAs, mobile phones, car navigation systems
Information appliances
Hard disk recorders, media servers, multimedia equipment
Various home electric appliances, as their features become
more sophisticated
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.
Engineering Workstations (EWS)

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


Same system operation and user interface
Same applications are used
Or many comparable FOSS can be used
Can reduce hardware costs
Switching from Unix machines to IBM PC-compatible
machines leads to significant cost savings

FOSS development supported by EWS users


Continue to uphold the principle of “user as 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. 30
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Desktops
Desktop use by general users
Last stronghold of proprietary software?
Many users only familiar with Windows or Mac OS
Ease of use nearly the same for all desktop
environments

Application fields
Used in schools
Used by teaching staff in their offices
Used by children in PC labs
Used in routine task applications
Telephone operator terminals, counter terminals
Medical data terminals
Office terminals (private sector and government)

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.
Deploying FOSS
Deploying a new FOSS environment
Dual booting
CD booting
Using a Virtual Machine

Using FOSS under Windows


The first step is trying to use FOSS applications on
Windows

Cygwin
The package to use GNU software on Windows

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

Advantages
Operation is same as single boot environment
Runs on one machine; affordable way to try new OS

Drawbacks
Multiple OS’es cannot be used concurrently
Slightly bothersome to partition hard drive and
configure boot loader

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. 33
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
CD Booting
OS boots directly from CD-ROM
Leading example: Knoppix

Can run on diskless system


User data stored in USB memory, etc.
Some OS’es save data to CD-R at shutdown
Temporary files operate on RAM disk

Advantages
Easy to try new environment
CD-ROM based, so minimal risk of harming system

Disadvantages
System cannot be extended
Cannot apply security patches, 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. 34
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Using a Virtual Machine
Run one OS on top of
another
Ex: Windows on
GNU/Linux

Leading examples
VMware
coLinux

Advantages
Easy to try new OS

Drawbacks
Slower performance GNU/Linux running inside of GNU
due to inevitable
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.
Using FOSS on Windows
Growth of FOSS in tandem with Unix
development
Linux and GNU software
X Window System and related software
Unix server software, etc.
FOSS and running on Unix are fundamentally unrelated

First step in deploying FOSS


Try FOSS designed to run on Windows
Many FOSS programs also run on Windows
Apache, PostgreSQL, MySQL, Perl, etc.
FOSS written in Java
“Write Once, Run Anywhere”
Try Cygwin

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.
Cygwin
Implements GNU/Linux-like environment on
Windows
Two major components
API (cygwin1.dll) for emulating Unix APIs
GNU development tool-chain

Excellent portability
FOSS for Unix will (often) run on Windows, if compiled
from source code
X Window System also ported to Windows on Cygwin

Similar software:
Services for Unix (SFU) from Microsoft
SFU is free of charge, but not 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. 37
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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)

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. 38
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Running the Installer
Popular method
GUI installer
Based on X Window
System; supports mouse
operation

If GUI cannot be used


Not supporting GUI
Due to special display
Use classic CUI installer

Installer startup
Boot from CD
Boot from network
Boot from disk image on
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.
Basic Configuration
Language selection
Choose main language to use with system
Keyboard configuration
Many keyboard configurations, depending on the
language

Choose installation type


Default options
Desktop, workstation, server
Custom installation

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.
Drive Formatting/Partitioning
Select hard drive to install to
Formatting and partitioning
Optionally use installer’s default settings

Formatting and partitioning tools


fdisk (classic tool)
Disk Druid

Also configure boot loader at this 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. 41
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Network Configuration
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

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. 42
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Time Zone Selection,
Root Password Setting
Time zone selection
Puerto Rican users should select America/Puerto_Rico
Or select time zone by using mouse to click on world
map

Root password setting


Password for root account
General user accounts can be added later

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. 43
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Package Installation
Choosing software packages to install
Installation type determines which packages are
installed
If you chose Custom installation, choose each software
package to install
Software packages are sorted by group
Desktops
Applications
Servers
Development, 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. 44
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Package Installation (Cont’d)
Installation of software packages
Hard drive formatting also performed during this step
Most time-consuming part of installation process
If distribution spans several CD-ROMs, you will be
required to change CDs during installation
Software packages can also be added later on
Restart computer after software installation finishes

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. 45
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Configuration After Software
Installation
Detailed configuration of individual software
Separately configure installed software
Display configuration is important

Agree to License Agreement


Fedora Core asks users to agree to license during this
step

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

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

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. 48
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
OS (Operating System)
GNU/Linux
The leading free/open-source OS

FreeBSD/NetBSD/OpenBSD
Honorable descendants of BSD

Darwin
Open source OS kernel as a basis of Mac OS X

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

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. 49
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
GNU/Linux
Unix for PC, brainchild of Linus Torvalds
Created in 1991
Bazaar-style development; ported to various platforms
ranging from embedded to mainframe
Architectures supported:
x86, PPC, Alpha, MIPS, SPARC, S/390, etc.

Strict definition and wider definition


Strict definition: Linux kernel
Wider definition: Linux package (distribution) with
applications
cf. “About Distributions”
Diverse range of GNU/Linux systems popular
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. 50
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FreeBSD, NetBSD, OpenBSD
BSD : Berkeley Software Distribution
Unix-compatible OS created by William Joy(Bill Joy) and
Chuck Haley
Based on Unix V6 with networking enhanced
Highly influential on development of today’s Internet-
related technologies

FreeBSD/NetBSD/OpenBSD
Free/Open-Source OS’es derived from BSD

Features
FreeBSD: Emphasis on stability; frequently used for
servers, etc.
FreeBSD derivatives: DragonFly BSD, Firefly BSD, etc.
NetBSD: Runs on diverse platforms
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.
Darwin
Kernel of Mac OS X
Released by Apple as FOSS
Mac OS X includes Darwin kernel and GUI (Quartz),
APIs (Cocoa, Carbon), etc.

Derived from 4.4BSD


Microkernel: Mach 3.0
Released under Apple Public Source License (APSL)
version 2.0
Supports PowerPC and x86 architectures

OpenDarwin Project
Founded in April 2002 by Internet Systems Consortium
and Apple Computer
http://opendarwin.org/

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.
Other Free/Open-Source Operating
Systems
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
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. 53
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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

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. 54
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Middleware
Web application frameworks
Middleware as a framework for constructing Web
applications
JBOSS, Tomcat, etc...

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

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. 56
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Libraries
glibc (GNU C Library)
Collection of most basic and general-purpose
components (printf, etc.)
Called “C Library” because development on Unix
focused on C language
lib*.so
Shared library
Used by multiple programs
Vast array of libxxx.so
libglib, libstdc++, libgtk, etc.
Ex. GNU Readline
Library for editing command lines
Features: History, complementation, etc.
Also provided as libxxx.so: Widget sets, graphics
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.
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
GUI toolkit developed developed by SGI
by Trolltech
Used by KDE
Mono (.NET)
OpenMotif Open Source
implementation of .NET
GUI toolkit for X
Window System; FOSS .NET framework
version of Motif advocated by
Microsoft; competes
with Java

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. 58
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Servers
Web server File sharing
Apache Samba/WebDAV

Mail servers LDAP


MTA OpenLDAP
ML server
POP3/IMAP
Mining server
namazu
DB server
PostgreSQL/MySQL/Fire
CMS
bird XOOPS/Zope

DNS Business applications


BIND E-Learning, e-
commerce 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. 59
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Web (HTTP) Servers
Apache
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
2005)
History
Developed in 1995 by Rob McCool at NCSA
Development stalled when McCool later left NCSA
Developers in various places began modifying Apache
These developers got in touch and started up Apache
Project
Name originates from “a patchy” server and the Apache
Native Indian tribe
Features
Light, fast and reliable (uses modules)
Runs on many platforms (Unix, Mac, Windows)

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.
Mail Transfer Agents (MTA)
Sendmail
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)
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. 61
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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

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. 62
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
POP3/IMAP Servers
qpopper
Qualcomm’s extension of Berkeley popper
Also supports APOP

UW-IMAP
Developed by authors of RFC about IMAP
reference 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. 63
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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


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. 64
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Domain Name System (DNS)
BIND (Berkeley Internet Name Domain)
DNS server
System for linking domain names to IP addresses
Developed at UC Berkeley
Current maintenance work by Internet
SystemsConsortium (ISC)
De facto global standard
95% share (based on 2000 survey)
http://www.isi.edu/~bmanning/in-addr-versions.html

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.
Sharing of files
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
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. 66
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Lightweight Directory Access Protocol
(LDAP)
LDAP
Lightweight Directory Access Protocol
Protocol for accessing directory services
Central management of user data, etc.
LDAP-compatible software: MS Active Directory, etc.

OpenLDAP
Open Source version of LDAP
Based on SLAPD developed at University of Michigan

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.
Information Retrieval
namazu
Full-text search system in Japanese
Features
Builds index in advance for fast searching
Filters can be used to search other files in addition to
text files
Functions as a WWW full-text search system when used
as CGI

Recent search systems


Estraier: a personal full-text search system
http://estraier.sourceforge.net/
Rast: A full-text search system
http://www.netlab.jp/rast/
GNU mifluz (Senga information retrieval software)
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.
Content Management Systems (CMS)

XOOPS Zope
Features Application server
Built using PHP and written in Python
MySQL
Simple to install and Plone
build sites CMS that runs on Zope
Top FOSS CMS in Japan
Core developers are
Japanese (from
beginning)
Fork version decided in
May 2005, due to
dissatisfaction with
development structure
Shift to independent
development structure in
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.
Business Applications
Diverse range of FOSS business applications
e-Learning
Moodle, Atutor, FOSS LMS, CFIVE, ...
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
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. 70
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Desktop Environment
GUI and integrated Multimedia
desktop environment Image processing
What is a desktop CG (Computer Graphics)
environment? Video
Audio, music
Mail and web browser
MUA (Mail User Agent) Others
Web browser Computation, science
and technology
Document processor
Input of non-latin scripts
Editor
Office suites
Type setting
Printing

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. 71
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
GUI Environment
X Window System
De facto standard graphics environment for Unix
Originally developed at MIT; widely used today
Core development shifted to XFree86 Project, then to
X.Org Foundation
Designed for network transparency
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...
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. 72
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Integrated Desktop Environment

What is an integrated
desktop environment?
Provides a common GUI
environment
Enables operations involving
coordination between
applications
Copy & paste
Drag & drop, etc.
GNOME
Integrated desktop
environment based on GTK+
KDE
Integrated desktop
environment based on Qt
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.
MUA (Mail User Agent)
MUAs using typical three-pane
configuration
(Three-pane configuration: Folder
tree, title pane and message
pane)
Evolution
Sylpheed
Thunderbird
MUA derived from Mozilla
MUAs for running within Emacs
Mew
Wanderlust
Text-based MUAs
Mutt

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. 74
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Web Browsers
Konqueror
Browser in KDE
Integrates different
media

Firefox
Web browser from
Mozilla project;
designed to be light
and fast

Other browsers
Text-based browsers
w3m
lynx

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.
Editors
GNU Emacs
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.
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. 76
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Office Suites
OpenOffice.org (OOo) Full suite of office software
Derived from StarOffice, OOo Writer word processor
product of German company OOo Calc spreadsheet program
StarDivision
OOo Impress presentation tool
Acquired and now
OOo Draw draw/paint tool
maintained by Sun
Microsystems OOo Base database program

Sun’s strategy
Portions of StarOffice not
restricted under license are
published as FOSS
Comparison with
commercial Office
software
Comparable function-wise
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.
Typesetting
What is typesetting software?
Uses commands to apply a style to a structured
document; used for publishing
Not WYSIWYG (What You See Is What You Get), but
produces high quality output

TeX / LaTeX
TeX : Typesetting software created by Donald Knuth
LaTeX : Extension of TeX created by Leslie Lamport
Features
Strict concept of style, produces high quality output
Simplifies typesetting of formulas
Highly extensible (various extensions are available)

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.
Typesetting (Cont’d)
Typesetting 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
Print document

GhostScript
Renders PostScript (PS) files
Used for verification on screen, or used on request by
printer driver

xpdf
PDF file viewer program

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. 79
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Printing
LPRng
ng stands for “new generation”
Designed to replace common Berkeley LPR for Unix
Provides security and incorporates modern features,
but retains customary interface

CUPS (Common Unix Printing System)


Standard print spooler

Issues with UNIX printing systems


Lack of common GUI
Ex. Printing dialogs, printer status, etc.
OpenPrinting project under development by Free
Standards Group

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.
Image Processing
GIMP
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...
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. 81
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Computer Graphics (CG)
POV-Ray
Ray tracing program for CG
creation

blender
Program for 3D CG creation
Released as FOSS after
development company went CG rendering using POV-Ray
bankrupt
Can be used with YafRay
(Yet Another Free Raytracer)

Open Inventor
VRML rendering library
SGI software released as
FOSS Sample program in Open Inventor
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. 82
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Video
xanime, mtv, plaympeg
First wave of video players
MPlayer, Xine
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.

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. 83
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Audio, Music
XMMS (X Multimedia System)
Audio file and CD player

LAME (Lame Ain't an MP3 Encoder)


MP3 encoder

Ogg Vorbis XMMS


Free music compression format
Designed to replace other compression formats having
many rights issues

RoseGarden
Desktop music creation tool

Timidity
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.
Computation, Science and Technology

R gnuplot
Statistical computing Plotting software
package
Compatible with S language
SciLab, Octave
Science and technology
computing software
Compatible with MATLAB
Maxima
Formula manipulation
software
Comparable to Mathematica
Capable of high quality Graph drawn in gnuplot
formula display when used
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.
Kana-Kanji Conversion
FreeWnn
FOSS version of Wnn from Omron Software
Canna
Kana-kanji conversion software developed by NEC
Restarted in 2002 through volunteer-driven
development
Anthy
New entry, developed since 2000; started in response
to the dismal state of FOSS-based kana-kanji
conversion software
Issues with kana-kanji conversion were
No standard common framework
Candidates: XIM, IIMF and UIM protocols
Poor performance due to patents covering conversion
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.
Input of Non-Latin Scripts
Increasingly users require non-latin scripts
Goal: provide common framework
Examples: Kanji, Chinese, Hangul, Cyrillic
but also for German, French, Spanish, ...
Smart Common Input Method (SCIM)
full featured input method user interface
for POSIX-style operating systems
Linux, FreeBSD and other Unix
development platform for input methods
currently supports more than 30 languages

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.
Development Environments
Languages
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

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. 88
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Developing Languages
gcc (GNU Compiler PHP
Collection) HTML-embedded, server-side
Collection of compilers for C, scripting language
C++, Fortran, Java, etc. Main language for Java and
Standard compiler for Web system development
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
Frequently used for system languages
management and CGIs Python is an object-oriented
version of Perl
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. 89
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Integrated Development
Environments (IDE)
Eclipse
Development environment
implemented in Java
Supports languages other than Java
Plug-ins for C/C++ development
C/C++ Development Toolkit (CDT)
IDE for various desktop
environments
Kdevelop for Qt/KDE
Anjuta for GTK+/GNOME
Other IDE
WideStudio
For creating GUI applications using
C/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. 90
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Development Frameworks
Framework
Implements basic framework for data I/O, error
handling, screen transitions, etc.
Improves development efficiency
Standardization of quality: Same quality regardless of
who writes it
Difficult to implement features outside of framework

Struts
Java-based Web application framework
Uses Java servlet and JSP technology
Uses MVC architecture
Simple and powerful framework
Runs on servlet container such as Tomcat
Developed by Jakarta Project

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.
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
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. 92
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
About Distributions
GNU/Linux distributions
Standard applications do not run on Linux kernel alone
Requires a shell, libraries, tools, etc.
Also requires application software
Distributions bring together necessary software to simplify
installation
Can be installed by novices
What sets a distribution apart?
Different applications or configurations for server/desktop
use
Inclusion of commercial software
Commercial-free versions often available for free download
Package management systems
rpm, deb, Portage
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.
Red Hat Linux, Fedora Core,
CentOS, etc.
Red Hat Linux
From Red Hat, the largest GNU/Linux distributor
Red Hat focus is on enterprise applications
Development of free Red Hat Linux stopped in 2003
FOSS development shifted to Fedora Project
Clone distributions excluding commercial software
White Box Enterprise Linux, CentOS

Fedora Core
Community-based development under Fedora Project
Supported by Red Hat
Aggressively adopts advanced features
Also serves as Red Hat’s test version
Uses UTF as default character code
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.
Turbolinux
Developed and marketed by Japanese company
Turbolinux, Inc.
Japan: No. 2 in GNU/Linux server OS market share
(2003 survey) *1
China: No. 1 in GNU/Linux server OS market share
(2003 survey) *2
Released Chinese version of GNU/Linux
Joined UnitedLinux industry consortium in 2002
Purpose: Establish standard distribution for GNU/Linux

Focus on desktop GNU/Linux OS


Releases: Turbolinux 10 Desktop, etc.
Enhanced with Windows-like GUI
Comes with player supporting Windows Media video files
*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)

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

Originally developed by German company SUSE


Linux
No. 2 in global market share
No. 1 in Europe
Acquired by Novell in 2004
OpenSuse: contains only FOSS

Features
Adopted KDE as standard desktop environment
First enterprise GNU/Linux distribution to use Linux
kernel 2.6
Includes YaST integrated management tool

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.
Vine Linux
Community-based development by Project Vine
in Japan
Commercial version available from Vine Caves, Ltd.
with additional fonts and kana-kanji conversion

Features
Japanese language environment is easy to use
Emphasis on stability
Slow to adopt new features
Employs apt package manager (compatible with RPM)

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.
Debian GNU/Linux
Developed by Debian Project
Debian Project also develops other free operating
systems outside of GNU/Linux
Encompasses nearly 1,000 developers
Features
Uses apt and deb package managers
Vast number of packages (over 15,000)
Entirely made up of FOSS
Various distributions derived from Debian
GNU/Linux
KNOPPIX
Linspire: Windows-like commercial OS
Skolelinux: GNU/Linux distribution for schools

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.
KNOPPIX
Developed by Klaus Knopper
derived from Debian

Features
Boots from CD-ROM
Easy to try out; does not affect existing environment
Can be installed to hard drive
Excellent automatic device detection

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.
Ubuntu
Based on Debian
Started by Mark Shuttleworth
Commercial support and development by
Canonical

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. 100
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
(4) Philosophy and History of
Free/Open-Source Software
History of FOSS
Looking round the evolutionary process of FOSS from
“Birth of Hackers” to current situations where FOSS is
widely spread in enterprise market

Definition of FOSS
Use the term FOSS correctly by knowing strict
definition of “Open Source Software”

FOSS Licenses
To understand meanings of software licenses and
categories of 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.
History of FOSS
Birth of hackers Birth of Linux
Basis of emerging free A pioneer of “Bazaar
software model development”

Free software Growth of FOSS, and


movement and FSF Launch of OSI
Free software as freedom Market share of FOSS
of software has enhanced for
business use
Copyleft
Fundamental structure to Penetrating the
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
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. 102
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Birth of Hackers (1950s to Present)

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


to describe a person thefreedictionary.com)
who writes good Originally, a quick job that
programs or new produces what is needed, but
not well.
algorithms An incredibly good, and
Individuals who attack perhaps very time-consuming,
systems are “crackers” piece of work that produces
exactly what is needed.
Hacker culture is a To bear emotionally or
physically.
type of gifting culture
To work something (typically a
“Hacker” title program).
bestowed by others To pull a prank on.
To interact with a computer in
Unix conceived in a playful and exploratory
1971 rather than goal-directed way.

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.
Free Software Movement and FSF
(1980s)
Aim: World where citizens can live with Free
Software alone
GNU Manifesto (1983)
Author: Richard Stallman
Launch of GNU Project (1984)
Develop Unix-compatible OS from scratch
Developed main Unix functions through 1990
Free Software Foundation (FSF) (1984)
Founder: Richard Stallman
Organization for managing copyleft software
GNU General Public License (GPL) V. 1 released (1989)
GPL Version 2 released (1991)
GPL Version 3 released (2007)

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.
Copyleft
Copyleft
Stipulates freedom of program and freedom of
modified or extended versions

Protects freedom of software from copyright


Does not abandon copyright
Manages copyright and ensures freedom of license
Right of copyright holder cannot be abandoned under
e.g. Japanese or German law, preventing notion of public
domain 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. 105
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Spread of the Internet
ARPANET launched by US Department of Defense
(1969)
NSFNET branched off from ARPANET (1986)
Network for research community
Linked computers at research institutes worldwide

Free Software drives growth of Internet


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

Internet opened to commercial interests (1991)


NCSA Mosaic Web browser conceived (1993)
Impetus for Internet boom
Growth of online e-commerce (since late 1990s)

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.
Birth of Linux (Early 1990s)
Linux released by Linus Torvalds in October
1991
Student at Helsinki University in Finland

Licensed under GPL


Free Software success story

Pioneered bazaar-style development model


Frequent beta releases in mid-development
Many developers send bug reports and patches

Driving factor in emergence of Free/Open-Source


Business success of Linux drew attention to
effectiveness of bazaar-style development and its
software, but Free Software movement was too radical
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.
Growth of Free/Open-Source; Launch of
Open Source Initiative (Late 1990s)
OSI (Open Source Initiative)
Founded by Eric Raymond and Bruce Perens
Strategic initiative to promote adoption by business
Release of Netscape source code impetus for founding
OSI

“The Open Source”


Proper noun focusing on software development model
Prescribed under the Open Source Definition
Increased recognition has led to greater misuse and
misunderstanding
Other terms being considered
OSS : Open-Source Software
FLOSS : Free/Libre/Open-Source 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. 108
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Penetration of Enterprise Market
(2000s)
IBM begins offering GNU/Linux support (1999)

Open Source Development Labs (OSDL) founded


(2000)
GNU/Linux development for telecommunications, data
center and enterprise desktop applications
Linus Torvalds joins OSDL (2003)

Consortium formed by IBM Japan, Hitachi, Fujitsu


and NEC (2001)
Development to extend functionality of enterprise
GNU/Linux

GNU/Linux deployment spreads to enterprise


backbone systems and financial institution
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.
Definition of FOSS
The software whose source code is published,
does NOT equal to FOSS
Insufficient, if ONLY publishing its source code

GNU's definition
“Free Software”

OSI's definition
“Open Source 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. 110
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
GNU Definition
“Free Software” is:
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 study how the program works, and
adapt it to your needs.
The freedom to redistribute copies so you can help your
neighbor.
The freedom to improve the program, and release your
improvements to the public, so that the whole
community benefits.
Abstract shape: Copyleft
Concrete shape: GNU General Public License (GPL)

OK to charge for distribution


Not all Free Software asserts copyleft
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. 111
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Definition by Open Source Initiative

Prescribed by the Open Free Redistribution


Source Definition (OSD) Source Code
Wider recognition leads to Derived Works
greater misuse of term Integrity of The Author's
Criteria for FOSS licenses Source Code
No Discrimination Against
Over 50 licenses approved
Persons or Groups
Based on Debian Free No Discrimination Against
Software Guidelines Fields of Endeavor
(DFSG) Distribution of License
OSD places greater emphasis License Must Not Be
on distribution criteria Specific to a Product
Free Software complies License Must Not Restrict
Other Software
with Open Source
License Must Be
definition Technology-Neutral
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. 112
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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

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. 113
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Software Licenses
Sales format for software actually for:
Media costs for distribution?
Commensurate cost of contract development?

Right to use software is generally purchased


Licenses
Types: Site license, volume account license, etc.

Licensing is an act of contract


Frequently takes shape as contract of adhesion
Shrinkwrap contract
User enters into agreement when shrinkwrap on package is
broken
Click-on and click-wrap contracts
User enters into agreement when button is clicked in
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.
Example of Click-On Contract
EULA (End User License Agreement)
Appears first time application is started
User enters into contract when Accept button is clicked

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.
GPL
GPL expresses copyleft as concrete license
GPL (GNU General Public License)
GNU Public License (GPL)
If derivatives of GPL’ed software are distributed, it
must be accompanied by source code
Protects freedom of software

Derivatives
Modified source code
Uses GPL’ed libraries
GPL v3 protects software freedom from
Patents
Mechanisms to prevent modification

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.
GPL and LGPL
LGPL (GNU Lesser General Public License)
GNU Lesser General Public License (LPGL)
Formerly “The GNU Library General Public License”
Features of LGPL (derivative licenses)
Derivatives based on modified source code must also
conform to LGPL
No license restriction for software using LGPL’ed libraries
through dynamic linking
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
clearly defined and software module split off
LGPL a product of compromise?
LGPL a departure from GNU ideals
Software that links to GPL’ed libraries must also conform to
GPL, which could discourage use
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.
BSD
Berkeley Software Distribution (BSD) License
BSD ... Berkeley Software Distribution
Much less restrictive
No protection of software freedom
Derivative work can be turned into proprietary
software
Advertising clause removed in June 1999

Modified BSD License


Omits advertising clause:
“All advertising materials mentioning features or use of
this software must display the following
acknowledgment. This product includes software
developed by the University of Carifornia, Berkeley and
its contributions.”

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.
MPL, Apache License, Dual Licensing

MPL (Mozilla Public License)


Mozilla: Open-Source Web browser
Permits closed license for standalone software
(applications, plug-ins)
Contains references to legal jurisdiction and patent issues
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)
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. 119
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
OSI-Approved Licenses
OSI certification mark
Only to be displayed for software suitably distributed
according to OSI-approved license
OSI-approved licenses
Denotes conformance with OSD; requires application
to OSI for license approval
58 licenses (as of June 30, 2005)
http://www.opensource.org/licenses/index.html
GPL-like licenses
GPL
MPL-like licenses
MPL, LGPL, CPL, Artistic License
BSD-like licenses
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.
(5) FOSS Development and the FOSS
Community
FOSS and the FOSS Communication
community FOSS projects are
FOSS is closely-linked to supported by
activities in the FOSS communication
community between development
participants
Development structure
How FOSS project FOSS developers
works? FLOSS survey: FOSS
How to participate in developers on-line
FOSS projects? survey, conducted from
2002 to 2004
Topics related to FOSS
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. 121
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FOSS and the FOSS
community
FOSS Distribution: Community to Users
Japan FOSS promotion forum's working group made a
detailed comment on FOSS distribution from
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

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. 122
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FOSS Distribution: Development
Community to Users
Report prepared by WG of Japan FOSS Forum
Findings of Support Infrastructure Working Group
Describes mechanism for FOSS distribution from
development community to users
Published: February 10, 2005
Contents of report
GNU/Linux distributions: Main FOSS distribution route to
users
Organizations central to GNU/Linux distributions
Development community; user support options and range of
support
Summary and major points to consider for FOSS
deployment
Member corporations of Support Infrastructure WG:
NEC, NTT Comware, NTT Data, OSDL, NS Solutions,
Turbolinux, Nihon Unisys, Novell, Nomura Research
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.
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

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. 124
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
User Communities
Prolific number of user groups, preceded by
name of FOSS
e. g. Top 10 results of Google search using Japanese
keyword User-kai (June 2005):
Japan PHP User Group
Japan MySQL Users Group
Samba Users Group Japan
Japan PostgreSQL Users Group
ja: Japan: OpenOffice.org Japan Users Group
Japan Apache Users Group
Japan Zope User Group
Japan GNOME Users Group
Japan UNIX Society
Python Japan User's Group
Following results: User groups for KDE, Mathematica,
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.
Development Structure
Cathedral and Bazaar-style development
Comparison between two types of development
method
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
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. 126
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Cathedral and Bazaar-Style
Development
Eric Raymond’s 1997 essay The Cathedral and the Bazaar
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
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. 127
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Roles of Project Members
Project leader: Authority to direct project
Core members: Authority to change source code
Project participants
Regular developers: Provide feedback about new features,
enhancements and bug fixes
Testers (advanced users): Test software and report bugs for
each release
Document authors: Create documents for general users and
developers

Other roles:
Resource development (non-programming)
Evangelism, PR (mailing list and/or Web site management)
Financial supporters and providers of development resources
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.
Development Resources
Project hosting services
Free/Open-source project repositories
SourceForge.net
BerliOS
FSF/UNESCO Free Software Directory
savannah.gnu.org

Software directory sites, software search engines


FreshMeat.net
Rpmfind.net, others

Other development resources


www.koders.com

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.
SourceForge.net
Operated by OSTG,
Inc. (Open Source
Technology Group)
http://sourceforge.net

Services
Project Web site hosting
CVS repository
Bug tracking system
Communication tools
Others services

Japanese version
SourceForge.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. 130
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
BerliOS, Free Software Directory

http://www.berlios.de/ http://directory.fsf.org/
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.
FreshMeat.net, Rpmfind.net

http://freshmeat.net/ http://rpmfind.net/
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.
Getting Involved in Projects
Find software that implements functions you want
Number of projects available online is nearly unlimited

Debug or extend functionality of software


If you find a function that doesn’t work or is missing
Take full advantage of released source code

From feeding back your results to joining a


development team
Get involved to advance software science and the FOSS
community

Find existing projects through a project repository


Make active use of development resources

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.
Tips for Getting Involved
Honest and factual reporting
Important to provide objective data when reporting bugs
Reproducibility
Configuration, what you were doing, and what happened
Include error messages, logs

Code you contribute is not just for you


Observe certain courtesies
Adhere to coding rules
Include comments so others can read and understand your
code

Include a description
Never send just your code (worst thing you can do)
Use simple and concise sentences to describe your 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. 134
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Project Management
Personal relationships are critical
Worldwide development
Enables round-the-clock development: requires use of
various communication tools
Progress of project accelerated by contributions from others
Requires communication skills
Requires proper assignment of roles based on contributions
to development
Share source code through the Internet
SourceForge.net lists 1,000,000 developers and 100,000
projects
Accelerate development through frequent releases and quick
revisions
Does not ensure quick completion
Ensure high quality and strong security through “eyes of
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.
Topics Related to FOSS Development

Agile development and similar methodologies


Some similarities are there between agile
development and FOSS development

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
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. 136
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Agile Development and Similar
Methodologies
Twelve core practices of Extreme Programming (XP):
1. Planning Game Continually plan in small units
2. Small Releases Short release cycles
3. Metaphor Use metaphors for ease of understanding
4. Simple Design Keep the design simple
5. Testing Prioritize testing in program development
6. Design Improvement (originally: Refactoring) Actively review code
7. Pair Programming Programmers write code in pairs
8. Collective Code Ownership Make all codes accessible to every programmer
9. Continuous Integration Continually test and keep the software running
10.Sustainable Pace (originally: 40-hour Week) 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

2, 8, 9, 12 are also important in FOSS development


However, No. 1, 3, 7 and 10 are difficult to implement under
FOSS 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. 137
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Stable Versions and Development
Versions
Bazaar model
Policy of fast and frequent releases
Conservative users inconvenienced by trial-and-error
approach to new features
Releases separated into stable versions and
development versions
Development versions: Source code heavily modified
For developers and cutting-edge users
Addition of new features
Odd version numbers: 1.1->1.3->1.5…
Stable versions: Changes kept to minimum
For general users
Incorporates bug fixes, security patches, etc.
Well-received features sometimes back-ported from
development versions without waiting for major update
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.
Project Forks
On rare occasions, projects can branch off
Examples of project forks
XFree86 -> X.Org
Emacs -> XEmacs
Sometimes projects fork and merge again
Emacs -> Mule -> Emacs
GCC -> EGCS (Experimental/Enhanced GNU Compiler
System) -> GCC

FOSS helps to maintain sustainability of


development but also allows project forks to occur

x-1.0 x-1.1 x-1.2 x-1.3 x-2.0 x-2.1


y-1.0 y-1.1

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.
Advantages of Free/Open-Source
Development
Fundamental advantages of program
development on FOSS platforms
Low cost (although Free Software does not mean free of
charge)
Comes with source code
High scalability (everything from embedded to mainframe)
Use existing Unix technology
Ability to use Unix technology and existing software assets
on low cost hardware (PC-compatible machines)
Increasing availability of development tools for
various applications
Mission critical fields
Image processing, multimedia, science and technology
computing, etc.
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.
Risks of Free/Open-Source
Development
Shortage of FOSS engineers
Demand outstripping supply (both for user enterprises and system
integrators)
Urgent need for human resources development programs, training
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
Support issue highly dependent on technical capabilities of user
company
Lack of experience
Newness of FOSS development model
Knowledge of how to collaborate with development community
still to come
Challenge of finding balance for securing intellectual property
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.
Communication
Who develops software?
Communication is critically important

Communication tools
On-line communication utilizing various tools
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

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. 142
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Communication Tools
Methods of online communication
E-mail exchange between developers
Mailing lists administered by project
Developer mailing list: xxx-devel@hoge.fuga.org
User mailing list: yyy-uers@foo.bar.baz
Message board on project Web site
IRC (Internet Relay Chat) and other chat systems
Wiki, developer blogs
Conventional tools to supplement online
communication
Telephone, fax, etc.
English is the universal language of communication
Overall communication skills more important than English
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.
Online Communication Methods: Pros
and Cons

Pros Cons
Familiar user interface Not suited to discussion
E-mail
between multiple persons
Familiar user interface Redundancy from copies
Mailing list
of all messages
Message Accessible, shows flow of Discussion tends to
board discussion become derailed
IRC and other Allows for instantaneous Not suited to in-depth
chat systems discussion discussions
Emphasis on Comparatively static
Wiki
documentation medium
Blogger can assert own Not designed for
Blog
opinions discussion
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.
Offline Communication
Power of offline communication
Significance of face-to-face communication
Non-verbal communication
Body and hand language
Expression, tone of voice, general mood, etc
Sometimes accelerates development through kinship
and understanding personalities of others
Limits of online communication felt during:
Eruption of flame wars
Observance or non-observance of netiquette
Difference between written and spoken words
Difficult to convey subtle nuances through writing
Could be that social gatherings are most
important

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.
Participating in Conferences
FOSS-related global conferences
Libre Software Meeting/ Rencontres Mondiales du
Logiciel Libre (France)
LinuxTag (Germany)
Ottawa Linux Symposium (Canada)
Many others such as DebConf, BSDCon, etc.
Actively interact with others
Advantages
Get word out about own project
Get advice about software design and implementation
Could lead to cooperation with developer teams
Mutual exchange between developers and users
Build personal network, exchange information, 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. 146
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FOSS Developers
FLOSS Surveys
Developer background and Involvement
When FOSS developers get involved in their
development?

Reason for getting/staying involved


What is the reason to participate in FOSS activities?

Type of involvement
What is their involvement in FOSS projects?

Global involvement
Realities that global communications on FOSS activities

Compensation
Do they receive money in return for their work?
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. 147
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FLOSS Surveys
What is a FLOSS survey?
Provides insight into conditions of FOSS developers
Analysis-based online survey

Free/Libre/Open Source Software online survey


FLOSS Survey (2002)
Conducted by Maastricht Economic Research Institute on
Innovation and Technology (MERIT)
FLOSS-US Survey (2003)
Conducted by Stanford Institute for Economic Policy
Research (SIEPR)
FLOSS-JP Survey, FLOSS-ASIA Survey (2003-2004)
Conducted by Mitsubishi Research Institute, Inc. (MRI)
Commissioned by Japanese Ministry of Economy, Trade and
Industry (METI)

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. 148
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Free/Libre/Open Source Software
Japanese Developers Online Survey
FLOSS-JP Survey
Survey aimed squarely at FOSS developers
Period: September 1, 2003 to November 1, 2003
Online survey and questionnaires distributed at conferences
Valid responses: 547

Survey content
FOSS/FS experience, level of involvement, personal profile
Initial impetus for getting involved in FOSS/FS development,
reasons for staying involved, personal views
Income from FOSS/Free Software development, sponsorship
income, etc.

For more about the survey, visit the URL below:


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.
Developer Background and
Involvement
Personal background
Late 20s/early 30s, mostly male
Majority possess undergraduate or master’s degree
Many software engineers, programmers, students and
university instructors

Position on FOSS or Free Software


Identify with FOSS: 43.7%
Identify with Free Software: 26.7%
Do not care: 29.6%
Time spent on development
(per week)
Two-thirds spend 5 hours or less

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.
Reason for Getting Involved
Initial reason for getting involved in project
Released program I wrote myself: 36.5%
Sent in patch: 16.2%
Exchanged e-mail with author: 10.7%
Replied to user’s question on mailing list: 10.5%
Reported bug: 10.5%

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.
Reasons for Staying Involved
Own motivation for continued development
(multiple responses allowed)
Learn new skills: 64.9%
Share knowledge and skills: 48.9%
Solve problems not possible with proprietary software:
29.2%
Improve FOSS/FS from other developers: 24.9%
Realize new idea for software: 22.5%

Two-part question
Own motivation
Opinion on motivation of 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. 152
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Type of Involvement
Main types of involvement (multiple responses
allowed)
Develop main functions: 52.1%
Write bug fixes: 36.0%
Write patches: 33.6%
Testing: 20.9%
Document translation: 14.3%
Document preparation: 14.0%
Packaging: 12.5%
Localization: 10.8%
Project management: 10.2%
User support: 9.8%

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. 153
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Global Involvement
37.7% involved in global development
community
Mainly active in Japanese community: 62.3%
Mainly active in global community: 16.1%
Involved in both: 21.6%

English ability
68.3% feel own ability is limited
English ability and level of activity
Not necessarily related
Depends on enthusiasm and patience

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.
Compensation
Only 26.8% of developers receive direct income
from FOSS activities
41.2% have profited indirectly from FOSS activities
Hired or found new job due to FOSS development
experience: 9.6%
Data indicating social recognition as technical
experience
Awareness of involvement in FOSS
development
School/employer not aware of own involvement in
FOSS: 40.8%
Preference: Desire to be involved in FOSS
development as part of work

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.
(6) FOSS Business
Reasons for interest in Entry of Major
FOSS business Vendors into FOSS
Relation between business
changes of IT Many manufacturers
environment and FOSS are moving in FOSS
business business market for a
variety of reasons
Factors driving FOSS
business
How is the market trend?

Types of system
development using
FOSS
Examining typical FOSS
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.
Reasons for Interest in FOSS Business

Changes in IT environment
Enormous improvement of S/W, H/W and highly
sophisticated network infrastructure (wide use of the
broadband Internet)

Changes in the software business


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

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. 157
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Changes in IT Environment
Advances in hardware and implementation of
software
Faster CPU speeds
Moore’s Law
CPU clock frequencies nearing their limits
Trend in technology development shifting to parallel and
distributed computing
Advances of software technology
P2P technology
Multimedia technology
Advances of software design methodologies

Spread of Internet
broadband (ADSL) connectivity
Now possible to freely download large-scale 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. 158
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Changes in the Software Business

Need for transformation of software business,


driven by rapidly shifting IT environment
Conventional software business
Package sales
Application development
System integration

New issues emerged by changes in IT environment


Widespread unauthorized use of illegally copied software
Increasing complexity of software
Numerous security incidents
Rapid obsolescence

What kind of business model is best?

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.
Shift from Package Sales to Services

Shift to service-oriented business


Emergence of ASP model
Provide services over Internet, using Web applications
Does not concern with its implementation
Use FOSS to enable early and low cost services

Other service-based businesses


Customization
System integration using FOSS
Selective use of FOSS in application development for
improved efficiency

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.
Factors Driving FOSS Business
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

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. 161
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Growth of GNU/Linux Market
Internet servers
Web, e-mail, DNS, firewalls
Already established in this field

Work group servers


File sharing, client-server systems
Deployment rapidly increasing as segment enters
growth period

Servers for backbone systems


High reliability servers for large-scale tasks
Finance, telecommunications, e-government, etc.
Studies by OSDL’s Carrier Grade Linux (CGL) working
group, etc.
Serious deployment began 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. 162
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Growth of GNU/Linux Market
(Cont’d)
Science and technology computing
Simulations, analysis, data mining
GNU/Linux share rapidly growing; field naturally suited to GNU/
Linux
>85% of Top500 run GNU/Linux
Top 5 all run GNU/Linux
Linux Networx (2300CPU, 7.6TFlops)
GNU/Linux used lately for grid systems research
Desktop GNU/Linux
Major factors: Spread of FOSS office suites, low cost PCs, etc.
Many issues to clear before spread of GNU/Linux in Asia
Embedded GNU/Linux
Dedicated devices for specialized applications: hard disk
video recorders, Sharp Zaurus PDA, OpenMoko phone

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.
GNU/Linux Market in Japan
Billion
Japanese Forecast for Growth of Linux Business in Japan
Yen
500

400
Linux SI
Support
210
Linux PF(HW,SW)
300
160

120
200
130
94
80 100
80
100
63
55
110
90
55 70
48
0
2003 2004 2005 2006 2007
Source: NEC Corporation

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. 164
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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
1000 2012 2133
1709 1863
1554
1363
500 1091
712 863

0
2004 2005 2006 2007 2008 2009 2010 2011 2012
Source: IDC, April 2008

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. 165
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Types of Systems Development
Using FOSS
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

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. 166
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Market Penetration and Reasons for
FOSS System Adoption
Adoption of FOSS systems on small-scale servers
Where are FOSS systems used?
(Source: Survey by Nikkei Business Publications)
Web servers: 60%
Work group file servers: 50%

Reasons for adopting FOSS systems


Low cost: 65%
Stable operation: 50%
Security: 30%
Ease of remote operation: 25%

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.
LAMP and LAPP Systems
Web service development accounts for large
percentage of Free/Open-Source development
Ranks high in FLOSS-JP Survey

Typical system configurations


LAMP systems development
GNU/Linux OS, Apache Web server, MySQL database, PHP
script language
LAMP stands for Linux, Apache, MySQL, PHP
LAPP systems development
GNU/Linux OS + Apache Web server + PostgreSQL
database + PHP script language
LAPP stands for Linux, Apache, PostgreSQL, PHP

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.
Java-Based Systems
Lower development costs
Use Free/Open-Source Tomcat in place of commercial
servlet engines
Side benefit of using Java: reduced OS dependency

System configuration
GNU/Linux + Apache + Tomcat
Comparatively small-scale systems
Used to implement systems comparable to LAMP systems
Large-scale systems
Extensive use of J2EE or frameworks
Use GNU/Linux for running environment
Frequently rely on commercial components to implement
complex business logic

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.
Conventional Applications for
FOSS Servers
Information sharing services, operation of portal
sites
Apache used for Web server
Various modules can be used to provide diverse services
Small-scale system integration
Work group server: Combination of standalone FOSS
servers provides adequate service level

Use of package LAMP systems


CMS, business application packages, etc. Closer
inspection frequently reveals LAMP or LAPP system
underneath

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.
Major Vendors Moving into FOSS
Business
On-demand computing and FOSS
IBM's GNU/Linux branding strategy
Situation for leading Japanese manufacturers

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. 171
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
On-Demand Computing and FOSS

Mainframes -> Open systems (client-server) -> Web


computing -> ?
Vision: networked servers provide on-demand
computing power
Computers used like water or electricity
Much like turning a faucet produces water or plugging into an
outlet provides electricity
No need to worry where water or electricity comes from
IBM's on-demand computing, Sun's utility computing
FOSS-based platform for on-demand computing
Compete through services, not infrastructure or packages
Reasons FOSS is suited for common platform: low vendor
dependency, modifiable by each company, low cost,
scalability
IBM strategically positioning itself behind FOSS in
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.
IBM’s GNU/Linux Branding
Strategy
IBM views itself as trend-setter for computer
industry
Pride as industry leader for over 30 years
IBM correctly predicted that GNU/Linux would
steadily gain popularity
However, GNU/Linux cannot be owned by any
company
Fear that IBM might lose its advantage
IBM decides to back GNU/Linux
Prevent GNU/Linux from going in its own direction
Build brand image where GNU/Linux is synonymous
with IBM
Can be interpreted as attempt to take over GNU/Linux
brand

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.
Situation for Leading Japanese
Manufacturers
Revenue source disappearing for leading
Japanese computer makers
Shrinking market for mainframes (except for IBM)
Shift from domestic Unix to overseas Unix

Increasingly difficult to maintain proprietary OS


1,000-3,000 engineers needed to develop and
maintain single OS

With GNU/Linux, core technology can be


maintained with just 100 engineers
Japanese computer manufacturers joined OSDL Japan
in 2001
As FOSS, GNU/Linux offers low risk of direct influence
from other companies
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.
(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

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. 175
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Types of FOSS Business
Category Description Leading Companies
Flagship Actively provide everything from contract IBM Japan, Fujitsu, NEC, Hitachi, HP
development of systems using own hardware and Japan, etc.
OSS, to software and hardware maintenance and
support
System integrator Contract development using OSS NTT Comware, NEC Soft, etc.
Distributor Packages sales of Linux with various types of OSS, Red Hat, Turbolinux, Miracle Linux,
commercial software, installation support, etc. etc.

In-house OSS Release own software as OSS; provide support Ten Art-ni, NaCl, ForeOneFirst, etc.
services and contract systems development
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
software; also provide contract systems Enterprise, F-Secure, etc.
development
Server sales Sales of Linux-equipped PCs and servers Dell, Toshiba, Sun Microsystems, etc.

Embedded Development and sales of OSS-embedded Sony, Matsushita (Panasonic),


information appliances, PDAs, mobile phones Toshiba, Sharp, etc.
Embedded Customization for OSS embedded use; provide MontaVista Software Japan, Lineo
development tools development tools and support services for fee Solutions, AXE, etc.
In-house business Use OSS for own business Amazon, Google, Rakuten, Livedoor,
use etc.
Education Provide exams and training courses for OSS LPI-Japan, Red Hat, Linux Training
qualification and certification Institute, 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. 176
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Flagship Business
(Major Manufacturers)
Receive comprehensive orders for everything from hardware to
software
Business of major hardware vendors
IBM Japan, Fujitsu, NEC, Hitachi, HP Japan, etc.
Use FOSS to drive down costs for development of large-scale
systems
Provide comprehensive solutions
Possess numerous own development packages
IBM in particular strongly pushing FOSS
Provides FOSS resource site and FOSS information
Numerous in-house FOSS projects
Supports GNU/Linux through full range of platforms, from IBM PCs to
mainframes and wearable PCs
Released 500 IBM patents to FOSS community
Reason for market participation by major hardware vendors
System integration anticipated to generate annual profit of US$1.1
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.
System Integrators
Extension of existing business, only platform has changed
Drive down development costs using PC servers and FOSS
Also reduces vendor dependency
Enables small- and medium-sized vendors to compete as
principal contractors, but competition increasingly fierce
Biggest hurdle is securing FOSS engineers
FOSS deployment requires advanced technical skills
Requires skills to combine multiple FOSS, modify FOSS, keep
up with fast pace of change, etc.
Easier to retrain Unix engineers
Problem: Many engineers only know Windows development
Shortage of business applications
Development above LAMP level often requires ground-up
development
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.
NTT Comware
Conducts development to improve GNU/Linux reliability
Cluster solution for non-stop GNU/Linux servers
Ultra Monkey load balancing software (FOSS)
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
Member of OSDL
Contributes to development of Carrier Grade Linux (CGL) for
telecommunications carriers
GNU/Linux consulting, system building and operations
New markets for GNU/Linux deployment
Apartment entry management system using fingerprint
authentication and L-Box embedded GNU/Linux server
Prototype university business system for Waseda University
Developed using GNU/Linux, PostgreSQL, PHP
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.
Nihon Unisys
Provides high reliability comparable to Unix
Alicia Ø Advanced Linux Crash-dump Interactive Analyzer Ø
Sponsored by Japan FOSS Forum’s Development Infrastructure Working
Group
Provides environment for kernel crash analysis
Improves reliability of enterprise GNU/Linux
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
agency

Provide applications using FOSS


CFIVE learning management system for higher education institutions
Co-developed with University of Tokyo’s Information Technology Center
(ITC)
Learning management system (LMS) for e-learning; released as FOSS
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.
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

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. 181
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Distributors
Sell packaged FOSS
Manage software to sell on ease of use
Provide automatic software updates
Develop proprietary installers or package managers
Localize (Japanese language versions)
Bundle with commercial software and commercial
resources (fonts, etc.)
Provide support services

Critical to decide on method of creating added


value to drive sales
Packing software onto CD-ROM translated into value
when networks were not as accessible
Walnut Creek’s distribution business
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.
Ebb and Flow of Distributors
DistroWatch.com
Portal site for GNU/Linux
distributions
Also lists select BSDs,
etc.
List of worldwide
distributions
Over 300 GNU/Linux
distributions listed

Provides various
information about
distributions
Reviews, new release
information

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. 183
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
In-House FOSS Business
Develop own software and release as FOSS
Effectively used by enterprise consortia
Primarily business application software for specific
applications

Case studies
Network Applied Communication Laboratory (NaCl)
Developer of Japan Medical Association ORCA system;
deploying ORCA as FOSS receipt computer
Ten Art-ni
Garagardoa table reservation system for restaurant
industry
ForeOneFirst
Francine Web POS 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. 184
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Network Applied Communication
Laboratory (NaCl)
Developer of software for ORCA standard
receipt computer from Japan Medical
Association (JMA)
Commissioned by JMA Japan Medical
Drives down cost of expensive receipt Association
order
computers, by deploying PC servers and FOSS
Network
JMA proprietary license, resembling GPL Center NaCl

Adoption rate development


Started as confidential project in 2000 ORCA
use,
Official launch (March 2002) improve
Deployed at 1,279 facilities (as of July 2005)
Certified Certified Certified
partner partner partner
ORCA business over 100 system deploy,
integrators authorized by JMA for ORCA maintenance
deployment and contract maintenance
Hos- Hos- Hos- Hos- Hos- Hos- Hos-
Some system integrators have released pital pital pital pital pital pital pital

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.
Ten Art-ni Corporation
Corporate member of OSCAR Alliance
Voluntary non-profit association to promote enterprise
FOSS deployment
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

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. 186
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
ForeOneFirst Co., Ltd.
Francine Web POS system
Sought to increase sales as proprietary
product, but product recognition was low ForeOne-
provide
Released by OSCAR Alliance (June 2003) First
FOSS
OSCAR proprietary license, resembling deploy,
operation,
GPL maintenance FOSS
Main functions: cash register, sales support
Cus- Cus- Cus-
history, product ordering, inventory ¿Ø
tomer tomer ¿Ø
tomer
management, store management,
employee attendance management NPO OSCAR Francine
Francine business Alliance use,
improve
Promote sales through association with member member
OSCAR Alliance brand Vendor Vendor
ForeOneFirst ultimately acts as core deploy,
operation,
provider of deployment, customization maintenance
and support services
Cus- Cus- Cus- Cus-
ForeOneFirst also provides support tomer tomer tomer tomer
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.
FOSS Specialization
Conduct business focusing on specific FOSS
Key factors to success: Ability to hire top engineers
from community and collaborate with community
Requires engineers with advanced skills

Case studies
VA Linux Systems Japan (Linux kernel, NFS)
Zend Japan (PHP)
SRA (PostgreSQL)
SoftAgency (MySQL)
Sendmail

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.
SRA, Inc. Japan
Advantages of independent software
development vendor
Not tied to specific product
Staffed by many Unix engineers

Conducts business focusing on PostgreSQL


Collaborates with FOSS community and major
developers in Japan and abroad
Provides expertise
Sells Windows native version
Provides tuning and other support services for
deployment and operations
Implements exams for database certification
Raises profile by publishing articles in magazines and
books

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.
Zend Japan, Ltd.
Conducts business focused on PHP
Parent company Zend Technologies founded by main
developers of PHP
Capitalizes on technical expertise as original
developers of PHP
Offers PHP development environment
Provides expertise to improve PHP performance
Script compiler
Caching feature
Web systems development using PHP
Enterprise systems
SugarCRM on Zend: Customer management application
System pairing J2EE with PHP 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. 190
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Good-Day Inc.
Contract systems development with aggressive
support for FOSS
Also offers advanced technical services such as tuning
for GNU/Linux and PostgreSQL-based systems
Staffed by FOSS engineers to provide synergistic
benefits

Leading example as FOSS specialist vendor


Employs Sylpheed developer and provides financial
backing
Directly sponsors FOSS development for Japanese
environments
Works with OpenOffice.org
Sales and support of laptops loaded with FOSS desktop
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. 191
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Package Software Business
Proprietary package software made to support GNU/
Linux
Primarily implemented for server software to expand
platform support
Clear-cut business model for proven software
Product must be clearly differentiated
Without differentiation, users will choose FOSS
Barriers for new software
Requires strong degree of differentiation in terms of performance,
features, ease of use, development environment, etc.
Market established for network, server and storage
management
Opportunities in business knowledge field (accounting, legislation,
administration, etc.)
Not a strength of FOSS developers
Opportunity to improve interface for beginner users
Business opportunity to develop GUI for general users, that
works with
An Introduction to Free/Open-Source existing FOSS, etc.
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Software
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
192
Server Sales and Embedded Business
Server sales
Sales of own hardware pre-installed with GNU/Linux
Toshiba, Dell, Sun Microsystems
House-brand PCs
Outside of servers, other applications include factory
automation, specialized applications, etc.

Embedded business
Information appliances
Media servers, hard disk recorders, PDAs, mobile
phones, etc.
Consumer Electronics Linux Forum (CELF)
Established: July 2003
Association to study GNU/Linux standards for consumer
electronics from Matsushita (Panasonic), Sony, etc.
Industrial equipment
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.
Embedded Development Tools
Business
Customization of FOSS for embedded systems; sales
of development tools and provision of support
services
Case studies
MontaVista Software Japan: MontaVista Linux
Lineo Solutions: uClinux
AXE: axLinux, Shikigami
Red Hat: Contract porting of GNU/Linux
FOSS embedded business offers excellent
opportunities for contract development
Since platform is not a differentiating factor, CE
manufacturers are pushing for common platform using
FOSS
Steady stream of business for contract development
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.
Proprietary Business Use
Deliver own services at low cost by deploying
GNU/Linux for servers that demand high
reliability
amazon.com
Google.com
Rakuten
LiveDoor

FOSS also useful for rapid deployment of own


services and for modification
Take full advantage of modifiable source code
Employ many 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. 195
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Amazon.com, Google
Amazon.com
Uses multiple HP GNU/Linux machines
Distributed Web server caching
Supports over 20 million product inquiries per hour

Google
Fault-tolerant system based on low cost IA servers
Proprietary automatic failure detection system based on
Red Hat Linux
Distributed system to account for high rate of hardware
failure and distribution of data across multiple hard disks
Google File System for filing data
Map/Reduce Framework for I/O scheduling
Global Work Queue for scheduling queries

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.
Rakuten, LiveDoor
Rakuten
Deploys FOSS extensively for its virtual malls
WebLogic and Oracle licenses are costly
FOSS deployed based on balance of service and cost
Primarily uses PHP and MySQL, also PostgreSQL and Tomcat
Software lacks some functions of commercial software
Issues: Shortage of engineers and test suites, frequent version
upgrades

LiveDoor
Deploys FOSS extensively for its portal sites
FOSS suited for rapid deployment of services
Strategically involved in GNU/Linux distribution business
Purchased Turbolinux unit from SRA and turned into
subsidiary
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.
Education Business
Peripheral business within software industry
Courses, materials
Adequate potential for business as number of users
and developers increases
“Dekiru” series of how-to books are expected to have
constant sales, regardless of software

Certification business
Numerous GNU/Linux certifications already exist
LPIC, RHCE, Turbo-CE, CNA, ComTIA Linux+
Other FOSS certifications have been introduced
¿ ¿¿ Ø PostgreSQL
Rapid growth in number of certification courses offered
by technical schools, 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. 198
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
GNU/Linux and FOSS
Certification
Certifications for GNU/Linux engineers
All certifications aimed at network administrators

FOSS certifications
Main purpose: Train engineers to use company’s
software
Testing
Organization Certification Level Nutrality Cost
Method
LPIC Level 1 Entry 30,000 Yen
NPO LPI Japan Online exam. Nutral
LPIC Level 2 Middle 30,000 Yen
Turbo-CE Entry Vendor 31,500 Yen
Turbolinux Online exam.
Turbo-CE Pro Middle depended 21,000 Yen
RHCT Middle Practical Vendor 94,500 Yen
Red Hat
RHCE Expert exam. depended 47,250 Yen
CompTIA Linux+ Novice Online exam. Nutral 27,825 Yen
Zend PHP Vendor
Zend Japan Entry Online exam. 33,500 Yen
Certification depended
PostgreSQL CE
Entry 13,650 Yen
Silver Vendor
SRA Online exam.
PostgreSQL CE depended
Middle 18,900 Yen
Gold
An Introduction to Free/Open-Source SoftwareCopyright © 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.
Training Courses
Two main types of GNU/Linux/FOSS training courses
Network administrators
Courses basically designed to complement certification exams
such as LPI, etc.
Developers of Web system software
LAMP/LAPP systems development
Increasing number of courses for development of Java
application servers

IT schools and major IT vendors


Offer GNU/Linux/FOSS training with other courses
Mostly short courses ranging from few days to 1 or 2 weeks

Schools
Technical schools: 1-3 year GNU/Linux/FOSS engineer training
programs
Professional graduate schools: Development of advanced FOSS
engineers Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
An Introduction to Free/Open-Source Software 200
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved.
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
(8) FOSS Government Policy and E-
Government
Reasons for FOSS promotion by national and local
government
Considering reasons why does government promote
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.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 201
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Reasons for FOSS Promotion by
National and Local Government
Reduce costs and vendor lock-in
Efforts to make sense in government procurement

Transparency of procurement and security


Transparency of procurement and ensuring of security
through the utilizing the nature of FOSS are expected

Fostering the development of domestic industry


FOSS critical to promoting national IT Industry

Overcoming the “Digital Divide”


FOSS is very efficient with low investment for the
introduction of 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. 202
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Reduce Costs and Vendor Lock-In

Reduce costs
Thought to be chief advantage of deploying GNU/Linux
Nearly always true when replacing Unix
TCO gap with Windows is small and debatable
Focus turns to maintenance costs
Maintenance of middleware and applications; cost of
administrative engineers
Purpose of government to spend taxes by generating
and providing public services; governments seek to
deploy FOSS for improved efficiency

Prevent vendor lock-in


Important from standpoint of fairness
Extreme example of vendor lock-in: “One yen bid”
-> See Vendor Lock-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. 203
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Transparency of Procurement and
Security
Transparency necessary for government procurement
WTO Ministerial Conference
Established Working Group on Transparency in Government
Procurement Practices
Ensure transparency and competitiveness of public
procurement
Issues
Closed public procurement
Prevent government-initiative collusion
Since source code for FOSS is released, using FOSS promises to
ensure transparency of procurement

Security
China cites need to ensure national security as one reason
for promoting FOSS
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.
Fostering the Development of
Domestic Industry
Critical mission of governments to promote
domestic IT industry
IT vendors from US dominate almost all of package software
market
Governments dislike dependency on foreign sources for
high revenue, core software
Desire to avoid “black boxing” of infrastructure technology
Strong FOSS emphasis in Europe and Asia
Germany: Home to leading FOSS vendors such as SUSE, KDE,
OpenOffice, etc.
China: Announced policy to restrict government procurement to
domestic software
Japan: Local governments active in fostering
local IT industry
Hokkaido, Okinawa, Gifu, Nagasaki Prefectures
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.
Overcoming the Digital Divide
Digital divide
Digital divide created by gaps in income
Digitization among high-income earners
Low-income earners cannot obtain digital equipment

FOSS effective in promoting digitization among


low-income earners
Enables IT advancement with limited funds
Also critical to provide cheap hardware and affordable
education

One of the acute problems facing Southeast Asia


and South Asia in particular
Overcoming the digital divide in developing countries
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.
Trends in Europe
European Union
Promoting FOSS in aspects of lower cost and
interoperability

Germany
Entering the next stage of “how to deploy FOSS” from
the initial stage of “why FOSS”

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

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

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. 208
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
European Union (cont.)
UNU-MERIT FOSS economic impact study (2006)
Estimates value of FOSS at 12 billion Euro
Expects FOSS-related economy to account for 4% of
GDP in the EU
Identifies FOSS as area in which SMEs find good
environment
Expects FOSS-related jobs to counter brain-drain
towards USA and to close IT gap between EU and USA

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. 209
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Germany
Germany at forefront of FOSS deployment
Debates focused today “How to deploy FOSS”
Case studies
Federal Ministry of Interior signs comprehensive procurement
contract for IBM/SUSE Linux machines (June 2002)
Enables low cost procurement of GNU/Linux servers
Federal Ministry of Interior announces guidelines for FOSS
migration (July 2003)
Contains list of replacement software and precautions for FOSS
migration, for desktop through to server environments
Actual FOSS migration increasing at local government level
Munich city decides to migrate 14,000 machines to GNU/Linux (May
2003)
Schwäbisch Hall district migrates 400 machines to GNU/Linux
(2002-2004)
Audit office of Mecklenburg-Western Pomerania completes
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.
Case Study: Munich Municipal
Government
Munich city council decides to undertake GNU/Linux
migration for 14,000 PCs used by 16,000 users (May
2003)
Reasons
To reduce costs? (Not the biggest reason)
IBM/SUSE proposal: $39.5 million
Microsoft proposal: $36.6 million, later cut to $23.7 million
Avoid dependency on specific products
Promote market competition
“Soft” migration
Gradual migration overAug.
5 ­years
D ec. 2002 client survey conducted
M ay 28, 2002 m igration to O SS resolved at city council
Replace with Web- Jun. 2002 ­ Jun. 2004 detailed planning w ith IBM  and SU SE
Jun. 16, 2004 authorized at city council
based systems Jun. 2004 ­ Linux m igration project `LiM ux' began

Emulators also to be Aug.  2004


Sep, 2004
project stopped bacause of patent issue
project restarted
used initially Jan. 2005 trial m igration started 
(VMWare, 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. 211
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
United Kingdom
UK: Leaning toward FOSS from neutral stance
FOSS Policy recommends government procurement of
FOSS (July 2002)
Office of Government Commerce (OGC) decides to
deploy GNU/Linux for large-scale system (April 2003)
OGC issues report on FOSS trials (October 2004)
FOSS considered to be realistic desktop alternative
FOSS anticipated to reduce costs; no issues with
interoperability

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. 212
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
France
France: Independent approach to FOSS
deployment
Ministry of Culture and Communications to conclude
across-the-board GNU/Linux migration in 2005
French government establishes ATICA (now ADEA) to
promote FOSS (July 2002)
Large-scale deployment of FOSS desktops studied as
part of ADELE strategic plan for electronic
administration (February 2004)
Calls for GNU/Linux migration on 5-15% of desktops by
2007
Defense Ministry signs 3-year, 7 million Euro contract
with consortium of Mandrakesoft and other companies
to gain CC-EAL5 certification (September 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. 213
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Trends in the United States
US government
Although US Federal government has “No Policy”,
actual FOSS adoption are increasing

State governments
FOSS deployment is gaining momentum

Case Study: State of Massachusetts


The policy stated that new application should adhere
to open standard and FOSS
They have FOSS-based application to be developed
under the new policy
Released in the repository, GOCC (Government Open
Code Collaborative)

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.
US Government
“No policy” stance by US federal government:
Strong opposition by leading IT vendors

Actual FOSS deployment by US federal government


is increasing
FOSS already deployed by 250 government sector institutions
(May 2002)
Government reports recommend FOSS deployment
PITAC recommends FOSS for supercomputers (September 2000);
MITRE recommends FOSS for Defense Department (October
2002)
FOSS inclusion in government procurement
standards
Defense Department issues memo containing guidelines for
FOSS acquisition (June 2003)
CC-EAL3 certification acquired for IBM/SUSE platform (January
2004)
An Introduction Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
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.
State Governments
Movement to deploy FOSS among some state
governments
Oregon, Texas, Hawaii and other states have proposed bills for
FOSS deployment, which were rejected or shelved
State of Massachusetts introduces preferential policy toward
FOSS (September 2003)
Policy later toned down to consider “all possible alternatives
– proprietary, open source, and public sector code sharing –
in determining best value solutions” (January 2004)
Austin City implements GNU/Linux and OpenOffice.org trials
(December 2003)
Start of collaborative project to develop FOSS for e-
government, led by Massachusetts State (June 2004)
The Government Open Code Collaborative
California Performance Review Commission recommends
increase in FOSS deployment by California state government
(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.
Case Study: State of Massachusetts

Virtual Law Office


Cost-cutting move necessitated by financial difficulties due to drop
in state tax revenues
CIO meeting proposes policy to deploy open standards and
Free/Open-Source
Migration of legacy systems to GNU/Linux platform
SUSE Linux running in virtual machine on mainframe
Red Hat Linux Advanced Server running on IA server

GOCC (Government Open Code Collaborative)


Launched in December 2003
Framework for sharing source code with other state governments
Reduce costs by sharing code with other states
Enables continued collaborative development through
community effort
MIT and Harvard provide technical and legal support
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.
Trends in Asia
East Asia
China, Taiwan and Koria
Northeast Asia FOSS Promotion Forum: cooperation
between Japan, China and Korea

Southeast Asia
Thailand, Malaysia, Philippines and Vietnam
Asia FOSS Symposium: held twice a year

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. 218
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
East Asia:
China, Taiwan and South Korea
China
National GNU/Linux strategy
Government-led development of Chinese versions of
GNU/Linux
Red Flag Linux, Yangfan Linux, Qihang Linux
Focus on human resources development
GNU/Linux “1+1+1” Project

Taiwan
Many initiatives to promote FOSS
Hosts many FOSS international conferences

South Korea
Flood of GNU/Linux distributors and ongoing market
realignment
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.
Northeast Asia FOSS Promotion Forum
International collaborative project by Japan, China and
South Korea
1st Forum: Beijing, China (April 2004)
2nd Forum: Sapporo, Japan (July 2004)
3rd Forum: Seoul, Korea (December 2004)
Established joint working groups that engage in
activities
Technology Development & Assessment (WG1), Human
Resource Development (WG2) and Study on Standardization &
Certification (WG3)
Supporting organizations formed in each country
Japan FOSS Promotion Forum created in Japan
Secretariat: Information-Technology Promotion Agency, Japan
(IPA)
METI, Ministry of Internal Affairs and Communications (MIC), and
Japan Information Technology Services Industry Association (JISA)
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.
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)
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. 221
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Southeast Asia:
Philippines and Vietnam
Philippines
Anti-piracy a driving factor for promoting FOSS
Rampant software piracy (reportedly over 60% of all
software)
FOSS promoted as part of 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.

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. 222
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Asia Open Source Software
Symposium
Jointly sponsored by Center of International
Cooperation for Computerization (CICC), Japan and
organizations in host nations
History
First Symposium: Phuket, Thailand (March 2003)
2nd Symposium: Singapore (November 2003)
3rd Symposium: Hanoi, Vietnam (March 2004)
4th Symposium: Taipei, Taiwan (September 2004)
5th Symposium: Beijing, China (March 2005)
6th Symposium: Colombo, SriLanka (September 2005)

Features of Asia FOSS Symposium


Impact on host nation
Discuss topics related to FOSS
Share information about status of FOSS promotion in each region
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.
Trends in National and Local Japanese
Government
FOSS Policies by Ministry of Economy, Trade and
Industry
Survey on FOSS usage and FOSS deployment guidelines
FOSS feasibility trials
IPA sponsorship of FOSS development by private sector
FOSS policies in e-government by Ministry of Internal
Affairs and Communication (MIC)
Study group concerning “Secure OS”
Collaborative Outsourcing / e-Municipality Promotion
Strategy
Trends in FOSS deployment at local government level
Part of regional development policy
Avoidance of vendor lock-in and emphasis on cost
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.
FOSS Policies by Ministry of Economy,
Trade and Industry
Policies to promote Japanese IT service industry and software
industry
Current massive trade deficit in software
Loss of technical capabilities from erosion of Japanese
infrastructure software
Shortage of human resources development for Japanese
engineers, due to drastic increase of FOSS market
FOSS usage survey and guidelines for studying FOSS
deployment
Wide overview of major FOSS, FOSS licensing and business
models using FOSS
IPA’s Infrastructure Building Program for Open Source Software
Funds development related to perceived areas of FOSS weakness
Enterprise technologies
Embedded field
Desktops
Issues unique to Japanese language (fonts, printing, character encoding)
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. 225
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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

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. 226
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Trends in FOSS Deployment by Local
Governments
FOSS deployment for e-municipality platforms
FOSS operating environments using Java application packages
Urayasu City
Portal sites for local residents
Yamanashi, Kagawa, Okinawa Prefectures, etc.
Release of software developed under MIC’s collaborative
outsourcing project
Hokkaido, Shizuoka Prefecture
Deployment for internal systems
FOSS servers widely deployed as Web servers, mail servers, etc.
FOSS deployment for desktops
Sumoto City
GNU/Linux servers deployed as gateways to local government WANs
Deployed by 800 local governments

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. 227
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Reasons for FOSS Deployment by
Local Governments
Systems procurement by local governments and issues for
local IT firms
Ever-increasing concentration on centralized vendors due to too much
emphasis on established suppliers
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
Tendency to emphasize established suppliers, due to difficulty of separating
systems design, development and operations
Difficulty in judging costs
Regular rotation of IT systems personnel a problem
Regular personnel transfers leads to lack of specialized IT knowledge
Switch to long-term assignments for personnel with highly specialized
knowledge
Implement resident services and practice information
disclosure
Deploy systems according to needs of each situation, without being
limited to existing systems
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.
Systems Procurement by Local Government
and Issues for Local IT Firms
Situation for local governments (LGs)
C reated by M R I based on 
LGs may limit bidding to established suppliers m aterials of N agasaki Prefecture
Specifications for a public tender are left up to vendors
Blanket contracts that cover from defining
requirements to systems operations
Additional development is automatically awarded to the same
vendor

Prevent LGs from directly awarding contracts to local IT vendors


LGs are forced to accept expensive systems that suit the needs
of vendors

Situation for local IT firms


Local IT firms are subcontractors to major vendors
The subcontractor role tends to prevent local IT firms from
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

Tiered subcontractor structure is accelerating


due to the shortcomings of local IT vendors
The issue is compounded by the growing scale and
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.
Case Study: Nagasaki Prefecture
C reated by M R I based on 
Systems Procurement by Nagasaki Prefecture m aterials of N agasaki Prefecture

Prefecture staff Divide into Bidding & Order Local firms (2*N)
bidding unit (N) A system Development
Development Spec. Development Spec.
(Requirements, Basic design)
Test Spec. Testing
✗ System development is separated by function
✗ Specification requires the use of FOSS B system Development
Development Spec.
Bidding & Test Spec. Testing
Local firms Order
C system Development
Test Specification Development Spec.
Test Spec. Testing

Ø Benefits of Using Detailed Specifications Separated by Function Ø


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

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.
Case Study: Hokkaido Government

Activities of FOSS Communities


Ø HOSS: Hokkaido Open Source and Security (NPO)
Ø e-Municipal project / Study Group on Open Source
Ø Local User Communities
- DOLUG : Hokkaido Linux User Group
- PostgreSQL User Group Hokkaido Branch
- Zope User Group Hokkaido Branch
- NoBUG: Hokkaido *BSD User Group

Support from local governments


Commitment from the University Ø establishment of FOSS venture firm (Technoface)
Ø Hokkaido Univ. Ø Hokkaido local govt.
(Open System Engineering Course) “declaration of departure from Windows”
Ø Industry-University collaboration project: Ø Ebetsu City “Branding Dictionary” project
OpenSOAP Ø Large scale GNU/Linux adoption to
Hokkaido high-school net

FOSS related firms


Ø Technoface: SIer based on OpenSOAP
Ø IP telecom : IPT-Linux and remote surveillance service
Ø Cyber blue : Development of Open Source GIS

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.
Education and FOSS
IT use in educational settings
Fundamental idea to use IT equipment in the field of
education

Situation in Japanese schools


Japanese public schools suffer from a lack of funding to
manage IT equipment
Raising expectations for utilizing FOSS

Aim of software vendors


Motivated by a desire to invest in students as future
users

Case Study: FOSS trials in education


Some trial projects to use FOSS in educational field
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.
IT Use in Educational Settings
Area of emphasis under e-Japan strategy
Advancement of Human Resource Development and
the Promotion of Education and Learning
e-Japan Priority Policy Program 2004
Digitization of school education
Improve IT environment in schools
By FY2005, provide 1:1 ratio of PC s to students in 
com puter labs and 5.4 ratio of students to each 
educational PC  in regular classroom s
IT use in education not information literacy
education
Use of IT in education, not education of IT itself
Except for “Information Study” curriculum in upper
secondary schools
IT use aimed at boosting achievement of fundamental
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.
Situation in Japanese Schools
Inadequate funds to deploy, Instruction using IT
administer and operate IT equipment
equipment Various experimental
Administration of equipment programs are being tried
Administration of equipment Implementation varies widely
frequently left up to select depending on school board,
group of knowledgeable school and teacher
teachers Active use of multimedia
Imposes extra workload on content
teachers Reaction to FOSS from
Volunteer staffs from PTA students
committees or alumni Able to quickly take in new
sometimes build systems ideas
Inadequate safeguards for Some teachers commented
security and privacy, despite that they learned new things
sensitivity toward these issues from students

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.
Aim of Software Vendors
Students and children seen as future users
Type of enclosure strategy
Reasons for academic pricing
Pretext: For cash-strapped students
Real reason: Capture users at early stage

Issues with Information Study textbooks


Examples used to illustrate how applications work
Pros and cons of describing specific applications
Meaningful to teach operating methods specific to
applications?
Is it fair to teach students about specific 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. 235
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Case Study: FOSS Trials in Education
IPA-sponsored field tests of FOSS desktops in educational
institutions (2004)
GNU/Linux desktops deployed at eight elementary and lower
secondary schools in Tsukuba City and Gifu Prefecture
300 machines deployed and used by 3,000 students
Knoppix trials
Knoppix used by 800 students at eight schools across Japan
(elementary/upper secondary schools, one technical school and
several universities)
Norway’s Skolelinux project (2003)
Skolelinux deployed and evaluated at four elementary and lower
secondary schools in Norway
http://www.skolelinux.org/portal/documentation/reports/
UK’s Open Source Software in Schools project (2004)
FOSS deployed and evaluated at 15 elementary and lower
secondary schools in UK
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.
(9) Feature of FOSS
Performance Security
How is performance of Is the security of FOSS
FOSS products? product high or low?

Cost Educational benefits


Is it possible to reduce What is educational
cost by FOSS? efficiency from FOSS?

Vendor lock-in Sustainability


What is vendor lock-in? Importance of
How to avoid vendor sustainable software
lock-in by adopting development
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. 237
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Performance
Innovative and fast development
FOSS is suited for innovative development
Developing speed of active FOSS project is amazingly
high

FOSS performance testing in Japan


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

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. 238
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Innovative and Rapid Development

Reasons for innovative development


Motivation of FOSS developers
Create software that developers want
Create software unlike any other
Localization tends to be more easily implemented
Localization undertaken by actual users that desire
localization

Rapid pace of development


Projects fundamentally driven by enthusiasm of
developers
Although development sometimes takes place through
business
Desire to quickly develop software that developers want
Large projects involve worldwide developer base
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.
FOSS Performance Testing in Japan

Performance evaluations implemented by working


group of Japan FOSS Promotion Forum
Results of Development Infrastructure Working Group
DBMS benchmark evaluation using OSDL DBT-1
Benefits of tuning confirmed
PostgreSQL evaluation using OSDL DBT-3
JBFOSS performance and reliability evaluation using
SPECjAppServer2004
Performance of WebLogic surpasses JBFOSS
Evaluation and bottleneck analysis of Linux kernel using LKST
Development of crash analysis tools and evaluation of FOSS
performance and reliability
Evaluation of Java application layer
Evaluation of database and OS layers
Members of Development Infrastructure Working Group
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.
Cost
Myth of low cost
FOSS is not almighty to reduce costs

Evaluating total cost of ownership (TCO)


Cost evaluation strongly depends on assessor's idea

Cost reduction factors


What items can be candidate for cost reduction factors
by FOSS adoption?

Cost disadvantage of FOSS


What are disadvantage points in FOSS adoption?

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. 241
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Myth of Low Cost
Presumed to be chief advantage of GNU/Linux
deployment
Nearly always true when replacing Unix
Tsutaya Online: 1/4 to 1/5 cost reduction
Amazon.com: Saved $17 million
TCO gap with Windows is small and debatable
Inadequate experience and lack of thorough discussion
for meaningful comparison of desktops costs
Focus ends up being on maintenance costs
Maintenance of middleware and applications
Cost of administrative engineers
Once technology is created to easily manage multiple
desktops
Desktop tug-of-war between Windows and 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. 242
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Evaluating Total Cost of Ownership

TCO (Total Cost of Ownership)


Total of all costs required to maintain, administer, and
adequately operate systems

Elements contributing to TCO


Deployment costs, operating costs, training costs, etc.

Room to calculate TCO as desired, by changing


standpoint of evaluation
Microsoft’s Get the Facts campaign: How are the facts
represented?

Various assumptions are suspect


Proper evaluation of TCO requires concrete
assumptions about how system will be used
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.
Cost Reduction Factors
Initial deployment costs
Cost of acquiring distribution (only one copy needed)
Licensing costs
If proprietary software is required, only license for that
software must be purchased

Upgrade costs
Usually very low
Frequently expensive for proprietary software

Hardware costs
Runs adequately on older hardware for certain
applications
Systems can be tuned to adequately run on low spec
PCs

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.
Cost Disadvantages of FOSS
Frequently identified cost disadvantages
Training costs
Users are generally conservative and resist migrating from
a familiar environment to a new environment
Lack of textbooks and reference material for mastering
FOSS
Support costs
High cost of support due to limited supply of FOSS
engineers
Costs are going to decrease as FOSS becomes more common
Systems modification costs
Servers may need to be modified
Some systems only designed to work with specific clients
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.
Vendor Lock-In
What is vendor lock-in
An environment or situation that locks in users to
products from a specific vendor
What are the problems with vendor lock-in?

Examples of lock-in business strategies


Vendor lock-in is found not only in IT market

Separation of Interface and Implementation


Promoting fair competition among implementations
from each vendor, in conformity with standard
interfaces

FOSS and open standards


Reasons why fair competition requires more than
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.
What is Vendor Lock-In
Vendor lock-in
Locks in user environment to specific vendor’s
products
Type of customer retention strategy
Can lead to endless vicious circle of biased
procurement
Forces users into regular version upgrades
Monopoly can invite lower quality and higher costs
Need to maintain compatibility with archival assets
Eliminates participation by other vendors through use of
closed specifications

Used to be an excellent business model


Users: Buy long-term support and peace of mind
Vendors: Stable revenue and growth of market share

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.
Examples of Lock-In Business
Strategies
Rewards programs Mobile phone carriers and ISPs
Leading examples Frequently introduce new
Credit card companies models and services
Frequent flier programs Users do not wish to change
Mail order companies and mobile numbers and e-mail
mass merchandisers addresses
Everyday examples Introduction of mobile number
portability may reduce lock-in
Frequent buyer cards
advantage
from retailers
MNP: Mobile Number Portability
Restaurant coupons
Worst case of vendor lock-in
Car dealers
“One yen bid”
Preferential trade-in
Bid on first year at low cost
programs for car brands
from same manufacturer Gain highly profitable private
contracts in after the second
Frequent model changes year
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. 248
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Separation of Interface and
Implementation
Separate from implementation to achieve
competition
1. Derive necessary functions and separate into modules.
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

From de facto standards to open standards


Conventional de facto standards
Implementation also treated as part of standard
Open standards
Standards formulation process also handled openly
Implementation left to each vendor
Interface is specified to a standard, and implementation
is interchangeable
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. 249
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Free/Open-Source Software and Open
Standards
Avoid vendor lock-in
Make specifications open to maintain competition
Open specifications alone are insufficient
→ Also need to release source code
Enables other vendors to participate in system upgrades
User has upper hand for price negotiations
Why open standards alone are inadequate
Vendors will always emerge to seek differentiation through
proprietary means
Example of HTML
Standard specifications decided by W3C
Browser war: Browser incompatibilities due to proprietary tag
extensions
Example of tying applications into OS
Proprietary performance enhancements using unpublished APIs
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.
Security
Security of Software
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
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. 251
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Security of Software
Security is the ability to keep software operating as
expected
Obstacles to security
Outside factors
Unauthorized access: Unexpected manipulation by third party
Interception and falsification: Incidents relating to transmission
path for privileged data
Interception: Unexpected leakage of data
Falsification: Transmission of insidiously modified data
Internal factors
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.

Raises the issue


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.
Is FOSS Really More Secure?
Widely divergent views
FOSS is more secure due to transparency and active
developer base
Proprietary software from major vendors affords
greater chance of ensuring security

Reality of the situation


Servers
Unauthorized access and security accidents occur on all
platforms including Unix, GNU/Linux and Windows
Desktops
Viruses and worms targeted at FOSS are extremely rare
Low probability due to small number of FOSS desktops to begin
with?
Depends on system design principles; operating systems
designed for convenience are comparatively more vulnerable

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.
“Many Eyes” of Developers
Possible reasons for greater security of FOSS
Rapid response to defects
Continuous round-the-clock development by worldwide
developer base
Relatively fast response when critical vulnerabilities or
security holes are identified
Applies to actively developed FOSS projects
“Trojan horse” measures
Difficult to slip unauthorized code into source code
circulated as FOSS

Based on notion of improved security through


vigilance of many 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. 254
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Naked Implementation
Reasons FOSS is thought to reduce security
Releasing source code provides crackers with enough
information to do harm
Easier to find errors or security holes in
implementation
Counter-argument: Release of source code enables
immediate response if security holes are discovered

Concern about structure for security measures


by software provider
Major vendors are putting resources into security
measures
Lack of trust in volunteer development of FOSS
projects
Risk is higher for less active 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. 255
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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.
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. 256
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Educational Benefits
Source code as an example
Learn from the precedence of released source code
Leading source code is equivalent to an excellent text
book

Using a debugger to verify that source code runs


Important issue is that the source code is really
runnable

Low cost of development environments and


resources
Low entry levels to start learning

Educational benefits of communities


We have much from communities

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.
Source Code as an Example
Study concrete examples
Software design methodologies
Programming techniques

Actual programming samples


Learn step-by-step how a program runs
Look up similar code

Source code as a textbook


Publications relating to FOSS such as Code Reading
and Lions' Commentary on UNIX 6th Edition with
Source Code are published

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.
Using a Debugger to Verify that
Source Code Runs
FOSS makes it possible to:
Obtain source code
Modify source code
Check source code
Source code that actually
runs
Important to verify using
debugger
Verify operating logic
Learn through practical
experience
Enables study using real
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. 259
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Low Cost Development Environment
and Development Resources
Proprietary software involves tall barriers to
participation
Purchase of development tools
Purchase of development information
Fee-based training
Development resources comparatively lower
cost for FOSS
Distributions include development tools
Information available online
Training largely fee-based
Risks for software technology acquisition under
FOSS
Time and effort
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.
Educational Benefits of Communities

Approach that users can learn how to use


software from the community without learning
by users themselves
User communities as cooperative organizations
Ask questions through mailing lists and message
boards

Rules of communities
Give-and-take of information
Observe netiquette
Prevent flame wars from occurring

Development communities must also make an


effort to provide accessible information
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.
Sustainability
Necessity of sustainable software development
Why sustainability of software development is so
important?
The key is adaptation to various kind of platforms

Realizing sustainable software development


Why FOSS enables us to realize sustainable software
development?

Scientific progress and advancement of software


Similarities between scientific progress and
advancement of software

For the advancement of software


To produce better software products

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. 262
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Necessity of Sustainable Software
Development
Sustainable software development is necessary as long
as users wish to use software
Defects in software discovered on daily basis
Security holes cause problems for others
OK to end development of tried-and-tested software*?
*Tried-and-tested software: Software in which almost all bugs
have been worked out
Are there any issues with suspending software
development?
→ Yes, there are
Reasons
Changes in surrounding environment including OS, dependent
libraries, etc.
Software must be adapted to support to these changes

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.
Realizing Sustainable Software
Development
For proprietary software
Risk of software development ending for some reason

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.
Scientific Progress and Advancement
of Software
Advancement of software and scientific progress
fundamentally similar
Compare the following points

Advancement of software (under FOSS)


Implementation shared and extended through release
of source code
Source code must run properly. Avoid reinventing the
wheel

Scientific progress
Knowledge shared and expanded through publication
of papers
Test theory through use of corroborative experiments
Pointless to conduct the same research afterwards

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. 265
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
For the Advancement of Software

Freedom of FOSS
The freedom to run the program, for any purpose
The freedom to study how the program works, and adapt it
to your needs
The freedom to redistribute copies so you can help your
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
Software Definition
Copyleft is abstract expression of four kinds of freedom
GPL expresses four kinds of freedom as concrete license

Leads to implementation of sustainable software


development
Should lead to advancement of 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. 266
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
(10) Issues with FOSS
Lack of applications, human resources and
guarantees
Factors lacking in order to utilize FOSS the most
effectively

Legal risks
Who secures legal risks in using FOSS?

FOSS deployment on desktops


Desktop use is backward in comparison with server use

Diversity
What makes the issue of software complex?

Standardization trends and localization


Standardization to eliminate diversities
An Introduction to Localization to use domestically in each nations
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Free/Open-Source Software
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 267
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Lack of Applications, Human
Resources and Guarantees
Refinement of applications
Quality is vary widely between FOSS applications
Hope more contribution for further advancement to
high-quality FOSS

Underdeveloped FOSS-related market and


support concerns
Underdeveloped in comparison to proprietary software
market
Bringing up support business is also future task

Shortage of human resources


Need to absolute increase of 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. 268
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Refinement of Applications
Characteristics of bazaar development model
Quality not always guaranteed
Separation of development versions and stable versions

Level of refinement varies widely


Tried-and-tested applications are highly refined
Emacs, gcc, X Window System, apache, qmail, etc...
Latest applications may have many hidden issues

Refinement of desktop applications in particular


needs to improve
Demanding requirements of users (features and ease
of operation)
Refinement of desktop applications directly linked to
assessment by users

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.
Underdeveloped FOSS-Related Market
and Support Concerns
Related markets still undeveloped
Business deployment of FOSS often still at explorative
stage
Training and support markets are small
Shortage of FOSS books
Information frequently obtained online

User concerns about support


Lack of heavy users nearby
Prefer to have person nearby to casually consult with when
problems occur
Support business yet to take firm shape
No established support services
Concern over whether community can actually be relied
on
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.
Shortage of Human Resources
Shortage in absolute number of FOSS engineers
Shortage of GNU/Linux engineers frequently pointed
out
Easy to actually retrain Unix engineers
High labor rates due to lack of supply
Concern that situation will drive up overall costs

Need to secure support personnel


Number of engineers steadily increasing
Numbers increasing starting from level below
engineers
Government policies to develop advanced,
hacker-level FOSS engineers
Public funds to support development of engineers
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.
Legal Risks
Relationship of FOSS vs copyright and patents
Also weak points of FOSS
Possibilities to bear risks of intellectual property rights
infringement

SCO controversy
SCO sent a challenge to FOSS communities in 2003

Responsibility of warranty
Who has responsibility for defects in FOSS?

License violations
GPL violations occur every day in 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. 272
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Relationship of FOSS versus Copyright
and Patents
Many developers participate in FOSS style
development
Risk of containing code that infringes on copyright or
patents; code can slip in intentionally or through
carelessness
Infringement on patent license
Normal business response
Cross-licensing
Financial resolution (payment of patent royalties)
Both difficult to execute with FOSS
Risk of patent royalties being claimed directly against
users, or a cease-and-desist order could be issued
Example of guard mechanisms
MPLClause to the effect that any withstanding patents
applying to source code must be expressly declared by
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.
SCO Controversy
US-based firm SCO Group issues warning against
GNU/Linux users in May 2003
Claim asserts that Unix code was misappropriated for
Linux and infringes on intellectual property held by
SCO
Claim against Linux kernel Version 2.4 and later; SCO
alleges that Linux kernel contains code relating to
NUMA, JFS and SMP technologies
SCO alleges that it purchased rights to Unix from Novell
SCO sues IBM for damages, claiming that IBM
misappropriated code from AIX (March 2003)
Surrounding response
73% of GNU/Linux programmers say that SCO claims
have no merit
SCO controversy barely receives attention today in
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.
Responsibility of Warranty
Is no one responsible for FOSS?
Fundamentally provided “as is” and with “no warranty”
Proprietary software: Warranty conditions and exemptions
Does not mean that users can rest easy
Japanese Consumer Contract Act
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
contract for value
Some experts consider exclusion of any warranty
unenforceable under Japanese law
Situation can also be viewed as business opportunity
Support business
Provide insurance and warranties, legal risk management,
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.
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
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. 276
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FOSS Deployment on
Desktops
Trends in FOSS desktop market
What is the trends of software market regarding FOSS
desktop terminal use?

Phases for spread of FOSS desktop deployment


Who can use FOSS desktop?

Barriers to spread of FOSS desktops


What prevents from spreading FOSS desktop use?

Examples of issues with Japanese language


environments
Font inadequacies and confusion over Japanese
character encoding prevent from spreading FOSS
desktops in 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. 277
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Trends in FOSS Desktop
Market
Was 2004 “year one” for spread of FOSS
desktops in Japan?
FOSS desktops begin drawing interest in wake of FOSS
deployment for servers, backbone systems and
embedded applications
OSDL launches new working group (January 2004)
Desktop Linux Working Group
Several trials for FOSS desktops conducted
AIST’s FOSS desktop strategy
FOSS trials for schools (IPA and CEC)

Desktop GNU/Linux distributions


Java Desktop System
Turbolinux 10 Desktop
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.
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

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. 279
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Barriers to Spread of FOSS Desktops

Issues for spread of FOSS desktops


Expanded environment for FOSS office suites
Actual applications need to be more refined
Templates, clip art libraries, etc.
Refinement of user interfaces
Migrate systems to Web applications

Deep-rooted barriers to spread of FOSS desktops


in Japan
Inadequate Japanese language environment
Demanding requirements for document style,
customary ruled lines, etc.
Problems with applications due to Japanese language
support
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.
Examples of Issues with Japanese
Language Environments
Font inadequacies
Controversy over copyright infringement by free fonts
(2003)
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

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. 281
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Diversity
Driving factors behind diversity
What is diversity?

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

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. 282
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Driving Factors behind Diversity

What is diversity?
Freedom to combine
components leads to explosion
in number of combinations
Diversity reflects a high degree
of freedom, resulting in a trade-
off relationship with integrated
feel
Also happens in proprietary
environments
PC-compatible machines
Diversity of devices
Addressed by device
manufacturers
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.
Diversity of Data
Problems arise during external exchange of
electronic documents
Data formats specific to applications
ex. *.doc, *.xls, *.ppt,...

Need to exchange actual content, not format


Content in written documents
Written sentences, style, etc.
Content in spreadsheets, presentations
Values, graphs, diagrams, fonts, etc.

Data dependent on individual application


Different data formats within one category of
applications
Ex. Word processors
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.
Diversity of Platforms
Excessive freedom in configuring FOSS platforms
Range of variables
Kernel parameters, kernel modules
Libraries, tools
Other software to which applications are dependent on
Reasons for platform diversity (diversity of
operating environments)
Differences between distributions
Red Hat, SUSE, Debian, Knoppix, etc...
Differences in versions
Individual applications continually evolve on their own
Same issues also effect proprietary operating
systems
Service pack editions installed or not installed, OS
editions, 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. 285
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Diversity of User Interfaces
Diversity of operation directly breeds mistrust of users
Particularly true for desktop deployment

Familiar user interface and operating characteristics


Essential features might be same but other differences exist
Different icons
Different menu placement or menu titles
Different keyboard shortcuts
Different error messages
etc...

Users are conservative


Relearning new way of operation considered a waste of
previous time and effort
After going to all that trouble to learn how to operate an
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.
Standardization Trends and
Localization
Standardization of GNU/Linux
The road to ISO standard

Standardization of documents
Trial to make electronic document interchange smooth

i18n, m17n, l10n


Difference among internationalization, multi-
lingualization and localization

Examples of internationalized 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. 287
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Standardization of GNU/Linux
Seek to absorb platform variations
UnitedLinux consortium’s trial
FSG (Free Standards Group)
Non-profit organization dedicated to FOSS-related
standardization
Develops standards
Develops compliance testing tools and tests software for
compliance
Linux Standard Base (LSB) Project
Dedicated to application compatibility between
authorized distributions
Other related standards
Portable Operating System Interface for Unix (POSIX)
Single Unix Specification (SUS) Version 2
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.
Standardization of Documents
OASIS (Organization for the Advancement of
Structured Information Standards)
Study by standardization committee
OpenDocument
Based on XML
Open standards specification
No platform dependency
No application dependency
Candidate for EU’s public document format
Used in OpenOffice.org 2.0 and KOffice 1.4

Distinct from XML-based document format


proposed by Microsoft

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.
I18n, M17n and L10n
“I18n” takes first letter “i” and last letter “n,”
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
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. 290
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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

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. 291
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
(11) Development Tools
We have variety of Development tools
FOSS development tools Compiler
Developers make a new Debugger
tool for themselves Analyzer, profiler
Plenty of tools for Source code
distributed development management
Based on FOSS Maintaining
development via the
compatibility
Internet
Localization
GUI-based tools are
increasing, in addition to Documentation
conventional CUI-based IDE based on GUI
tools Bug tracking tools

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.
Compiler
Process of building software
Compile
Source code -> object code
Link
Set of object code -> executable code
File describing the process of building software
Makefile

gcc, make, ld
De fact standard tools for FOSS 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. 293
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
GCC
gcc (the GNU Compiler Collection)
Development started in 1984 by Richard Stallman

Originally stood for GNU C Compiler


Now stands for GNU Compiler Collection
Includes compilers and libraries for C, C++, Objective-
C, Fortran, Java and Ada
C++ compiler g++
Fortran compiler g77
Java compiler gcj

Features
Widely used for commercial and non-commercial
operating systems
Can also be used as cross-compiler

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.
Make
To help manage build PACKAGE = hogehoge
SRCS = $(PACKAGE).c
process OBJS = $(SRCS:.c=.o)

FILES = README Makefile $(HEADS) $(SRCS)


VER = `date +%Y%m%d`

Marking of dependency CC = gcc


CFLAGS = -g -O2 -Wall $(DEBUG)
and processing method CPPFLAGS = -I.

Rules (compile, link, .SUFFIXES:


.SUFFIXES: .o .c .cc .f .p
installation, etc.) are all: $(PACKAGE)
described in makefile $(PACKAGE): $(OBJS)
$(LD) $(LDFLAGS) $(OBJS) -o $@ $(LDLIBS)
Autotools convenient for
$(OBJS): $(HEADS) Makefile
automatic generation of
rules .c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
.cc.o:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
Build optimization .f.o:
$(FC) $(FFLAGS) -c $< -o $@
.p.o:
Looks up time of last $(PC) $(PFLAGS) $(CPPFLAGS) -c $< -o $@

update and only clean:


$(RM) $(PACKAGE) $(OBJS)
executes minimum build $(RM) core gmon.out *~ #*#

needed Makefile 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. 295
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
The GNU Linker Ld
Invoked at end of build process
Link multiple object files and library or archive files
Relocate data
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
program
Runs as standalone file but produces large file size

Dynamic linking
Only designates name of libraries
Dynamically links to libraries during execution
Small file size

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. 296
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Debugging Tools
Debugging
Process of fixing bugs in coding
Basically check for:
Are values for variables as expected?
Is conditional branch correct?
Possible to insert code to output values at various
points, but labor-intensive
Use of debugging tools

Debugging tools
Debuggers, profilers, tracers, 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. 297
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Debuggers
GDB (The GNU Project
Debugger)
CUI debugger
Features: Set
breakpoints, step-by-
step execution, etc.

DDD (GNU Data


Display Debugger)
GUI front-end for GDB
and other CUI
debuggers

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

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. 299
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Debugging Example (Part 2)
Dig through the source code
File names
Icon.h and icon.c files are suspect
icon.h
InitIcons() and chooseIcon() functions called from
outside
ChooseIcon() is suspect; chooseIcon() function is for
initialization
ChooseIcon() in icon.c file
Icon appears to be switched by rom_info>node_type
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:
case NODE_TYPE_AVC:
*xpm_node = xpm_dvcr;
*xpm_node_mask = xpm_dvcr_mask;
*label = "AV/C Device";
break;
case NODE_TYPE_SBP2:

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. 300
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Debugging Example (Part 3)
Debugging process
Rom_info.h and rom_info.c files exist
Use grep to search location where value of node_type is set
Get_node_type is suspect
Probable solution: Change code to return
NODE_TYPE_CONF_CAM when camera you are using
(unit_sw_version=0x101) is connected
int get_node_type(Rom_info *rom_info) {
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) {
return NODE_TYPE_AVC;
}
} else if (rom_info->unit_spec_id == 0x609E &&
rom_info->unit_sw_version == 0x10483) {
return NODE_TYPE_SBP2;
} else {
resolv_guid(rom_info->guid_hi, rom_info->guid_lo, &cpu);
if (cpu) return NODE_TYPE_CPU;
}
return NODE_TYPE_UNKNOWN;
}

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.
Debugging Example (Part 4)
Result
Icon is correctly displayed
Unknown if patch is correct method to fix problem
Fix was possible because of viewable source code
Patch may be incorporated into next version by
feeding back to community

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.
Analysis Tools
Analyze how program runs dynamically and/or check
source code statically
To help bugfix, quality improvement and speed up, etc.

Profilers / memory testing tools


Tools to get statistical information on CPU and memory

Tracers
Tools to trace function calls and system calls

Source code analyzing tools


ctags, etags, etc.
Create tag information by reviewing source code
To jump directly to the definition of classes and functions
cflow
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.
Profilers
Profiling
Acquire status of program execution at fixed intervals
Show process and thread status
Also acquire hardware information such as cache hit
ratio

CPU profilers
Measure CPU utilization rates

Memory profilers
Measure memory usage, detect memory leaks

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. 304
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
GNU Gprof
Utility for measuring and displaying operating
status of program
Number of calls for each function, processing time, etc.
Shows bottlenecks to consider for acceleration
Using gprof
Specify -pg option when compiling
Execute program normally
# gprof executable-file gmon.out
Sample output
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
0.00 0.40 0.00 3 0.00 133.33 func1

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. 305
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Memory Testing
MemProf
Profiler for memory
usage
Test for memory leaks

MEMWATCH
CUI memory testing
tool for C
Detection of memory
leaks, data corruption,
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. 306
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
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


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. 307
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Source Code Management
Manages source code itself, the changing history
and so on
Essential tool for team development
To make sure when, who, where and how modified?
Reverting back to older revision and/or making branch
versions are possible

Inevitability of source code management tool


RCS, CVS, subversions and other similar tools were
developed in association with changes of development
styles from independent development to team and
distributed 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. 308
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Diff, Patch
Patchfile (shown at right)
Shows differences between files

Diff and patch *** hello.c


--- nice.c
***************
2005-06-17 17:46:46.000000000 +0900
2005-06-17 17:47:04.000000000 +0900

*** 3,5 ****


diff !
int main(void){
printf("Hello World!\n");
return 0;
Tool to generate differences --- 3,5 ----
int main(void){
! printf("Nice to meet you!\n");

patch return 0;

Tool for applying differences to create revised file

Basic features of RCS, CVS and Subversion


Used by someone other than source code administrator
to create bug fixes or add features
Redundant to send entire modified file
Send only differences to administrator
Practice dates back to when transmission speeds were
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.
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
Creates working copies repository
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
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. 310
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Maintaining Compatibility
Differences in platforms
Differences in operating systems
GNU/Linux, *BSD, Unix, Windows, etc.
Differences in libraries
OpenGL/Mesa, Xaw, Motif/lesstif, etc.
Differences in versions
Specifications can change due to version upgrades
Differences in paths

Need arrangement for absorbing these


differences
Labor-intensive to implement manually
Difficult to support platforms not possessed by
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. 311
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
GNU Autotools
Need more than just source code
Need tools to compile and execute same program on
different platforms (OS or environment)
Improve portability and maintainability

Tools such as autoconf, automake, etc.


Autoconf: Used to generate configure scripts
Automake: Used to generate makefiles

Minor format differences depending on version


of Autotools used
Contradicts the very purpose of Autotools?

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.
Localization
English is the universal language of FOSS
development
Many developers and users lack English skills
Desire for different language versions so that many
others can use software
Localization
Enables display of character strings such as menus
and dialogs in different languages
Developers do not need to be versed in each language
Translators do not need to understand source code
Localization tools do not support
internationalization
Multilingual handling, line breaks, etc.
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.
GNU gettext
Implements localization without major changes to
existing source code
Prepare a message catalog
Surround the internationalized character string with N_()
Ex. Change char *str = "Hi"; to char *str = N_("Hi");
Surround variables that call on the string with _()
Ex. Change printf("%s\n", str); to printf("% s\n", _(str));
Example of message catalog
Replaces “Hi” (msgid) with “Guten Tag” (msgstr)

msgid "Hi"
msgstr "Guten Tag"

msgid "Add"
msgstr "H inzufuegen"

msgid "Edit"
msgstr "Editieren"

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. 314
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Documentation
Importance of documentation
Expand user base
User manual
Expand developer base
Helpful for hacking
Above all, documentation helps the original developer
Tendency to forget the purpose of old code

Writing documents perceived as bothersome


Documentation tools
Automatically generate documents from source code
Can also graph class relationships, etc.
Not designed to identify purpose of program

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.
Doxygen, Javadoc, Doc++
Doxygen/Doc++
Supports Java, C, C++,
PHP, etc.
Output in HTML or LaTeX
formats

JavaDoc
Comes standard with JDK

Sample output from Doxygen

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. 316
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Integrated Development
Environments
Unix and GNU programming centers on
command line tools
Convenience of many tools, but tools are difficult to
master
Difficult to program outside of IDE framework
Demand for GUI-based IDEs as developer base grows
Simplifies migration from Windows development
environments

Leading IDEs
Eclipse with multi-language support
Anjuta for GNOME applications
KDevelop for KDE 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. 317
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Eclipse
IDE written in Java
Runs on variety of operating systems

High extensibility
Billed as “universal tool platform”
Plug-in architecture to strengthen various features
Plug-ins for Java, C, C++, PHP, Ruby and COBOL

History of Eclipse
IBM Visual Age released as FOSS
IBM sells Eclipse-based IBM Rational Software
Development Platform

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.
Bug Reporting Tools
Also called bug tracking systems
Dedicated database for bug tracking
Well-known tools: Bugzilla, Debian bug tracking system (BTS),
GNU GNATS

Centralized management of bugs


As software grows in scale, management tools such as e-mail
and spreadsheets become inadequate for grasping overall
picture
Stores information such as bug reporter, reproduction method,
bug correction assignee, correction history, correction method,
degree of importance, test status, etc.

Bug life cycle


(1) bug report, (2) assignment of person to correct bug, (3)
correction of bug, (4) testing and (5) close of bug report
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.
Bugzilla
Developed by
Mozilla.org to track
bugs for Mozilla
browser
Powerful bug tracking
and search features
Used for projects such
as XFree86, Apache,
Samba, GNOME, 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. 320
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
(12) Maintaining Software and
Development Examples
Updating software environments
Maintaining software environments and configuration of
software
Compiling source code and installing builds
Management of software packages

Software components
Efficient use of software component enables us to
reduce man-hour of development
Major software components

System building example


Examples on Web System development and application
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. 321
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Updating Software Environment

Maintaining software environment


Environment surrounding software changes day by
day, due to new versions of library, software and
protocols
Configuration of software
Software needs to be set up to fit the surrounding
environment
Compiling source code and installing builds
Binary packages
Binary package: software package that includes
compiled software and the other files, in order to run
correctly by putting into adequate directories
Package management tools
up2date, yum, apt-get

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.
Maintaining Software Environments

Reasons for maintaining software environments


Software updated on daily basis
Add or enhance features
Bug fixes
Patch security holes
A lot of FOSS packages in particular are frequently
updated

What happens when software is not maintained


Problem for yourself
Unstable operation or unauthorized access
Problem for others worldwide
Your computer can be taken over and used to attack
other computers or send spam mail

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.
Configuration of Software
Elements that comprise software
Source code alone is not enough
Other elements needed
Data used by software
Icons and image data
Other data such as sample data, etc.
Documentation
Manual pages
Supplementary information, update history
Licensing information
Configuration files

These files are typically circulated in one package


Packaging 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. 324
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Compiling Source Code and Installing
Builds
Common formats for source code distribution
.tgz, .tar.gz or .tar.bz2 extensions
Tar utility for packing multiple files together
Tools for compressing and uncompressing files
Two sets of tools are frequently used, based on different
compression formats
gzip / gunzip 
bzip2 / bunzip2
Procedure for unpacking and compiling source
code and installing build
Unpack source code
tar xzvf XXX.tgz
Configure source code to fit environment
./configure
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.
Binary Packages
What is a binary package?
Provided for each platform and contains pre-compiled
and pre-configured binary code packaged with other
necessary files
Examples of package management systems
RPM (Redhat Package Manager)
System developed by Red Hat
Deb: Package management system used by Debian
Difficult to apply binary packages to different
environments
Often cannot be used with different versions of same
Red Hat distribution, due to different library
configurations, etc.
If this happens, you can rebuild the binary package
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 Management Tools
Main features
Update software that has been revised
Simplify installation of new software
Automatically resolve dependencies (information about
necessary libraries, etc.)
Leading package management tools
up2date
Developed for Red Hat Linux
yum (Yellow dog Updater, Modified)
Developed for Yellow Dog Linux
apt-get
Developed for Debian’s deb format
All three tools support RPM format
sGUI-based management tools also available such as
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.
Software Components
Software components
Efficient to reduce man-hour of software development
Avoid “re-invention of the wheel”
Many components are published as FOSS

Finding and using components


Several repositories are found in the Internet

Types of components (Data, XML, GUI, etc.)


Classifies major components

Language specific components


Major language has its component library and the
repository for them

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.
Finding and Using Software
Components
Finding software components
Standard supplied components such as STL, PEAR, etc.
Download from repository such as CPAN, RAA, etc.
Find using search engine
Specialized libraries or those that have recently started
development
Installing and using software components
Include in program source tree
Install to directories for each language # perl -MCPAN -e shell
cpan> install [module-name]
Often the case for scripting languages
Simplified installation using CPAN Perl module
Install as shared libraries
Interface or binding to enable various languages to use library
After installation, library is called from program being created

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

Available libraries and PHP


specifications PEAR
Java http://pear.php.net/

J2EE, Struts Smarty


http://smarty.php.net/
Java Community Process (JCP)
Develops technology Perl
specifications CPAN
C http://www.cpan.org/

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
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. 331
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
System Building Example
Web System
Using software components such as PEAR, Mojavi,
Smarty

Applications
Application building example
Location of Application Files
1. Find files containing project information
2. Examine subdirectories in source tree

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. 332
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Web System
PHP software components
Browser
PEAR
Library for improving
reusability of code Apache

Mojavi HTML
MVC framework PHP
Smarty Mojavi
View Template
Template engine
Controller
Smarty
Model
Advantages
Simplifies support for PEAR::DB
different DBMSs
DB
Simple to reuse code Postgre
MySQL etc...
Divides labor of SQL

programmers and designers 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. 333
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Web System – PEAR::DB
PEAR::DB // Connection
$connection = mysql_connect($host, $user, $pass);
mysql_select_db($dbname);
Integrated interface for
// SQL execution
DBMSs $sql = "SELECT * FROM testtable";
$result = mysql_query($sql);
PHP uses different
// disconnection
functions for each DBMS mysql_close($connection);

Changing DBMS requires


major changes to code
Advantage of using // Declaration of PEAR::DB
PEAR::DB include("DB.php");

Change just one part of // Type of Database


$type = "mysql";
code
// Connection
$db = DB::connect
Other classes for PEAR ("$type://$user:$pass@$host/$dbname");

// SQL execution
Authentication, testing, $sql = "SELECT * FROM testtable";
networking, XML, etc. $result = $db->query($sql);

// disconnection
$db->disconnect();

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. 334
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Web System – Smarty
Template engine
<h1>
Improves design <? print $title; ?>
presentation </h1>

Intuitive for designers <table>


<?
Does not affect input for (i=0; $i<=10; i++) {
print “<tr><td>”.$array[$i].”</td></tr>”;
and output for Web }
?>
design software </table>

Smarty
Used for XOOPS and
Rakuten (leading e- <h1>{$title}</h1>
<table>
commerce site in Japan) {section name=i loop=$array max=”10”}
<tr><td>{$array[i]}</td></tr>
systems {/section}
</table>
Many acceleration
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. 335
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Application Building Example
Desktop application software
Example: mpatrol
Tool for detecting memory leaks and illegal memory
access
Platforms supported
AIX, DG/UX, DRS/NX, DYNX/ptx, FreeBSD, HP/UX, IRIX, Red
Hat Linux, SUSE Linux, LynxOS, SINIX, Solaris, Tru64,
UnixWare, AmigaOS, Windows, etc.
Where to obtain mpatrol
http://www.cbmamiga.demon.co.uk/mpatrol/
$ tar xzvf mpatrol_1.4.8.tar.gz
...
$ cd mpatrol
$ ls
AUTHORS COPYING.LIB NEWS VERSION config man tests
CHECKSUMS ChangeLog README bin doc pkg tools
COPYING INSTALL THANKS build extra src
$

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

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

You might also like