11.07.2015 Views

ACM Talk on FOSS - Department of Computer Science

ACM Talk on FOSS - Department of Computer Science

ACM Talk on FOSS - Department of Computer Science

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Proprietary S<strong>of</strong>tware●●●Alternative to <strong>FOSS</strong> is Proprietary, ClosedSource S<strong>of</strong>tware.Proprietary:– numerous restricti<strong>on</strong>s <strong>on</strong> use, embodied in EULAs(End User License Agreements)– e.g., how many instances can be run at <strong>on</strong>ce, whatmachines can run <strong>on</strong>, illegal to reverse engineer, howmany clients can c<strong>on</strong>nect, need activati<strong>on</strong>, etc.Closed Source:– <strong>on</strong>ly binary/executable versi<strong>on</strong> <strong>of</strong> program isprovided–cannot examine nor modify codeFree and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> Examples●●●●●●●●Linux (operating system)KDE, GNOME, Xfce (desktop envir<strong>on</strong>ments)Android (ph<strong>on</strong>e operating system/envir<strong>on</strong>ment)Apache (web server)MySQL, PostgreSQL (DBMS's/servers)Perl, PHP, Pyth<strong>on</strong> (scripting languages)OpenOffice (<strong>of</strong>fice s<strong>of</strong>tware suite)GCC (GNU compiler collecti<strong>on</strong>)Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> Examples (c<strong>on</strong>td.)●●●●●●●●GNU toolchain: Autoc<strong>on</strong>f, make, etc.Git, Subversi<strong>on</strong>, CVS (versi<strong>on</strong> c<strong>on</strong>trol systems)OpenSSH (SSH server)Sendmail, Postfix (email transport s<strong>of</strong>tware)Octave (GNU Matlab cl<strong>on</strong>e)GIMP (image manipulati<strong>on</strong> a la Photoshop)Wordpress (blogging)Drupal (c<strong>on</strong>tent management system)Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> Characteristics●●●●●Often built collaboratively via Internet.Support for <strong>FOSS</strong> is typically provided viamaillists, newsgroups, and web forums.Most <strong>FOSS</strong> is free <strong>of</strong> cost (“free beer”), so noc<strong>on</strong>tinual cost for “upgrades.”Not limited to running single instance or havingto guarantee license provisi<strong>on</strong>s are being met.Many companies exist to provide support orcustomizati<strong>on</strong> for businesses using <strong>FOSS</strong>.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History●●●●●1960's and 1970's: s<strong>of</strong>tware was largely providedby computer companies and freely shared.1969: UNIX developed at AT&T Bell Labs.1969: ARPANET created.1970's: AT&T provides CS departments withUNIX source code and encouraged modificati<strong>on</strong>s(could not sell due to 1974 antitrust findings).1975: Micros<strong>of</strong>t founded, first product is BASICfor MITS Altair (an early microcomputer).Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●●1976: Bill Gates accuses hobbyists <strong>of</strong> stealing hiss<strong>of</strong>tware, thus preventing “good s<strong>of</strong>tware from beingwritten” (<strong>of</strong> course he paid nothing for BASIC).1976: US amends copyright law, no l<strong>on</strong>ger requiresexplicit registrati<strong>on</strong>, etc.1980: US copyright law amended to cover s<strong>of</strong>tware.1980: Micros<strong>of</strong>t launches UNIX-cl<strong>on</strong>e XENIX for16-bit microprocessors.● 1981: Bill Gates makes deal to buy DOS for $50k(without menti<strong>on</strong>ing pending IBM PC deal).Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●1981: Launch <strong>of</strong> the IBM PC with MS-DOS.1980's: rise <strong>of</strong> proprietary s<strong>of</strong>tware, companies quitsharing code and allowing modificati<strong>on</strong>s, and startcharging lots <strong>of</strong> m<strong>on</strong>ey for s<strong>of</strong>tware.● 1980's: IBM is #1 computer company with DEC #2(DEC str<strong>on</strong>gly associated with ARPANET but DECanti-UNIX despite UNIX being developed <strong>on</strong> PDPs).●●1982: AT&T divestiture (breakup) allows UNIX tobe sold and the “UNIX wars” begin.1982: Sun Microsystems born: UNIX workstati<strong>on</strong>s.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●●●●1982: Larry Wall creates patch utility for UNIX,enables distributed, collaborative development.1983: DARPA-funded BSD UNIX TCP/IP released.Early 1980s: ARPANET and UNIX hackercommunities begin to c<strong>on</strong>verge <strong>on</strong> UNIX and C.1984: MIT hacker Richard Stallman starts GNUproject to promote “free s<strong>of</strong>tware.”1984: X Window project begun at MIT to developGUI for UNIX, supported by most UNIX vendors.1985: POSIX starts to standardize UNIX.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●●●Mid 1980's: DEC Vaxes running UNIX begin to takeover ARPANET/NSFNET infrastructure duties.1985: NSFNET created (ARPANET successor, andstart <strong>of</strong> the civilian Internet).1985: Intel releases i386 chip, first 8086 CPU withflat address space that could support UNIX well.1987: Larry Wall releases PERL, <strong>FOSS</strong> scriptinglanguage, for UNIX.1987: first versi<strong>on</strong> <strong>of</strong> GNU C compiler released, andGNU development toolset largely complete.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●Late 1980's: DEC and UNIX vendors c<strong>on</strong>tinue toignore the rise <strong>of</strong> Pcs and Intel microprocessors,allowing Micros<strong>of</strong>t to take over much <strong>of</strong> the market,and ultimately leading to the demise <strong>of</strong> DEC.1987: source code (in C) for MINIX (mini UNIXlikeOS) released for educati<strong>on</strong>al purposes by Pr<strong>of</strong>.Andrew Tanenbaum (but does not become <strong>FOSS</strong>until 2000).1990: first serious effort to port UNIX to i386 chipswas begun: 386BSD (but project collapsed whensp<strong>on</strong>sors wanted proprietary licensing).Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●●1990: Berkely begins effort to remove all proprietaryAT&T code from BSD UNIX.1991: Finnish CS grad student Linus Torvaldsannounces Linux project <strong>on</strong> USENET, with goal <strong>of</strong>producing a UNIX-like OS for Pcs (like MINIX), dueto high cost <strong>of</strong> commercial UNIXes like Sun Solaris.1992: AT&T sues Berkely over BSD UNIX, largelyhalting UNIX development at Berkely.1994: AT&T/Berkely lawsuit settlement allows BSDUNIX to be released, free <strong>of</strong> AT&T code.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●●Mid 1990's: liberal BSD license allows companies(including Micros<strong>of</strong>t) to use BSD code in theirproducts, leading to Berkely sockets becoming thede facto network programming API.Mid 1990's: Linux with GNU tools becomes theprimary UNIX-like OS <strong>on</strong> PCs.1995: Red Hat S<strong>of</strong>tware is founded, <strong>on</strong>e <strong>of</strong> the firstcommercial Linux distributi<strong>on</strong>s.1996: KDE desktop project started, but relied <strong>on</strong>n<strong>on</strong>-free Trolltech Qt toolkit.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●●1997: <strong>FOSS</strong> projects GTK toolkit and GNOMEdesktop are started over c<strong>on</strong>cerns about Qt.1997: Eric Raym<strong>on</strong>d publishes The Cathedral andthe Bazaar, arguing that open source developmentmodels produce better code, which he summarizedwith what he termed “Linus Law”:“with enough eyes, all bugs are shallow.”1998: Trolltech re-licenses Qt under “free” license.1998: Netscape decides to open source its primaryproduct, Netscape Navigator browser.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●1998: Eric Raym<strong>on</strong>d and others found the OpenSource Initiative (OSI) to promote “open sources<strong>of</strong>tware” and to counter Stallman's extremism.Late 1990's: Intel-based platforms running Linuxbegin to commoditize the UNIX workstati<strong>on</strong> market,starting the decline <strong>of</strong> UNIX workstati<strong>on</strong> vendorssuch as Sun and Silic<strong>on</strong> Graphics.Late 1990's: Apache web server <strong>on</strong> Intel-basedLinux machines begin to dominate the Internet webserver market.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●●2000's: Linux is increasingly widely used incorporate envir<strong>on</strong>ments, particularly for servers.2000's: Linux development is supported by numerouscorporati<strong>on</strong>s that view it as commoditizing operatingsystems, reducing their reliance <strong>on</strong> Micros<strong>of</strong>t andeliminating the “Micros<strong>of</strong>t tax.”2000's: open source s<strong>of</strong>tware projects involvingInternet-based collaborative programming becomecomm<strong>on</strong>, and commoditize many types <strong>of</strong> s<strong>of</strong>tware.2000's: virtually all supercomputers run Linux.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●●●2003: SCO sues IBM over claimed “UNIX IP”illegally transferred to Linux.2007: SCO loses in court against Novell overownership <strong>of</strong> UNIX IP, effectively ending IBM suit(plus repeatedly fails to prove UNIX is in Linux).2007: Sun finally re-licenses Java under free license(but see below).2007: Google releases Android OS based <strong>on</strong> Linux.2010: Oracle sues Google over Java-relatedtechnology patents in Android!Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> History (c<strong>on</strong>td.)●●●Late 2000's <strong>on</strong>: Micros<strong>of</strong>t threatens Android overclaimed Linux patent infringements (that it w<strong>on</strong>'tname!), extorts license fees from HTC and others.2011: Android becomes the most widely sold OS <strong>on</strong>smart ph<strong>on</strong>es.2011: Barnes & Noble makes Micros<strong>of</strong>t Androidpatent claims public (showing them to be trivial andpossibly invalid patents), and initiates claims <strong>of</strong>anti-competitive behavior against Micros<strong>of</strong>t.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Richard M. Stallman (rms)●●●Graduate student and hacker in the MIT AI labduring the late 1970's.One <strong>of</strong> the original authors <strong>of</strong> EMACS.Founder <strong>of</strong> the “free s<strong>of</strong>tware” movement.● Began GNU (“GNU's not UNIX”) project (1984).●●GNU goal was to build a free completeUNIX-like system.Developed first “free s<strong>of</strong>tware” license:GNU General Public License (GPL)Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Richard Stallman (c<strong>on</strong>td.)●●●Much s<strong>of</strong>tware in a Linux distributi<strong>on</strong> is from GNU(rms insists Linux be called “GNU/Linux”).Stallman is very extreme and inflexible in his views,and as such has sometimes been a polarizing figure.The GNU project has made little progress <strong>on</strong> itsUNIX kernel, Hurd, and Hurd has been largelysupplanted by Linux (though work <strong>on</strong> it c<strong>on</strong>tinues).Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Linus Torvalds●●Linux began as a project when he was a CS gradstudent in Finland, as he wanted a UNIX-like OShe could use <strong>on</strong> PCs—and could afford.Originally modeled <strong>on</strong> Minix (a UNIX-like PCOS), and first postings were to comp.os.minix.● Versi<strong>on</strong> 0.01 made available during 1991.●One <strong>of</strong> the first Internet-based collaborativeprogramming projects, and certainly <strong>on</strong>e <strong>of</strong> thelargest and most successful.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Linus Torvalds (c<strong>on</strong>td.)●●●●Linus c<strong>on</strong>tinues to serve as the main director forLinux kernel development.Linus owns the “Linux” trademark.Unlike Bill Gates, Linus has not becomeobscenely wealthy—though he is very well <strong>of</strong>fnow and very well known (lives in the US).Believes in <strong>FOSS</strong> (Linux licensed under GPL),but known as a pragmatist (used a proprietaryVCS for Linux development for many years, untilhe developed the Git VCS).Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Copyright●●●●●Legal basis <strong>of</strong> free s<strong>of</strong>tware requires understanding<strong>of</strong> how copyright law applies to s<strong>of</strong>tware.Copyright is a legal mechanism that provides certainexclusive rights to the author <strong>of</strong> an original work.Works must meet a minimal test <strong>of</strong> originality to beeligible for protecti<strong>on</strong> (cannot copyright single wordsor some<strong>on</strong>e else's book by changing a few sentences).Internati<strong>on</strong>al treaties <strong>on</strong> copyright are recognized bymost governments in the world.<strong>Computer</strong> s<strong>of</strong>tware is covered under copyright law.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Copyright (c<strong>on</strong>td.)●●●●Prior to 1989, the US required an explicit copyrightnotice be included with a work for it to be covered.As <strong>of</strong> 1989, that requirement was dropped, so mostprograms you write are automatically copyrighted.Still a good idea to include explicit copyright notice,however, as damages for copyright infringement maybe limited otherwise.Legal copyright notice format:– Copyright years(s) name-<strong>of</strong>-copyright-holder– © year(s) name-<strong>of</strong>-copyright-holderFree and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Copyright (c<strong>on</strong>td.)●●●●Generally, copyright holder is the author, but if workwas d<strong>on</strong>e for hire (i.e., as an employee) thencopyright holder may be employer.Note that copyright applies to a program(implementati<strong>on</strong>) not to its algorithm (idea).To protect an algorithm, you would have to apply fora patent.Also, if some<strong>on</strong>e else independently produces theexact same code as you (e.g., for a simple functi<strong>on</strong>),this is not copyright infringement.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Copyright (c<strong>on</strong>td.)●Exclusive rights granted to copyright holdersinclude the ability to:– copy/reproduce the work (including electr<strong>on</strong>ically)– sell the work or copies <strong>of</strong> the work– display or make public the work– create derivative works– assign or sell any/all <strong>of</strong> the above rights to othersFree and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Copyright (c<strong>on</strong>td.)●In terms <strong>of</strong> computer s<strong>of</strong>tware, copyright lawprevents any<strong>on</strong>e else from doing the followingwith your code (without your permissi<strong>on</strong>):– using it or selling copies <strong>of</strong> it– including parts/all <strong>of</strong> it into their own code– starting with your code and modifying it– posting it <strong>on</strong> the Internet or publishing it in a bookFree and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Copyright (c<strong>on</strong>td.)●●●●A copyright holder may transfer all or certain <strong>of</strong> hisexclusive rights to another pers<strong>on</strong>/organizati<strong>on</strong>.A copyright holder also may grant a license topers<strong>on</strong>s/organizati<strong>on</strong>s to engage in normallyprotected activities with his work.Exclusive transfer <strong>of</strong> rights or licenses must be d<strong>on</strong>ein writing in the US.N<strong>on</strong>-exclusive licenses need not be in writing(e.g., I can simply tell CS 306 students they areallowed to work by modifying my code template).Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Copyright (c<strong>on</strong>td.)●●●Violati<strong>on</strong> <strong>of</strong> copyright law is referred to as copyrightinfringement.Infringement is a civil matter (not criminal), andenforcement is up to the copyright holder (via alawsuit).The US Digital Millennium Copyright Act(DMCA) includes a provisi<strong>on</strong> that protects ISPs andthe like from liability for copyright infringement bytheir customers, as l<strong>on</strong>g as they remove infringingc<strong>on</strong>tent when properly informed (via a “takedownnotice”).Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> Licenses●●●●Because <strong>of</strong> copyright law, s<strong>of</strong>tware is n<strong>on</strong>-free bydefault.Making s<strong>of</strong>tware “free” requires that the authorlicense people to use, copy, etc. without restricti<strong>on</strong>.Due to differing goals and c<strong>on</strong>cerns, a variety <strong>of</strong>“free s<strong>of</strong>tware” licenses have been created.It is important to understand that a “free license” isnot the same as a transfer <strong>of</strong> copyright, since theauthor maintains copyright and thus some c<strong>on</strong>trol.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


GPL (c<strong>on</strong>td.)●●●●Furthermore, source versi<strong>on</strong>s <strong>of</strong> modified GPLcode are required to be made available to any<strong>on</strong>ethat receives <strong>on</strong>ly binary versi<strong>on</strong>s.This requirement causes GPL licensed code to beunsuitable for use in commercial s<strong>of</strong>tware thatvendors want to keep secret and proprietary.The GPL has been characterized as “viral.”Stallman refers to the GPL as “copyleft” in that itensures rights rather than restricting rights (as isthe intenti<strong>on</strong> with copyright).Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


GPL (c<strong>on</strong>td.)●There are actually two versi<strong>on</strong>s <strong>of</strong> the GPL thatare in use:– GPLv2– GPLv3Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


LGPL●●●A different Stallman/GNU license is the GNU LesserGeneral Public License (LGPL).This was developed to deal with issues that arosewith GNU libraries, where the GPL wasinappropriate, and it was originally named the GNULibrary General Public License.Basically, does not apply GPL requirements tos<strong>of</strong>tware that merely links with LGPL s<strong>of</strong>tware.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


BSD Licenses●●●●●Originally created in c<strong>on</strong>necti<strong>on</strong> with BSD UNIX.C<strong>on</strong>sidered permissive <strong>FOSS</strong> licenses in that thereare few restricti<strong>on</strong>s placed <strong>on</strong> what can be d<strong>on</strong>e withlicensed code.This has led BSD-licensed code to be widely used.For example, Micros<strong>of</strong>t has included BSD-licensedcode in Windows, as has Apple in Mac OS X.Of course, any<strong>on</strong>e can take your code and use it tomake themselves a fortune—yet owe you nothing!Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


Other <strong>FOSS</strong> Licenses● MIT (as used with X)●●●●Apache LicenseMozilla Public LicenseEclipse Public LicenseComm<strong>on</strong> Development and Distributi<strong>on</strong> License(CDDL), developed by SunFree and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


<strong>FOSS</strong> Organizati<strong>on</strong>s●●●●●GNU Project (gnu.org)Free S<strong>of</strong>tware Foundati<strong>on</strong> (fsf.org):Open Source Initiative (opensource.org)SourceForge (sourceforge.net)GitHub (github.com)Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


How to get Involved with <strong>FOSS</strong>●●●●Starting/managing a <strong>FOSS</strong> project can becomplex and require many skills, so best to firstassist with an existing project.Some projects are single-pers<strong>on</strong>, but many havecommunities <strong>of</strong> participants and will welcomenew volunteers.Become familiar with project by using thes<strong>of</strong>tware and subscribe to development maillistsor the like to get up to speed with current needs.Try to find niche where you can really assist.Free and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC


How to get Involved with <strong>FOSS</strong>●Larger projects generally require people witha range <strong>of</strong> skills:– development (coding)– testing– documentati<strong>on</strong>– translati<strong>on</strong>– website management– s<strong>of</strong>tware packagersFree and Open Source S<strong>of</strong>tware© Norman Carver <strong>Computer</strong> <strong>Science</strong> Dept. SIUC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!