- Wat is Open Source Software (OSS)? o Definitie http://www.opensource.org/ o Geregistreerd handelsmerk (tegen misbruik) o Voorbeelden van OSS-compliant licenties: + GNU GPL (General Public License) * software moet niet gratis en vrij beschikbaar zijn * source moet beschikbaar zijn voor mensen die de binary krijgen/kopen * geen beperking voor de rechten van de gebruikers + BSD (Berkely Software Distribution) + Artistic + X11 (X Window System) + MPL (Mozilla Public License) + QPL (Qt Public License) Fake OSS-licenties: - APSL (Apple ...) - SCSL (Sun Community Software License) Incompatibiliteit tussen licenties?? o Verschil tussen `open' (OSS) en `free' (GNU) + Freedom for the user + `free as in free speech, not free beer' (Richard Stallman) - Voordelen van OSS: o Bugfixes o iedereen kan bugs fixen o als je het niet zelf kan, dan kan je iemand inhuren o de fabrikant kan je niet verplichten tot upgrades i.p.v. bugfixes o zware bugs: meestal in uren, niet in weken/maanden/... vb.: Ping-of-Death: patch van Alan Cox luttle uren na de bugreport op Usenet. o Y2K: niet enkel vertrouwen op fabrikant die zegt dat zijn software Y2K-compliant is o Onafhankelijkheid van de auteur van de code o Zelf uitbreidingen maken (ik mis een feature, dus ik implementeer het zelf) o Veiligheid (virussen, wormen, backdoors, slechte encryptie ...): controle. Geen `security by obscurity'. Extreem vb.: betrouw ik homebankingsoftware (binaries) van mijn bank? o Meer manpower beschikbaar, wereldwijd -> mogelijk dankzij Internet: 24/u/24u development, als je opstaat is de bug of het probleem van de vorige avond dikwijls al opgelost o Vooral belangrijk voor een OS en standaardapplicaties. Gespecialiseerde commerciële applicaties (maatsoftware) zijn OK. o Flow-back naar maatschappij van overheidsgeld (universiteiten) o Educatieve aspect: leren programmeren door andermans software te lezen o Survival of the fittest: beste patches winnen (meestal) o Peer review (cfr. wetenschappelijke wereld) o Geen deadlines voor release, kwaliteit telt o Geschikt voor ontwikkelingslanden: + Goedkoop + Draait meestal ook op `verouderde' computersystemen - Nadelen van OSS: o Support? Maar: Kleine lettertjes in commerciële licenties: geen garantie! Commerciële licenties zijn vergelijkbaar met licenties zoals GPL o Chaos? Zelfregulerend o Project forks + Opsplitsing manpower (-) + Innovatie (+) + Survival of the fittest + Voorbeelden: . gcc/egcs (terug samen sinds gcc 2.95) . ghostview/gv . NetBSD/OpenBSD - Belangrijke OSS-projecten: o Linux-kernel http://www.kernel.org/ o GNU utilities http://www.gnu.org/ o {Free,Net,Open}BSD, BSD in het algemeen http://www.bsd.org/ o Apache http://www.apache.org/ o Sendmail Mail Transport Agent http://www.sendmail.org/ o Berkeley Internet Name Domain http://www.isc.org/products/BIND/ o K Desktop Environment (KDE) http://www.kde.org/ o GNU Network Object Model Environment (GNOME) http://www.gnome.org/ o XFree86 http://www.xfree86.org/ o The GIMP http://www.gimp.org/ o Practical Extraction and Report Language (Perl) http://www.perl.org/ o TeX/LaTeX Meer software: www.freshmeat.net - Hoe werkt OSS-development in de praktijk? o Tools (cvs), communicatie (email), samenwerking (email/cvs), patches (diff -u/patch), management (teamleader), bug reports (email) o vb.: Linux-kernel: stuur patches naar Linus (Linus is bottleneck) o vb.: XFree86: meer gesloten o Softwaretools voor gedistribueerde ontwikkeling: + CVS (Concurrent Versioning System) <-> Rational/Atria ClearCase + RCS (GNU Revision Control System) + JitterBug (Samba bugtracking) + Bitkeeper (geschreven voor Linux-kernel) The whole point of open source is to expose the development, and NOT have the mentality that "it will be fixed in the next release" -- Linus Torvals, op linux-kernel - Voordelen van OSS voor o Gebruikers (geen interesse voor de source): + Kwaliteitssoftware + Goedkope software + Alleen noodzakelijke features (`als ik ze nodig heb voeg ik ze toe'): `user driver features' vs. `marketing driver features' en `code bloat' o Bedrijven: + Keuze: onafhankelijkheid van de willekeur van één leverancier Alan Cox: dangers of closed source + Support + Bugfixes (vb.: Y2K) + Continuïteit + Geen verplichte upgrades + Toch ook open hardware standaarden? o Software-ontwikkelaars: + Code-sharing + Studie van code + Gebrek een informatici + Codeherbruik (één v.d. doelstelling van OO) o Scholen en universiteiten: + Studie van code + Niet afhankelijk van één fabrikant + Principes leren van computersystemen, geen specifieke implementatie + Geen `point-and-click'-mentaliteit Every computer-science student should be required to build some useful package, acquire hundreds of users, support it, refine it, and then, finally, as a parting gift to the world, release it. -- Rob Kolstad, president of Berkeley Software Design, in BYTE 12/1997 - Commerciële OSS?? o Basissysteem vrij, gespecialiseerde modules commercieel o Distributie en support: - Red Hat: Linux distro + support + development funding - SuSE: Linux distro + support + development funding - Caldera: Linux distro + support - Corel Linux (gebaseerd op Debian) - Cygnus: compilers, embedded systems, Ecos o Contributies: - XFS (SGI, onder GPL) - Qt 2.0 (Troll Tech, onder QPL) - Aladdin Ghostscript (doorschuifoperatie) - AbiWord (AbiSource, onder GPL) - X-server modules (Precision Insight) - Belang van open standaarden o Verhinderen van monopolies: intercompatibiliteit tussen verschillende softwarepakketten o OSS referentie-implementaties o Klant heeft baat bij open standaarden en gezonde competitie o Patenten? o Programmeerspecs voor hardware: zelfs indien de fabrikant een `crappy' driver schrijft (e.g. Intel Etherexpress: niet SMP-safe, niet portabel) kan de OSS-wereld hem verbeteren. Binary-only drivers: bad (bugfixes, eyes-effect, other archs) - Hoe meewerken aan OSS? o Start van een nieuw OSS-project: + Moeilijk + Meestal door een individu: er moet eerst code zijn voor ze OSS kan worden + Heel weinig projecten `nu gaan we met ons team OSS schrijven' + Grote projecten: KDE, GNOME (sponsoring van Red Hat omdat Qt niet OSS is) o Meedoen met een bestaand OSS-project: + Zoek een interessant project + Volg de mailinglist + Test en rapporteer bugs (beschrijving, reproduceerbaar, analyse en afbakening) + Schrijf documentatie(!) + Volg de mailinglist, lees code + Waarschuwing: `talk is cheap' -> `show me the code' + Los bugs op en stuur patches + Voeg nieuwe features toe en stuur patches - Copiëren van software is gratis, copiëren van hardware niet - Geschiedenis van Linux: `free' Minix-kloon (Tanenbaum) - GNU Project: ontwikkeling van een vrij systeem, equivalent met UNIX (Gnu is Not Unix) o Tools: + *utils + Editor: emacs/Xemacs + Compilers: gcc/egcs (C/C++/ObjC/F77), gnat (ADA) o Waarom UNIX? + Modulair + KISS (Keep It Stupid and Simple) + Academisch o Hurd: services in user space, bovenop de Mach-microkernel van CMU o Hurd is niet klaar -> Linux (GPL! *BSD onder BSD-licentie) o Debian GNU/Linux en Debian GNU/Hurd - Hiërarchie in een OSS-project o Teamleader(s) o Respect/status krijg je door de code die je schrijft, niet door diploma's (`Hackers should be judged by their hacking.') o Concurrentie: je moet je blijven bewijzen (via code) - Company policy: geen OSS! sendmail/bind/apache??? - Geschiedenis van OSS (lees: GNU project): tools -> compilers -> OS -> applicaties -> desktop - Linux: figuurtje o Kernel space: kernel (GPL) o User space: (cfr. Debian classificatie) + Basic tools (GNU, BSD, XFree86) + Development + Desktop + Applicaties (OSS + commercieel) - Docs, quotes, ...: o The Cathedral and the Bazaar (Eric S. Raymond) o Open Source: you deserve to be in control of your data. o Given enough eyeballs, all bugs are shallow. That's the most powerful argument of favor of free software: Anyone can inspect it, and anyone can improve it. -- Eric S. Raymond, in BYTE 12/1997 o In the end, Open Source is not so much a "phenomenon". This is the way software worked pre-80's. Hiding source seemed to make about as much sense to most people as trying to hide how a lightbulb works. Now, we're coming full circle, and people are cluing in to that. The "Open Source Phenomenon" is just a bunch of people trying to figure out how to make the intervening 20 years of industry make sense.... -- Aaron Sherman (ajs@ajs.com) Perl Guy and Executive Glue Sniffer, /.