0% found this document useful (0 votes)
202 views24 pages

What Is Free/Open-Source Software (FOSS) ?

Introduction to Free / Open-Source Software (FOSS) examines the skills required for FOSS engineers, and the career paths. Examines the value, quality, innovation Freedom of choice a lot of flexibility Security cost.

Uploaded by

Marko Schuetz
Copyright
© Attribution (BY)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
202 views24 pages

What Is Free/Open-Source Software (FOSS) ?

Introduction to Free / Open-Source Software (FOSS) examines the skills required for FOSS engineers, and the career paths. Examines the value, quality, innovation Freedom of choice a lot of flexibility Security cost.

Uploaded by

Marko Schuetz
Copyright
© Attribution (BY)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

(1) What is Free/Open-Source

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

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 1
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Why Choose Free/Open-Source
Software?
Reasons for interest Contents
in FOSS What is FOSS?
Standards (open Major FOSS Packages and
standards) Distributions
Value, quality, innovation Philosophy and History of FOSS
Freedom of choice FOSS Development and FOSS
A lot of flexibility Community
Security FOSS in Business and Case
Studies
Cost
FOSS and Government Policy,
E-government
Purpose of this course
Features and Issues with FOSS
Learn about significance
of FOSS Development Tools
Understand benefits of Software Components and
FOSS Examples of Application
Building
Learn how to use FOSS
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 2
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Process of Writing Software
Operating principles of computers
Confirming the basics of computers

Binary code and source code


Why the source code is so important?

Compilers and interpreters


Divided into two categories

Programming languages
Overview of typical programming languages

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 3
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Operating Principles of Computers
Von Neumann architecture
Executes a sequence of instructions stored in memory
Machine language
Binary code
Difficult for people to read
Evolution from 8-bit to 16-bit, then 32-bit and now 64-bit

Computer configuration
Central processing unit (CPU)
Storage devices
Primary storage device (memory)
Secondary storage device (external memory, hard drive,
etc.)
Input/output devices
LCD/CRT display, keyboard, mouse, printer, etc.

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 4
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Binary Code and Source Code
Binary code
0010000 0a29 2020 2020 2023 6874 7369 6920 2073

Machine language (native code) 0010020


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

Example of instruction set directly


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

executable by CPU 0010220


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

Represented by hexadecimal numbers 0010320


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

Byte-code
Executed by virtual machine
/*

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

Source code uint shortcount, leafcount, count;

mp->m_dirversion = 1;
shortcount = (mp->m_attroffset -
Programming language (uint)sizeof(xfs_dir_sf_hdr_t)) /
(uint)sizeof(xfs_dir_sf_entry_t);
leafcount = (XFS_LBSIZE(mp) -
Understandable to people (uint)sizeof(xfs_dir_leaf_hdr_t)) /
((uint)sizeof(xfs_dir_leaf_entry_t) +
(uint)sizeof(xfs_dir_leaf_name_t));
Modifiable
Requires conversion to binary code
Conversion by compiler, byte-code
compiler or interpreter
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 5
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Compilers and Interpreters
Compiler
Converts source code to binary code during compiling
Advantages of compiled languages
Low overhead during execution; high-speed execution
Drawback of compiled languages
Changes in source code require recompiling
Interpreter (scripting languages are also a type of
interpreted language)
Source code interpreted at each execution
Advantages of interpreted languages
No compiling required; easy to create codes
Drawbacks of interpreted languages
Inferior performance during execution; not suited for
large-scale systems
Some interpreted languages are first compiled each time to
an intermediate language before being executed
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 6
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Programming Languages
Major compiled languages
C language
Object-oriented extensions of C
C++
Objective-C
Conversion: C -> Assembler* -> Machine language
*Assembly language corresponds nearly code-for-code
with machine language, but is designed for people to
read
FORTRAN, Pascal
Programming languages that use byte-code interpreter
(Virtual Machine type)
Java, C# (.Net)

Major interpreted languages


Perl, PHP, Python, BASIC, LISP, Ruby and many others
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 7
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FOSS and Proprietary
Software
Software as a product
Difference between software product and 'goods'

Issues with software products


Problems such as illegal copy and piracy

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

Emergence of Free/Open-Source
Spotlighted as a novel software paradigm
Turning point of software business

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 8
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Software as a Product
Traditionally, software had a strong “freebie”
element
Accessories to hardware
OS, applications and other minute software
Basic reservations about paying for immaterial goods
Commoditization of computers (from mid-90s)
Package software became commonplace
Proprietary software emerged as product
Difference between software and material goods
Negligible cost to copy
Rampant illegal copying and piracy
Difference between software and information content
(music, film)
Software requires 100% integrity (zero tolerance for
“noise” or data corruption)
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 9
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Issues with Software Products
Illegal copying, piracy Vulnerabilities
Casual copying Security holes
Particularly rampant in Bugs
Asia (but incidence is Increased complexity
not necessarily zero in of software
US/Europe)
Accelerated by
developments in P2P
technology
Winny
WinMX
gnutella
Demise of copyright
system?

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 10
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Countermeasures
Measures against illegal Measures to address
copying vulnerabilities
Hardware-based solutions Patches
USB dongles, etc. Security patches
Copy protection technology Bug patches
Superdistribution systems Automatic updates
Digital watermarks Cost of maintenance
Software-based cannot be ignored
countermeasures
License keys
Serial keys
Non-technology solutions
Comprehensive licensing
agreements
Educational initiatives
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 11
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Emergence of FOSS
Freedom to copy
Solution to piracy issue
Does not equate to discarding copyright
Software use managed through license

Can counter the risk of vulnerabilities


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

Paradigm shift in software products


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

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 12
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Releasing Source Code
Levels of publishing source code
Inadequate just releasing source code

Effects of publishing source code


Many benefits for both users and developers

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 13
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Levels of Releasing Source Code

1. Readable source code


Useful for technology acquisition and security audit
Ex. Early Unix, Shared Source (Microsoft)
[Link] source code for local use
For customization or tuning
Embedded use is permitted
Source code may not be redistributed
[Link] usable, modifiable and redistributable
source code
Qualifies as FOSS
Enables smooth implementation of bazaar-style joint
development
Distributable as part of a distribution

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 14
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Benefits of Releasing Source Code

Benefits for developers and development


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

Benefits for users


For users capable of modifying source code
Ability to fix by oneself if problem occurs (maybe)
Ability to perform detailed customization (maybe)
Learn operating principles and acquire technology
Other users
Indirectly benefit from releasing of source code
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 15
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Truth and Misunderstanding about
FOSS
“Open Source” is a proper noun
That is also trademarked

“Free Software” and “Free Beer”


Freedom and free-of-charge

Is it adequate only publishing source code?


More than just releasing source code

FOSS movement is neither totalitarian nor


communist
Based on selfish idea rather than altruistic
cf. “Benefits of Releasing Source Code”

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 16
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
“Open Source” is a Proper Noun

Terms that are proper nouns by definition:


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

Becoming common nouns


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

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 17
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
“Free Software” and “Free Beer”

“Free Software” is freedom software


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

“Free Beer” is beer without charge


Freedom of beer is not guaranteed

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 18
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
More Than Just Publishing Source Code

Publishing source code doesn’t make it


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

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

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 19
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
FOSS Technology and Career Paths

Skill set for FOSS engineers


What skills are required for FOSS engineers?

Types of FOSS engineers


When and what FOSS technologies are used?

Skill Matrix for FOSS engineers


Particular requirement for each types of FOSS
engineers

Career Paths for FOSS engineers


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

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 20
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Skill Sets for FOSS Engineers
FOSS fundamentals Development basics
Understanding FOSS (01) Computing basics (C1)
Getting involved in FOSS Computer languages (C2)
development (02) System development
techniques (C3)
Unix systems Project management (C4)
Unix operation (l1)
Unix system management (l2) Technology
Unix server management (l3) Choose as necessary
Databases (T1)
FOSS development Networks (T2)
environment Web services (T3)
FOSS development tools (D1) Middle-ware (T4)
FOSS software components Multimedia (T5)
(D2) etc...
An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 21
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Types of FOSS Engineers
FOSS system engineers
Develop, maintain and manage systems that use FOSS
System administrators
System integrators

FOSS application engineers


Application developers
Use FOSS tools, languages or components to develop
applications (contract development)
Package developers
Use FOSS tools, languages or components to develop
package software

FOSS developers
Engineers who develop the FOSS itself

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 22
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Skill Matrix for FOSS Engineers
System
Applicatio
Package
OSS PBL
System n Developmen Classroom lectures
Administrator Integrator Developer (Project
Developer t Hands-on trainings based
Skill Level 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Learning)
FOSS
Integra Common

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


System OSS

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

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

tion

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

D1      
OSS

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


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

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

University / Professional school


System Development Method                           ¿      

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

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

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

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

Code reading
Technology

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


T5 Multimedia                                              
T6 Platform                                        
T7 High Performance                           ↓  ↓   ↓  ↓ 
T8 Security    À                   Security
Seminar
T9 Standardization                                        
T10 Legacy Migration                                                

* Legend * Skill level


-  To be learned basic skills - Level 1 : Junior engineers who needs others help
-  To be learned advanced skills - Level 2 : Senior engineers that can do their jobs independently
-  Central skills for the engineer - Level 3 : Leading engineers in their section

An Introduction to Free/Open-Source Software Copyright © 2005,2006, Center of the International Cooperation for Computerization (CICC) All Rights Reserved.
Copyright © 2005,2006, Mitsubishi Research Institute, Inc. All Rights Reserved. 23
Copyright © 2008, University of Puerto Rico at Mayaguez. All Rights Reserved.
Career Paths for FOSS Engineers
t t ont
g nt
ec c t nt l is t i r e nt er n n
in s t a i t je m e a a i s a e m e i o i o
t e ul ch ci ic ial ftw pm sto vic at at
ke al s r
o
Pr ag
e e l e r c
ar S
on A p c
Sp Ap pe So el C u er
s pe du
M C IT an IT s v O E
m de

FOSS specialist can offer technical


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

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

You might also like