1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
What is open source? How does it work?
Who writes code for nothing and why?
- traditional software model
- product-oriented
- company finances development of software
- same copy of software object code is sold under a very restrictive
license
- license fees refinance cost of development
- enforcement of restrictive license guarantees revenue
- advantages
- proven business model
- disadvantage
- have to develop everything on your own or buy licenses of 3rd
party software
- less flexibility for the customer
- does the customer trust the 'black box' you are selling?
- if vendor goes out of business, no bugfixes/updates
- open source model
- service based
- individual parties contribute code parts
- software is distributed for free
- software is distributed under very permissive license
- service / support / customization refinance development
- advantages
- vast amount of available FOSS can be used as foundation for
own products
- source code is available for peer review
- bug fixes for free, people just send you patches
- new features impelemented by your users!
- disadvantage
- business model has yet to be proven to work
- important open source license
- BSD style license
- permits any use of the sourcecode as long as copyright notice
remains
- GPL (GNU General Public License)
- source for resulting binary has to be provided
- ensures that derivates of free software are still free
- LGPL (GNU Lesser General Public License)
- permits linking with non-gpl code (mainly used for libraries)
- difference free software / open source
- term 'free software' (free as in freedom, not beer) introduced by
Stallman / FSF 1984.
- focus on political/ethical/philosophical freedom
- open source software (OSS) introduced by OSI in 1997
- focus on technological advantage by means of source review
- most FOSS licenses match both definitions, OSS less restrictive
- history of FOSS
- initially software always for free in source (e.g. IBM S/360)
- as hardware gets less expensive, companies start to license
software for money
- some people (Stallman, et. al.) didn't want to give up the freedom
they're used to.
- 1983: GNU project is founded, goal: Implementation of a free UNIX-like
operating system
- 1984: Free Software Foundation is established as non-for-profit legal
entity behind the GNU project
- 1991: Linus Torvalds releases the first version of the Linux Kernel
under the GNU GPL license. Together with the other parts from the
GNU project and others, a 100% free operating system is available
- 1994-2000: Free Software is increasingly recognized as reliable,
stable alternative to proprietary software
- Who is behind FOSS?
- in the beginning mostly computer enthusiasts with academic background
- motivation through
- fight: david <-> goliath
- to show how bad most proprietary software is
- to make the internet a better place
- to work together with _very_ good programmers
- to gain more experience / better reputation
- more and more commercial entities recognize the value of FOSS
- contributions to existing projects
- start of new projects
- contracting consultants and FOSS companies for implementation
of missing features
- experienced end-users
- independent consultants
- academic institutions (e.g. exim, cyrus)
- mixed FOSS / proprietary companies (like Astaro)
- use FOSS as foundation for their proprietary solutions
- have a vital need for a reliable and up-to-date foundation,
thus contribute back to and/or fund FOSS
- development process, communication
- everybody who agrees to the license can contribute code
- project is usually started by a single developer or a small group
- different actors:
- maintainer: official person to maintain the code, responsible
- core team: small group of leaders behind the project
- developers: people who write code on a regular basis
- contibutors: people who contribute a single feature or a bug
fix from time to time
- users: people who use the software, often organized on
mailinglists, newsgroups, user groups, ..
- main communication medium are mailinglists
- every developer can be contacted directly via email
- leaders/managers are people with the best technical skills, unlike the 'commercial world' where you need certain diploma, connections, ...
- communication is random. no manager <-> manager talk about technical
stuff they don't understand
|