IV064 Informační společnost Jiří Zlatuška 30. listopadu 2009 Software s otevřeným zdrojovým kódem Open Source software * Jako termín se OSS objevil cca roku 1998 (Raymond: The Cathedral and the Bazaar) * Inspirace aktivitami Free Software Foundation * Motivace rychlým vývojem a laděním Omezení ,,módu stavitelů katedrály" při tvorbě softwarových systémů * Fred Brooks: ,,Adding manpower to a late software project makes it later" (Mýtický člověkoměsíc, 1975): * rozdělení práce mezi n programátorů dává přínos O(n), * jeho cena je však O(n^2) díky ceně komunikace a dávání dohromady výsledku Organizace ,,bazaru" při tvorbě systému * Brooksův paradox je odstraněn jinými sociálními a časovými interakcemi: * brzké zveřejňování vyprogramovaného kódu, * nekoordinované testování kvalifikovanými uživateli, * sbírání modifikací od expertních uživatelů * Linus Tornvalds: Many eyes make all bugs shallow Free Software Foundation * Richard M. Stallman, 1995: ,,The GNU Operating System and the Free Software Movement,, * Nezisková korporace zaměřená na propagaci ,,copyleft" softwaru * Programy opatřené copyrightem a doplněné podmínkami užití a šíření, které vyžadují povinné šíření zdrojového kódu, který je ponechán modifikovatelný uživateli * Silnější záruky než jen ponechání programu bez ochrany, který může být začleněn do chráněného díla. Stallmanova motivace * Kolem roku 1980 se rozpadla AI komunita v MIT pracující s PDP-10 a začalo být zvykem používat proprietární a chráněný software * Přechod od vlastnictví programu uživatelem k pouhému poskytování licencí Stallman: ,,Free as in Freedom" * You have the freedom to run the program, for any purpose. * You have the freedom to modify the program to suit your needs. (To make this freedom effective in practice, you must have access to the source code, since making changes in a program without having the source code is exceedingly difficult.) * You have the freedom to redistribute copies, either gratis or for a fee. * You have the freedom to distribute modified versions of the program, so that the community can benefit from your improvements. ,,Free" neznamená ,,zadarmo" * Software je možné prodávat nebo šířit za úplatu * Prodej programů či souborů programů je považován za zcela legitimní (naopak programy, které nejsou ,,free" takovým způsobem automaticky šířit nelze) Volná šiřitelnost vs. volná manipulovatelnost * Program bez licence je volně šiřitelný avšak může být začleněn do systému, který přestane být volný * Myšlenka licence, která zaručí, že se program nestane proprietárním GPL ­ GNU Public Licence * Softvare je pod GPL volně šiřitelný * Vždy musí být distribuován spolu se zdrojovým kódem * Kdokoli může program modifikovat a dál šířit, pokud svůj výsledek opatří podmínkami GPL Varianty ,,copyleft" licence ­ viz http://www.opensource.org/licences * GNU General Public License (GPL). * GNU Library or `Lesser' Public License (LGPL). * BSD license. * MIT license. * Artistic license. * Mozilla Public License v. 1.0 (MPL); * Qt Public License (QPL). * IBM Public License. * MITRE Collaborative Virtual Workspace License (CVW) * Ricoh Source Code Public License. * Python license. * zlib/libpng license. * Apache Software License. * Vovida Software License v. 1.0. * Sun Internet Standards Source License (SISSL). * Intel Open Source License. * Mozilla Public License 1.1 (MPL 1.1). * Jabber Open Source License. Významné OSS projekty * R. Stallman ­ GNU Emacs ­ GNU C ­ GNU C++ * Larry Wall ­ Perl * Eric Raymond ­ Fetchmail * Linus Tornvalds ­ Linux * Brian Fox ­ BASH -- ,,Bourne Again Shell" Operační systémy * Linux resp. GNU/Linux * FreeBSD, OpenBSD, NetBSD * GNU-Hurd * GNU Utilities Programovací jazyky * GNU C/C++ * Perl * Python * Tcl Okna a pracovní prostředí, browsery * X Windows * XFree86 * GNOME * KDE * GNUStep * Xfce * Mozilla (Netscape 6) Aplikace, kancelářské soubory, servery * ABIWord * GNU Image Manipulation program * Open Office * KOffice * Samba * Apache * PhP * Zope * MySQL * PostgreSQL Velikost projektů Projekt Řádky zdrojového kódu Jádro Linuxu pro x86 500 000 Apache web server 80 000 SendMail 57 000 XFree86 (X-windows server) 1 500 000 ,,K" desktop 90 000 Plná distribuce Linuxu Cca 10 milionů Typická struktura dokumentace OSS projektu * README soubory distribuované s každým programem * Manuálové stránky se základním popisem ovládání * HOWTO dokumenty popisující instalaci a konfiguraci (Aktualizace dokumentace je zpravidla hlavní slabinou OSS produktů.) Technické cíle GNU projektu * GNU = GNU is not Unix * Alternativa k proprietárnímu Unixu pod GPL licencí * 1990: většina částí systému hotová kromě kernelu * 1991: Linux * 1992: GNU/Linux Srpen 2009: osmnáct let programů s otevřeným zdrojovým kódem * 25. Srpna 1991: Torvaldsova zprána na comp.os.minix oznamující jeho práci na malém operačním systému pro 386 * 2001: distribuce systému, které nevyžadují zadat ani jeden unixový příkaz * ,,Linux for Schools" v USA ­ Linux jako systém fungující i na 486 nebo Pentiu 75, které bývají školám darovány * Win4Lin ­ Windows jako proces pod Linuxem, stačí přitom jedna instalace na serveru * Některé americké státy požadují dokumenty výhradně ve formátu zavedeném otevřeným standardem * Světová banka doporučuje otevřený software ve zprávě z roku 2003 (Dravis Group) a otevřené systémy ve zprávě z roku 2005 ,,Open ICT Ecosystems" (http://cyber.law.harvard.edu/epolicy) Otevřené standardy * Nejsou kontrolovány žádným jednotlivcem nebo firmou s vnitřními zájmy * Vyvíjeny a udržovány transparentním způsobem * Nezávislé na platformě * Otevřeně zveřejněné * Dostupné bez poplatku nebo za minimální poplatek * Schvalované korektním procesem obecným souhlasem účastníků Otevřený zdrojový kód a otevřené standardy Otevřené standardy Otevřený zdrojový kód Povaha soubor specifikací programy Otevřenost rozhraní z definice závisí na návrhu Interoperabilita umožněna nelze předpokládat Licencování různého typu Různé (GPL, BSD, atd.) Model vývoje kolaborativní kolaborativní