Intro to FOSS What is FOSS?
Outline Key principles of FOSS Some key players in early FOSS History of FOSS movement Why you should care Which came first, the chicken or the egg? FOSS as a new movement vs. Return to our roots
In the beginning Computers custom hardware, no real programming languages, little reuse, little distinction between HW/SW From IBM Archives. Then there was light Computers eventually available at large corporations & universities First programming languages Most users experts, pushing the envelope of what computers could do Software seen as a value-add that enabled the sale of more hardware Shared between user or between users and companies, free upgrades
Then the computer became a commodity Computers and big business Productivity enhancement More varied tasks; text processing, editing, email etc Used by secretaries, salesmen, accountants, CS students etc Source: http://www.columbia.edu/acis/history/vt100.html This was the 60 s & 70 s Whole Earth Catalog Sort of like Google in paperback form (Steve Jobs) Stewart Brand saw technology as a tool for individual and collective transformation (Fred Turner) People s Computer Company Educated people on how to use computers People gathered around time-share computers Culture promoted free exchange of software
The dawn of the personal computer Homebrew Computer Club Meeting of hobbyists interested in building personal computers Many had access to computers in universities Launch of Altair 8800 Jan 1975 ~$400 The dawn of the personal computer & the first software companies Homebrew Computer Club Meeting of hobbyists interested in building personal computers Many had access to computers in universities Launch of Altair 8800 Jan 1975 ~$400 Basic available, written by Bill Gates & Paul Allan => Microsoft Pirated at launch meeting
UNIX System V Unix originally developed by MIT, AT&T Bell Labs, GE & others as a tool for developers (toy project) As UNIX grew more powerful & computers became more powerful and common, there was a need for a standard platform AT&T originally licensed as open source under an anti-trust settlement, source widely disseminated 1983 AT&T allowed to commercially license UNIX Free software movement Richard Stallman Programmer at MIT AI Lab Caught out by UNIX switch & changes in copyright law (Copyright act of 1976) First software patents issued in 1981 Launched GNU operating system plan in Sept 1983 Goal: Create a free and open UNIX distribution Other achievements First Open source license (GPL) Introduced concept of copy-left Published GNU manifesto
Free as in freedom not as in beer Free Software Manifesto Free software gives recipients 4 key freedoms: Freedom 0: The freedom to run the program for any purpose. Freedom 1: The freedom to study how the program works, and change it to make it do what you wish. Freedom 2: The freedom to redistribute copies so you can help your neighbor. Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.
Linus & Linux Released in October 1991 Added missing component to GNU effort (kernel) Netscape Netscape open sourced in 1998 Getting beaten up by MS Aim was to gain upper hand via innovation First widely known/used Open Source consumer application FOSS moves from server room to living room
Free doesn t sell The birth of Open Source Open Source Initiative founded in 1998 by Eric S. Raymond & Bruce Perens Netscape had been launched as an open source project Linux making inroads, companies emerging around that space How do you convince a real company to pay money for free software Free as in freedom not as in beer statement cute, but not cutting it in the boardroom Dump the moralizing and confrontational attitude that had been associated with 'free software' in the past and sell the idea strictly on the same pragmatic, businesscase grounds that had motivated Netscape. Michael Tiemann The Open Source Initiative Promoted open source definition 1. Free Redistribution: The license shall not restrict any party from selling or giving away the software as a component of an aggregate software. The license shall not require a royalty or other fee for such sale. 2. Source Code: The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost preferably, downloading via the Internet without charge. 3. Derived Works: The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software. 4. Integrity of The Author's Source Code: The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. 5. No Discrimination persons: The license must not discriminate against any person or group of persons. 6. No Discrimination Against Fields of Endeavor: The license must not restrict anyone from making use of the program in a specific field of endeavor. 7. Distribution of License: The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties. 8. License Must Not Be Specific to a Product: The rights attached to the program must not depend on the program's being part of a particular software distribution. 9. License Must Not Restrict Other Software: The license must not place restrictions on other software that is distributed along with the licensed software. 10. License Must Be Technology-Neutral: No provision of the license may be predicated on any individual technology or style of interface.
The Open Source Initiative Coined term Open Source Promoted open source definition Standardized FOSS licenses Served as a unified and business friendly promoter Promoted studies of the cost effectiveness and soundness of Open Source solutions Free Software = Open Source (?) Open Source vs. Free Software vs. FOSS vs. FLOSS Or: how to miss the forest for the trees I usually decline to participate in "open source" or "Linux" events. See http:// goo.gl/aejuq for why it is incorrect to refer to the operating system as "Linux". "Open source" is the slogan of a position that was formulated as a reaction against the free software movement. Those who support its views have a right to promote them, but I disagree with them and I want to promote the ideals of free software. However, I will agree to participate in events labeled "Free Software and Open Source", provided that my speech is not the principal draw of the event.
Other attacks & Fallacies Bill Gates vs. Altair hackers The rise of software companies Raymond vs. Microsoft Microsoft claim GPL -> license pollution Linux license pollution FOSS = unemployed programmers/ devaluation of software FOSS = insecure/unsupported software The success of Open FOSS spirit moved beyond software Creative commons Open patents Open hardware Open science Open standards
Examples of FOSS Apache web server Sendmail Linux Mozilla Firefox Thunderbird Eclipse Open Office Perl, Python, Ruby, TCL/TK, PHP, Zope GNU compilers for C, C++, Objective-C, Fortran, Java, and Ada Benefits of FOSS Gives everyone opportunity to improve software New versions of software appear more frequently Eliminates tension between obeying law and helping others Programs belong to entire community Shifts focus from manufacturing to service
Why do we care? FOSS today is a major mainstream movement Knowing how to work with FOSS communities and FOSS software (not just applications but tool chains) increasingly valued in the marketplace FOSS movement increasingly shifting from one driven by personality and ideology and into one driven by financial/humanitarian motivations FOSS and increasingly viable way for students to get real hands-on experience with code rather than just a theoretical background