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

1

Why Choose Free/Open-Source Software?
Reasons for interest in FOSS
Standards (open standards) Value, quality, innovation Freedom of choice A lot of flexibility Security Cost

Contents
What is FOSS? Major FOSS Packages and Distributions Philosophy and History of FOSS FOSS Development and FOSS Community FOSS in Business and Case Studies FOSS and Government Policy, E-government Features and Issues with FOSS Development Tools Software Components and Examples of Application Building
2

Purpose of this course
Learn about significance of FOSS Understand benefits of FOSS 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. 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

3

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

4

Binary Code and Source Code
Binary code
Machine language (native code)
Example of instruction set directly executable by CPU Represented by hexadecimal numbers
0010000 0010020 0010040 0010060 0010100 0010120 0010140 0010160 0010200 0010220 0010240 0010260 0010300 0010320 0010340 0010360 0a29 2061 7520 6576 6c75 200a 5242 7420 4554 5f32 5952 2020 444c 4854 4152 6473 2020 6574 746e 7720 2074 2020 5241 6568 5f4d 4150 334e 7865 4c5f 200a 5952 705f 2020 706d 6c69 7469 6573 6920 4e59 0a6e 444c 4854 5f32 6f70 4249 2020 334e 6f72 2023 726f 7720 2068 7261 2066 3233 2020 4c5f 243d 4150 7472 4152 2020 5f32 2267 6874 7261 2065 6874 6863 205b 505f 2020 4249 444c 4854 5320 5952 2020 4150 243a 7369 2079 6163 2065 7020 4c24 5441 2020 4152 4c5f 200a 5359 334e 444c 4854 444c 6920 6168 206e 6564 7461 5f44 2048 5320 5952 4249 2020 4554 5f32 4c5f 3a3d 4c5f 2073 6b63 696c 6166 7368 494c 3b5d 5359 334e 4152 2020 5f4d 4150 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) { uint shortcount, leafcount, count; mp->m_dirversion = 1; shortcount = (mp->m_attroffset (uint)sizeof(xfs_dir_sf_hdr_t)) / (uint)sizeof(xfs_dir_sf_entry_t); leafcount = (XFS_LBSIZE(mp) (uint)sizeof(xfs_dir_leaf_hdr_t)) / ((uint)sizeof(xfs_dir_leaf_entry_t) + (uint)sizeof(xfs_dir_leaf_name_t));

Source code
Programming language
Understandable to people 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

5

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

6

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

7

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

8

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

9

Issues with Software Products
Illegal copying, piracy
Casual copying Particularly rampant in Asia (but incidence is not necessarily zero in US/Europe) Accelerated by developments in P2P technology
Winny WinMX gnutella

Vulnerabilities
Security holes Bugs Increased complexity of software

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

10

Countermeasures
Measures against illegal copying
Hardware-based solutions
USB dongles, etc.

Measures to address vulnerabilities
Patches
Security patches Bug patches

Copy protection technology
Superdistribution systems Digital watermarks

Software-based countermeasures
License keys Serial keys

Automatic updates Cost of maintenance cannot be ignored

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

11

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

12

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

13

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

14

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

15

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

16

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

17

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

18

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

19

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

20

Skill Sets for FOSS Engineers
FOSS fundamentals
Understanding FOSS (01) Getting involved in FOSS development (02)

Development basics
Computing basics (C1) Computer languages (C2) System development techniques (C3) Project management (C4)

Unix systems
Unix operation (l1) Unix system management (l2) Unix server management (l3)

Technology
Choose as necessary
Databases (T1) Networks (T2) Web services (T3) Middle-ware (T4) Multimedia (T5) etc...
21

FOSS development environment
FOSS development tools (D1) FOSS software components (D2)
An Introduction to Free/Open-Source Software

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

22

Skill Matrix for FOSS Engineers
System Administrator Integrator System 2        ¿  ¿                                         ¿                        Skill Level UNIX OSS System OSS Dev. Integra Common Env. tion O1 O2 I1 I2 I3 D1 D2 C1 C2 C3 C4 T1 T2 T3 Technology T4 T5 T6 T7 T8 1                                                                3                       1                                                                2                                        3                              Applicatio n Developer 1 2 3                              ↑     ¿  ↓                                        ¿   ¿      ↑    ¿  ↓                                        ¿  ¿                 Package Developer 1                              ↑   ¿   ¿     ¿   ¿  ↓           2                  ¿   ¿      ↑   ¿   ¿    ¿   ¿  ↓        3                        ¿   ¿              OSS Developmen Classroom lectures t Hands-on trainings 1 2 3                            ↑   ¿   ¿     ¿   ¿  ↓                ¿          ↑   ¿   ¿    ¿   ¿  ↓             ¿              ¿                 ¿  ¿             

Understanding OSS OSS Community Participation UNIX Operation UNIX System Administration UNIX Server Administration OSS Software Components OSS Development Tools Basics of Computer Computer Language System Development Method Project Management Database Network Web Service Middleware Multimedia Platform High Performance Security

Training course for Linux certification
We need this types of training course!!

Common

University / Professional school

Software Development Training Course

PMBOK Seminar

Network integration

We need this types of training course!!

PBL (Project based Learning) FOSS development

Package development

Web system development

T9 Standardization T10 Legacy Migration

Security Seminar

* Legend -  To be learned basic skills -  To be learned advanced skills -  Central skills for the engineer An Introduction to Free/Open-Source Software

* Skill level - Level 1 : Junior engineers who needs others help - Level 2 : Senior engineers that can do their jobs independently - Level 3 : Leading engineers in their section

Code reading

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

23

FOSS tuning

Career Paths for FOSS Engineers
ar t ke g in S e al s C l su on t nt a IT A r i ch t t ec t ct en e oj em Pr ag an m t n t n n er io t re en lis t s a io io a m e a li i t t o lic ia ftw pm st vic ra ec ca e p c e r u Sp Ap pe So el Cu se Op Ed v s IT de

M

.7 vl L l ve vl.6 le L h ig .5 H vl L l ve l.4 le Lv e l .3 dd i vl M L l 2 e l. ev Lv l y r .1 nt E vl L

FOSS specialist can offer technical advice, on FOSS selection, FOSS configuration for effective use, etc.
FOSS Specialist ConIT sultant Archtect
(He/she plays a role as FOSS sommelier for their companies and participates in FOSS communities outside)

IT Project Manager Specialist

Package/ Application FOSS Sytem DevelopdevelopIntegrator ment ment

System Administrator

The scope of FOSS skill set
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

An Introduction to Free/Open-Source Software

24

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

25

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

26

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

27

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

28

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

29

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

30

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

31

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

32

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

33

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

34

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 due to inevitable overhead (< 10%)
An Introduction to Free/Open-Source Software

GNU/Linux running inside of GNU

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

35

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

36

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

37

Installing GNU/Linux
Example: Installing Fedora Core distribution Process of installation
1. 2. 3. 4. 5. 6. 7. Running the installer Basic configuration Drive formatting / partitioning Network configuration Time zone selection and root password setting Package installation 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

38

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 Boot Boot hard from CD from network from disk image on drive, etc.
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

An Introduction to Free/Open-Source Software

39

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

40

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

41

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

42

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

43

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

44

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

45

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

46

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

47

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

48

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

49

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

50

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

51

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

52

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

53

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

54

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

55

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

56

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

57

Examples of Libraries
Widget sets
GTK+(Gimp Tool Kit)
Developed for GIMP graphics editor Used by GNOME

Mesa (OpenGL)
Open Source implementation of OpenGL OpenGL: 3D computer graphics interface developed by SGI

Qt
GUI toolkit developed by Trolltech Used by KDE

Mono (.NET)
Open Source implementation of .NET .NET framework advocated by Microsoft; competes with Java
58

OpenMotif
GUI toolkit for X Window System; FOSS version of Motif

An Introduction to Free/Open-Source Software

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Servers
Web server
Apache

File sharing
Samba/WebDAV

Mail servers
MTA ML server POP3/IMAP

LDAP
OpenLDAP

Mining server
namazu

DB server
PostgreSQL/MySQL/Fire bird

CMS
XOOPS/Zope

DNS
BIND

Business applications
E-Learning, ecommerce and many others
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

An Introduction to Free/Open-Source Software

59

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

60

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

61

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

62

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

63

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

64

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

65

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

66

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

67

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

68

Content Management Systems (CMS)
XOOPS
Features
Built using PHP and MySQL Simple to install and build sites Top FOSS CMS in Japan

Zope
Application server written in Python

Plone
CMS that runs on Zope

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

69

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

70

Desktop Environment
GUI and integrated desktop environment
What is a desktop environment?

Multimedia
Image processing CG (Computer Graphics) Video Audio, music

Mail and web browser
MUA (Mail User Agent) Web browser

Others
Computation, science and technology Input of non-latin scripts

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

71

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

72

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

73

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

74

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

75

Editors
GNU Emacs
Developed by Richard Stallman Extensible using Emacs Lisp Not just an editor: platform for textoriented 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

76

Office Suites
OpenOffice.org (OOo)
Derived from StarOffice, product of German company StarDivision Acquired and now maintained by Sun Microsystems

Full suite of office software
OOo OOo OOo OOo OOo Writer word processor Calc spreadsheet program Impress presentation tool Draw draw/paint tool 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

77

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

78

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

79

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

80

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 Change size and color gradation Various special effects
Photo retouching in GIMP convert, identify, composite, montage, compare, display, animate, import, conjure Command set in ImageMagick
81

Many other image viewers
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. 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 bankrupt
Can be used with YafRay (Yet Another Free Raytracer)
CG rendering using POV-Ray

Open Inventor
VRML rendering library SGI software released as FOSS
An Introduction to Free/Open-Source Software

Sample program in Open Inventor
82

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

83

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

84

Computation, Science and Technology
R
Statistical computing package Compatible with S language

gnuplot
Plotting software

SciLab, Octave
Science and technology computing software Compatible with MATLAB

Maxima
Formula manipulation software Comparable to Mathematica
Capable of high quality formula display when used with TeXMacs
An Introduction to Free/Open-Source Software

Graph drawn in gnuplot

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

85

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

86

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

87

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

88

Developing Languages
gcc (GNU Compiler Collection)
Collection of compilers for C, C++, Fortran, Java, etc. Standard compiler for development on Unix

PHP
HTML-embedded, server-side scripting language Main language for Java and Web system development LAMP/LAPP

Perl
Strong text processing Flexibility to use various syntax for same process TMTOWTDI: There's More Than One Way To Do It. Frequently used for system management and CGIs
An Introduction to Free/Open-Source Software

Python
Features block designation using indentation

Ruby
Developed by Yukihiro Matsumoto

Python and Ruby are rival languages
Python is an object-oriented version of Perl
89

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

90

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

91

Major GNU/Linux Distributions
About distributions
Collection of software

SUSE LINUX
Distribution originally from Germany The second largest share of GNU/Linux market

RedHat / Fedora
Top share for enterprise Full of leading-edge functions

Vine Linux
Well-tailored Japanese environment

Turbo-Linux
Focus: desktop

Debian GNU/Linux
Many developers in the world

Ubuntu
Based on Debian Focus: desktop
An Introduction to Free/Open-Source Software

KNOPPIX
Bootable from CD
92

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

93

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

94

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

95

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

96

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

97

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

98

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

99

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

100

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

101

History of FOSS
Birth of hackers
Basis of emerging free software

Birth of Linux
A pioneer of “Bazaar model development”

Free software movement and FSF
Free software as freedom of software

Growth of FOSS, and Launch of OSI
Market share of FOSS has enhanced for business use

Copyleft
Fundamental structure to keep freedom of software

Penetrating the enterprise market
Many major computer vendors join the FOSS enterprise market
102

Spread of the Internet
Free software played an 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

Birth of Hackers (1950s to Present)
“Hacker” used at MIT to describe a person who writes good programs or new algorithms
Individuals who attack systems are “crackers”

“Hack” (definition from thefreedictionary.com)
Originally, a quick job that produces what is needed, but not well. An incredibly good, and perhaps very time-consuming, piece of work that produces exactly what is needed. To bear emotionally or physically. To work something (typically a program). To pull a prank on. To interact with a computer in a playful and exploratory rather than goal-directed way.
103

Hacker culture is a type of gifting culture
“Hacker” title bestowed by others

Unix conceived in 1971
An Introduction to Free/Open-Source Software

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

104

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

105

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

106

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

107

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
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

An Introduction to Free/Open-Source Software

108

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

109

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

110

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

111

Definition by Open Source Initiative
Prescribed by the Open Source Definition (OSD)
Wider recognition leads to greater misuse of term Criteria for FOSS licenses Over 50 licenses approved
Free Redistribution Source Code Derived Works Integrity of The Author's Source Code No Discrimination Against Persons or Groups No Discrimination Against Fields of Endeavor Distribution of License License Must Not Be Specific to a Product License Must Not Restrict Other Software License Must Be Technology-Neutral
112

Based on Debian Free Software Guidelines (DFSG)
OSD places greater emphasis on distribution criteria

Free Software complies with Open Source definition
An Introduction to Free/Open-Source Software

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

113

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

114

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

115

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

116

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

117

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

118

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

119

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

120

(5) FOSS Development and the FOSS Community
FOSS and the FOSS community
FOSS is closely-linked to activities in the FOSS community

Communication
FOSS projects are supported by communication between development participants

Development structure
How FOSS project works? How to participate in FOSS projects?

FOSS developers
FLOSS survey: FOSS developers on-line 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

121

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

122

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

123

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

124

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

125

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

126

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

127

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

128

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

129

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

130

BerliOS, Free Software Directory

http://www.berlios.de/
An Introduction to Free/Open-Source Software

http://directory.fsf.org/
131

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

FreshMeat.net, Rpmfind.net

http://freshmeat.net/
An Introduction to Free/Open-Source Software

http://rpmfind.net/
132

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

133

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

134

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

135

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

136

Agile Development and Similar Methodologies
Twelve core practices of Extreme Programming (XP):
1. Planning Game 2. Small Releases 3. Metaphor 4. Simple Design 5. Testing 7. Pair Programming 8. Collective Code Ownership 9. Continuous Integration Continually plan in small units Short release cycles Use metaphors for ease of understanding Keep the design simple Prioritize testing in program development Actively review code Programmers write code in pairs Make all codes accessible to every programmer Continually test and keep the software running

6. Design Improvement (originally: Refactoring)

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

137

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

138

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 y-1.0
An Introduction to Free/Open-Source Software

x-2.1 y-1.1
139

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

140

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

141

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

142

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

143

Online Communication Methods: Pros and Cons
Pros E-mail Mailing list Message board IRC and other chat systems Wiki Blog Familiar user interface Familiar user interface Accessible, shows flow of discussion Allows for instantaneous discussion Emphasis on documentation Blogger can assert own opinions Cons Not suited to discussion between multiple persons Redundancy from copies of all messages Discussion tends to become derailed Not suited to in-depth discussions Comparatively static medium Not designed for discussion
144

An Introduction to Free/Open-Source Software

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

145

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

146

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

147

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

148

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

149

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

150

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

151

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

152

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

153

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

154

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

155

(6) FOSS Business
Reasons for interest in FOSS business
Relation between changes of IT environment and FOSS business

Entry of Major Vendors into FOSS business
Many manufacturers are moving in FOSS 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

156

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

157

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

158

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

159

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

160

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

161

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

162

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

163

GNU/Linux Market in Japan
Billion Japanese Yen

Forecast for Growth of Linux Business in Japan

500

400

Linux SI Support Linux PF(HW,SW) 160

210

300

200
80 94

120 130 100 80 55
48

100

63
55 70 90 110

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

164

GNU/Linux Environments (World)
Thousands of deployments

Forecast for Growth of Linux Environments Worldwide
4500 4000 3500 3000 2500
1353 1564 1448 1300 1281 1270 1132
1863 2012 2133

non-paid paid 1689

1816

2000 1500 1000 500 0
712 863 1091

1363

1554

1709

2004

2005

2006

2007

2008

2009

2010

Source: IDC, April 2008

2011

2012

An Introduction to Free/Open-Source Software

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

165

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

166

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

167

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

168

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

169

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

170

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

171

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

172

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

173

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

174

(7) Case Studies in FOSS Business
Types of FOSS business
Flagship System integrator
NTT Comware, Nihon Unisys, etc. Case studies in largescale development using FOSS

Distributor
Business strategy of distributors

FOSS specialization Package software Server sales Embedded Embedded development tools In-house business use Education

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

175

Types of FOSS Business
Category Flagship Description Actively provide everything from contract development of systems using own hardware and OSS, to software and hardware maintenance and support Contract development using OSS Packages sales of Linux with various types of OSS, commercial software, installation support, etc. Release own software as OSS; provide support services and contract systems development Specialization in specific OSS; provide support services and contract systems development Sales of Linux-compatible versions of own package software; also provide contract systems development Sales of Linux-equipped PCs and servers Development and sales of OSS-embedded information appliances, PDAs, mobile phones Customization for OSS embedded use; provide development tools and support services for fee Use OSS for own business Provide exams and training courses for OSS qualification and certification Leading Companies IBM Japan, Fujitsu, NEC, Hitachi, HP Japan, etc.

System integrator Distributor

NTT Comware, NEC Soft, etc. Red Hat, Turbolinux, Miracle Linux, etc. Ten Art-ni, NaCl, ForeOneFirst, etc. VA Linux Systems Japan, SRA, Zend Japan, etc. Oracle, NIWS, Horizon Digital Enterprise, F-Secure, etc. Dell, Toshiba, Sun Microsystems, etc. Sony, Matsushita (Panasonic), Toshiba, Sharp, etc. MontaVista Software Japan, Lineo Solutions, AXE, etc. Amazon, Google, Rakuten, Livedoor, etc. LPI-Japan, Red Hat, Linux Training Institute, etc.

In-house OSS OSS specialization Package software

Server sales Embedded Embedded development tools In-house business use 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

176

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

177

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

178

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

179

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

180

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

181

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

182

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

183

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

184

Network Applied Communication Laboratory (NaCl)
Developer of software for ORCA standard receipt computer from Japan Medical Association (JMA)
Commissioned by JMA Japan Medical Association Drives down cost of expensive receipt order computers, by deploying PC servers and FOSS Network JMA proprietary license, resembling GPL Center NaCl

Adoption rate
Started as confidential project in 2000 Official launch (March 2002) Deployed at 1,279 facilities (as of July 2005)

development

ORCA
Certified partner Certified partner

use, improve
Certified partner

ORCA business over 100 system integrators authorized by JMA for ORCA deployment and contract maintenance
Some system integrators have released modified software
An Introduction to Free/Open-Source Software

deploy, maintenance
Hos- Hos- Hos- Hos- Hos- Hos- Hospital pital pital pital pital pital pital

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

185

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

186

ForeOneFirst Co., Ltd.
Francine Web POS system
Sought to increase sales as proprietary product, but product recognition was low Released by OSCAR Alliance (June 2003) OSCAR proprietary license, resembling GPL Main functions: cash register, sales history, product ordering, inventory management, store management, employee attendance management
ForeOneFirst
deploy, operation, maintenance
Cus- Cus- Cus¿Ø ¿Ø tomer tomer tomer

provide FOSS FOSS support

Francine business
Promote sales through association with OSCAR Alliance brand ForeOneFirst ultimately acts as core provider of deployment, customization and support services ForeOneFirst also provides support services for other vendors in OSCAR Alliance

NPO OSCAR Alliance member Vendor

use, improve

Francine

member Vendor

deploy, operation, maintenance
Cus- Cus- Cus- Customer tomer tomer tomer

An Introduction to Free/Open-Source Software

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

187

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

188

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

189

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

190

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

191

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 An Introduction to Free/Open-Source with existing FOSS, etc. works Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

193

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
An Introduction to Free/Open-Source Software

Soum Corporation: Employs leading developers of NetBSD
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

194

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

195

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

196

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

197

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

198

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
Organization NPO LPI Japan Turbolinux Red Hat CompTIA Zend Japan SRA Certification LPIC Level 1 LPIC Level 2 Turbo-CE Turbo-CE Pro RHCT RHCE Linux+ Level Entry Middle Entry Middle Middle Expert Novice Testing Method Online exam. Online exam. Practical exam. Online exam. Nutrality Nutral Vendor depended Vendor depended Nutral Cost 30,000 Yen 30,000 Yen 31,500 Yen 21,000 Yen 94,500 Yen 47,250 Yen 27,825 Yen

An Introduction to Free/Open-Source Software

Vendor Zend PHP Entry Online exam. 33,500 Yen depended Certification PostgreSQL CE Entry 13,650 Yen Silver Vendor Online exam. depended PostgreSQL CE Middle 18,900 Yen Gold Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

199

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 An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

200

(8) FOSS Government Policy and EGovernment
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
An Introduction to Free/Open-Source Software

FOSS adoption trends and their policies

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

201

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

202

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

203

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

204

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

205

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

206

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

207

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

208

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

209

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

210

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.­years 5 D ec. 2002 M ay    28,2002 Jun.2002      ­ Jun.2004   Replace with WebJ     un.16,2004 based systems Jun.2004    ­   2004 Emulators also to be Aug. 2004 Sep, used initially Jan.2005   (VMWare, etc.)
An Introduction to Free/Open-Source Software

clent sur i   vey  conduct ed

m i at on  o  SS  esol gr i t O r ved    t counci at ci y  l
det l pl aied  anni w i h BM   ng  t I and  SE SU

aut i hor zed    t counci at ci y  l
Li nux  i at on  oj   M ux'began m gr i pr ect `Li   pr ect st oj   opped  bacause    ent i ofpat  ssue pr ect r ar ed oj   est t t i   i at on  ar ed  r alm gr i st t

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

211

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

212

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

213

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

214

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 to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

215

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

216

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

217

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

218

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

219

Northeast Asia FOSS Promotion Forum
International collaborative project by Japan, China and South Korea
1st Forum: 2nd Forum: 3rd Forum: Beijing, China (April 2004) Sapporo, Japan (July 2004) 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

220

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)
An Introduction to Free/Open-Source Software

Announced Public Sector Open Source Master Plan (July 2004)
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

221

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

222

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

223

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
An Introduction to Free/Open-Source Software

Case study: Nagasaki prefecture and Hokkaido

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

224

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

225

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

226

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
227

An Introduction to Free/Open-Source Software

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

228

Systems Procurement by Local Government and Issues for Local IT Firms
Situation for local governments (LGs)
LGs may limit bidding to established suppliers 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
C r ed  M R Ibased  eat by    on  m at i s    agasakiPr ect e eral ofN   ef ur

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

Vicious circle

229

Case Study: Nagasaki Prefecture
Systems Procurement by Nagasaki Prefecture
Prefecture staff
Development Spec.
(Requirements, Basic design) ✗ System development is separated by function ✗ Specification requires the use of FOSS C r ed  M R Ibased  eat by    on  m at i s    agasakiPr ect e eral ofN   ef ur

Divide into bidding unit (N) A system

Bidding & Order Local firms (2*N) Development Testng i Development Testng i Development Testng i

Development Spec.

Test Spec. B system
Development Spec.

Local firms

Bidding & Order

Test Spec. C system

Test Specification

Development Spec.

Test Spec.

Ø 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
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

An Introduction to Free/Open-Source Software

230

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

Commitment from the University
Ø Hokkaido Univ. (Open System Engineering Course) Ø Industry-University collaboration project: OpenSOAP

Support from local governments
Ø establishment of FOSS venture firm (Technoface) Ø Hokkaido local govt. “declaration of departure from Windows” Ø Ebetsu City “Branding Dictionary” project Ø 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

231

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

232

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,pr de  1 ato    s o  udent i   ovi 1: r i ofPC t st s n  com put  abs  erl and  4 ato    udent t each  5. r i ofst s o  educatonalPC  n egul   assr i   i r arcl oom 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

233

Situation in Japanese Schools
Inadequate funds to deploy, Instruction using IT administer and operate IT equipment equipment Various experimental programs are being tried Administration of equipment
Administration of equipment frequently left up to select group of knowledgeable teachers Imposes extra workload on teachers Volunteer staffs from PTA committees or alumni sometimes build systems Inadequate safeguards for security and privacy, despite sensitivity toward these issues
An Introduction to Free/Open-Source Software

Implementation varies widely depending on school board, school and teacher Active use of multimedia content

Reaction to FOSS from students
Able to quickly take in new ideas Some teachers commented that they learned new things from students
234

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

235

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

236

(9) Feature of FOSS
Performance
How is performance of FOSS products?

Security
Is the security of FOSS product high or low?

Cost
Is it possible to reduce cost by FOSS?

Educational benefits
What is educational efficiency from FOSS?

Vendor lock-in
What is vendor lock-in? How to avoid vendor lock-in by adopting FOSS?

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

237

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

238

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

239

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

240

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

241

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

242

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

243

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

244

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

245

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

246

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

247

Examples of Lock-In Business Strategies
Rewards programs
Leading examples
Credit card companies Frequent flier programs Mail order companies and mass merchandisers

Mobile phone carriers and ISPs
Frequently introduce new models and services Users do not wish to change mobile numbers and e-mail addresses
Introduction of mobile number portability may reduce lock-in advantage
MNP: Mobile Number Portability

Everyday examples
Frequent buyer cards from retailers Restaurant coupons

Car dealers
Preferential trade-in programs for car brands from same manufacturer Frequent model changes
An Introduction to Free/Open-Source Software

Worst case of vendor lock-in
“One yen bid”
Bid on first year at low cost Gain highly profitable private contracts in after the second year
248

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

249

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

250

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

251

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

252

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

253

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

254

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

255

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

256

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

257

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

258

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

259

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

260

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

261

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

262

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

263

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

264

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

265

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

266

(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 Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

267

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

268

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

269

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

270

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

271

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

272

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

273

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

274

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.
An Introduction to Free/Open-Source Software

Open Source Risk Management (US firm)

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

275

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

276

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

277

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

278

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

279

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

280

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

281

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

282

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

283

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

284

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

285

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 Different Different Different etc... icons menu placement or menu titles keyboard shortcuts error messages

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

286

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

287

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

288

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

289

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

290

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

291

(11) Development Tools
We have variety of FOSS development tools
Developers make a new tool for themselves Plenty of tools for distributed development
Based on FOSS development via the Internet

Development tools
Compiler Debugger Analyzer, profiler Source code management Maintaining compatibility Localization Documentation IDE based on GUI Bug tracking tools

GUI-based tools are increasing, in addition to conventional CUI-based 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

292

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

293

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

294

Make
To help manage build process Marking of dependency and processing method
Rules (compile, link, installation, etc.) are described in makefile
Autotools convenient for automatic generation of rules
PACKAGE = hogehoge SRCS = $(PACKAGE).c OBJS = $(SRCS:.c=.o) FILES = README Makefile $(HEADS) $(SRCS) VER = `date +%Y%m%d` CC = gcc CFLAGS = -g -O2 -Wall $(DEBUG) CPPFLAGS = -I. .SUFFIXES: .SUFFIXES: .o .c .cc .f .p all: $(PACKAGE) $(PACKAGE): $(OBJS) $(LD) $(LDFLAGS) $(OBJS) -o $@ $(LDLIBS) $(OBJS): $(HEADS) Makefile .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ .cc.o: $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ .f.o: $(FC) $(FFLAGS) -c $< -o $@ .p.o: $(PC) $(PFLAGS) $(CPPFLAGS) -c $< -o $@ clean: $(RM) $(PACKAGE) $(OBJS) $(RM) core gmon.out *~ #*#

Build optimization
Looks up time of last update and only executes minimum build needed
An Introduction to Free/Open-Source Software

Makefile example
295

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

296

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

297

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

298

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

299

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

300

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; }
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

An Introduction to Free/Open-Source Software

301

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

302

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

303

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

304

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 time seconds 100.00 0.40 0.00 0.40
An Introduction to Free/Open-Source Software

self seconds 0.40 0.00

calls 80 3

self ms/call 5.00 0.00

total ms/call 5.00 133.33

name func2 func1

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

305

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

306

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

307

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

308

Diff, Patch
Patchfile (shown at right)
Shows differences between files

Diff and patch
diff
Tool to generate differences

patch

*** hello.c 2005-06-17 17:46:46.000000000 +0900 --- nice.c 2005-06-17 17:47:04.000000000 +0900 *************** *** 3,5 **** int main(void){ ! printf("Hello World!\n"); return 0; --- 3,5 ---int main(void){ ! printf("Nice to meet you!\n"); 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

309

Version Control (SCCS, RCS, CVS, Subversion)
SCCS and RCS
files

Commands in CVS and Version control for single Subversion
checkout
Creates working copies from repository

CVS
Creates working copies on client based on contents of server (repository) Enables concurrent editing of same file by multiple persons

commit
Saves to repository

update
Updates working copies

add/delete
Adds and deletes files

Subversion
Addresses downsides of CVS (inability to move or delete directories, etc.)
An Introduction to Free/Open-Source Software

diff
Shows differences between files

status
Shows status of files
310

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

311

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

312

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

313

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 i nzuf uegen" msgid "Edit" msgstr "Edii en" ter
An Introduction to Free/Open-Source Software
Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

314

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

315

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

316

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

317

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

318

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

319

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

320

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

321

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

322

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

323

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

324

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

gzi /gunzi p   p  bzi /bunzi p2   p2

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)
An Introduction to Free/Open-Source Software

make; make install

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

325

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

326

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

327

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

328

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

329

Types of Components (Data Structure, XML, GUI, Etc.)
Data structure
STL

Web page
HTMLParser

XML
Libxml, libxslt

Database
ODBC, JDBC

GUI
GTK+, Qt, Glade

Device
Libusb, v4l

Network Web service
OpenSOAP, Mono

Multimedia
Imlib, SDL

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

330

Language Specific Components
Available libraries and specifications Java
J2EE, Struts Java Community Process (JCP)
Develops technology specifications

PHP
PEAR
http://pear.php.net/

Smarty
http://smarty.php.net/

Perl
CPAN
http://www.cpan.org/

C
Multitude of components such as GTK+, Qt, etc. XPG
APIs and commands to be provided by Unix

Python
Python Cheese Shop (formerly PyPI)
http://www.python.org/pypi

C++
STL
Standard Template Library
An Introduction to Free/Open-Source Software

Ruby
RAA
http://raa.ruby-lang.org/ 331

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

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

332

Web System
PHP software components
PEAR
Library for improving reusability of code
Browser

Apache HTML PHP Mojavi View
Controller

Mojavi
MVC framework

Smarty
Template engine

Template

Advantages
Simplifies support for different DBMSs Simple to reuse code Divides labor of programmers and designers
An Introduction to Free/Open-Source Software

Model PEAR::DB DB MySQL Linux
Postgre SQL

Smarty

etc...

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

333

Web System – PEAR::DB
PEAR::DB
Integrated interface for DBMSs PHP uses different functions for each DBMS
Changing DBMS requires major changes to code
// Connection $connection = mysql_connect($host, $user, $pass); mysql_select_db($dbname); // SQL execution $sql = "SELECT * FROM testtable"; $result = mysql_query($sql); // disconnection mysql_close($connection);

Advantage of using PEAR::DB
Change just one part of code

// Declaration of PEAR::DB include("DB.php"); // Type of Database $type = "mysql"; // Connection $db = DB::connect ("$type://$user:$pass@$host/$dbname"); // SQL execution $sql = "SELECT * FROM testtable"; $result = $db->query($sql); // disconnection $db->disconnect();

Other classes for PEAR
Authentication, testing, networking, XML, 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

334

Web System – Smarty
Template engine
Improves design presentation Intuitive for designers Does not affect input and output for Web design software
<h1> <? print $title; ?> </h1> <table> <? for (i=0; $i<=10; i++) { print “<tr><td>”.$array[$i].”</td></tr>”; } ?> </table>

Smarty
Used for XOOPS and Rakuten (leading ecommerce site in Japan) systems
Many acceleration features
An Introduction to Free/Open-Source Software

<h1>{$title}</h1> <table> {section name=i loop=$array max=”10”} <tr><td>{$array[i]}</td></tr> {/section} </table>

Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved. Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

335

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 CHECKSUMS ChangeLog README bin COPYING INSTALL THANKS build $

config doc extra

man pkg src

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

336

Location of Application Files
File configuration after unpacking
AUTHORS CHECKSUMS COPYING COPYING.LIB ChangeLog INSTALL NEWS README THANKS VERSION
Author’s name Checksums for each file Copyright notice Copyright notices for libraries Update history Installation information News First file to read Acknowledgements Version information

bin build config doc extra man pkg src tests tools

Location for binary code Contains source code to generate necessary builds for each platform Contains files used by Autotools Contains documentation Contains files used for testing Contains manuals Contains files necessary for packaging such as for RPM, deb, etc. Contains main source code Contains code for testing 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. Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.

337

Sign up to vote on this title
UsefulNot useful