What Is Free/Open-Source Software (FOSS) ?
What Is Free/Open-Source Software (FOSS) ?
Software(FOSS)?
Why choose Free/Open-Source Software?
The processes involved in writing software
understand the importance of source code to software
FOSS and proprietary software
Differences between FOSS and proprietary software
Releasing source code
the merits of releasing source code
Misunderstandings and the truths about FOSS
FOSS engineers and the career paths
examine the skills required for FOSS engineers, and
the career paths
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 1
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Why Choose Free/Open-Source
Software?
Reasons for interest Contents
in FOSS What is FOSS?
Standards (open Major FOSS Packages and
standards) Distributions
Value, quality, innovation Philosophy and History of FOSS
Freedom of choice FOSS Development and FOSS
A lot of flexibility Community
Security FOSS in Business and Case
Studies
Cost
FOSS and Government Policy,
E-government
Purpose of this course
Features and Issues with FOSS
Learn about significance
of FOSS Development Tools
Understand benefits of Software Components and
FOSS Examples of Application
Building
Learn how to use FOSS
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 2
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Process of Writing Software
Operating principles of computers
Confirming the basics of computers
Programming languages
Overview of typical programming languages
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 3
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Operating Principles of Computers
Von Neumann architecture
Executes a sequence of instructions stored in memory
Machine language
Binary code
Difficult for people to read
Evolution from 8-bit to 16-bit, then 32-bit and now 64-bit
Computer configuration
Central processing unit (CPU)
Storage devices
Primary storage device (memory)
Secondary storage device (external memory, hard drive,
etc.)
Input/output devices
LCD/CRT display, keyboard, mouse, printer, etc.
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 4
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Binary Code and Source Code
Binary code
0010000 0a29 2020 2020 2023 6874 7369 6920 2073
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)
{
mp->m_dirversion = 1;
shortcount = (mp->m_attroffset -
Programming language (uint)sizeof(xfs_dir_sf_hdr_t)) /
(uint)sizeof(xfs_dir_sf_entry_t);
leafcount = (XFS_LBSIZE(mp) -
Understandable to people (uint)sizeof(xfs_dir_leaf_hdr_t)) /
((uint)sizeof(xfs_dir_leaf_entry_t) +
(uint)sizeof(xfs_dir_leaf_name_t));
Modifiable
Requires conversion to binary code
Conversion by compiler, byte-code
compiler or interpreter
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 5
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Compilers and Interpreters
Compiler
Converts source code to binary code during compiling
Advantages of compiled languages
Low overhead during execution; high-speed execution
Drawback of compiled languages
Changes in source code require recompiling
Interpreter (scripting languages are also a type of
interpreted language)
Source code interpreted at each execution
Advantages of interpreted languages
No compiling required; easy to create codes
Drawbacks of interpreted languages
Inferior performance during execution; not suited for
large-scale systems
Some interpreted languages are first compiled each time to
an intermediate language before being executed
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 6
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Programming Languages
Major compiled languages
C language
Object-oriented extensions of C
C++
Objective-C
Conversion: C -> Assembler* -> Machine language
*Assembly language corresponds nearly code-for-code
with machine language, but is designed for people to
read
FORTRAN, Pascal
Programming languages that use byte-code interpreter
(Virtual Machine type)
Java, C# (.Net)
Countermeasures
What were the countermeasures against such issues in
the past?
Emergence of Free/Open-Source
Spotlighted as a novel software paradigm
Turning point of software business
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 8
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Software as a Product
Traditionally, software had a strong “freebie”
element
Accessories to hardware
OS, applications and other minute software
Basic reservations about paying for immaterial goods
Commoditization of computers (from mid-90s)
Package software became commonplace
Proprietary software emerged as product
Difference between software and material goods
Negligible cost to copy
Rampant illegal copying and piracy
Difference between software and information content
(music, film)
Software requires 100% integrity (zero tolerance for
“noise” or data corruption)
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 9
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Issues with Software Products
Illegal copying, piracy Vulnerabilities
Casual copying Security holes
Particularly rampant in Bugs
Asia (but incidence is Increased complexity
not necessarily zero in of software
US/Europe)
Accelerated by
developments in P2P
technology
Winny
WinMX
gnutella
Demise of copyright
system?
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 10
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Countermeasures
Measures against illegal Measures to address
copying vulnerabilities
Hardware-based solutions Patches
USB dongles, etc. Security patches
Copy protection technology Bug patches
Superdistribution systems Automatic updates
Digital watermarks Cost of maintenance
Software-based cannot be ignored
countermeasures
License keys
Serial keys
Non-technology solutions
Comprehensive licensing
agreements
Educational initiatives
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 11
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Emergence of FOSS
Freedom to copy
Solution to piracy issue
Does not equate to discarding copyright
Software use managed through license
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 12
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Releasing Source Code
Levels of publishing source code
Inadequate just releasing source code
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 13
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Levels of Releasing Source Code
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 14
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Benefits of Releasing Source Code
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 16
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
“Open Source” is a Proper Noun
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 17
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
“Free Software” and “Free Beer”
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 18
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
More Than Just Publishing Source Code
FOSS checklist
Does released source code actually run?
Is it compilable?
Modifying source code permitted?
Redistribution of modifications permitted?
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 19
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FOSS Technology and Career Paths
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 20
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Skill Sets for FOSS Engineers
FOSS fundamentals Development basics
Understanding FOSS (01) Computing basics (C1)
Getting involved in FOSS Computer languages (C2)
development (02) System development
techniques (C3)
Unix systems Project management (C4)
Unix operation (l1)
Unix system management (l2) Technology
Unix server management (l3) Choose as necessary
Databases (T1)
FOSS development Networks (T2)
environment Web services (T3)
FOSS development tools (D1) Middle-ware (T4)
FOSS software components Multimedia (T5)
(D2) etc...
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 21
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Types of FOSS Engineers
FOSS system engineers
Develop, maintain and manage systems that use FOSS
System administrators
System integrators
FOSS developers
Engineers who develop the FOSS itself
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 22
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Skill Matrix for FOSS Engineers
System
Applicatio
Package
OSS PBL
System n Developmen Classroom lectures
Administrator Integrator Developer (Project
Developer t Hands-on trainings based
Skill Level 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Learning)
FOSS
Integra Common
development
O2 OSS Community Participation ¿ of training course!!
integration
Network
I1 UNIX Operation Training course
UNIX
tion
I2 UNIX System Administration À for Linux
I3 UNIX Server Administration À certification
OSS Software Components ¿ We need this types
Dev.
Env.
D1
OSS
Software Development
C3
PMBOK
Project Management ¿
Training Course
C4 Seminar
T1 Database ↑ ↑ ↑ ↑ ↑ ↑
Package development
FOSS tuning
T2 Network
development
Web system
T3 Web Service
Code reading
Technology
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 23
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Career Paths for FOSS Engineers
t t ont
g nt
ec c t nt l is t i r e nt er n n
in s t a i t je m e a a i s a e m e i o i o
t e ul ch ci ic ial ftw pm sto vic at at
ke al s r
o
Pr ag
e e l e r c
ar S
on A p c
Sp Ap pe So el C u er
s pe du
M C IT an IT s v O E
m de
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 24
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.