Svobodný a open source software

Jak by měl každý uživatel výpočetní techniky vědět, software nebývá prodáván či darován, nýbrž licencován1). To znamená, že pokud si člověk stáhne software (legálně) z Internetu nebo si ho koupí v obchodě, nezískává software jako takový, nýbrž omezené právo daný software za jistých podmínek používat. Tyto podmínky bývají obsaženy v licenci, se kterou musí uživatel souhlasit a kterou musí dodržovat, aby směl daný software používat.

Velká část uživatelů je seznámena s charakteristikami toho, co bývá označováno jako proprietární (nebo také uzavřený, closed-source) software. V zásadě, proprietární software lze chápat jako software, nad kterým drží (resp. centralizuje) moc příslušný vlastník práv2), přičemž uživatelé získávají pouze „nezbytné“ minimum práv, tedy nejčastěji pouze omezené právo program používat. Právo program šířit je obvykle omezeno na nekomerční proprietární software, ale ani tam nebývá zcela obvyklé. Možnost program upravovat nebo se alespoň podívat na zdrojový kód chybí pak až na výjimky zcela.

V dnešní době je také běžnou praxí, že proprietární software „volá domů“, tedy je ve spojení se servery vlastníka práv a vyměňuje si s nimi informace, obvykle bez vědomí uživatele3). Přinejmenším část licenčních podmínek je pak zejména v případě komerčního proprietárního softwaru obvykle „vynucována“ prostřednictvím umělých, technických omezení (DRM). V některých případech daný software pro své fungování explicitně vyžaduje „ověření pravosti“, resp. on-line ověření platnosti licence, což de facto také spadá pod DRM.

Protipólem proprietárního softwaru je pak buď volné dílo (public domain), nebo svobodný a open source software. Je důležité upozornit na častý omyl, a sice asociaci proprietárního softwaru s placeným (komerčním) softwarem a svobodného či open source softwaru s neplaceným. To, zda-li se za software jakkoliv platí či nikoliv, zde nehraje roli, podstatné jsou podmínky, za kterých je software distribuován (tedy licence). Existuje samozřejmě jak placený, tak neplacený proprietární software, a stejně tak svobodný a open source software nemusí být vždy k dispozici zdarma (i když je faktem, že obvykle bývá).

Povaha softwaru, zdrojový kód a binární distribuce

Software bývá obvykle vyvíjen v jiném jazyce, než kterému rozumí procesor počítače (který programový kód vykonává). Používá se obvykle programovacích jazyků, které mají podobu formalizovaného jazyka. Zdrojový kód je právě tato podoba programu, tedy zápis programu v programovacím jazyce, čitelný a pochopitelný člověkem. Takto zapsanému programu ale procesor nerozumí a nedokáže ho vykonat. K tomu v rámci programovacích jazyků slouží kompilátory, které převedou lidsky čitelnou podobu programu (zdrojový kód) do podoby, které rozumí procesor počítače (té se říká strojový kód, někdy také binární tvar, popř. binárka).

Podstatné je, že takto vyprodukovaný binární tvar není jednoduše zpětně převoditelný. To je důvod, proč k libovolné úpravě programu potřebujete jeho zdrojový kód. A je to také vlastnost, které využívají tvůrci proprietárního softwaru - poskytnou vám pouze binární tvar, čímž vám více či méně technicky znemožní provádět analýzu a změny v jeho fungování4).

FIXME TODO: analogie s recepty a jídlem

Svobodný a open source software

V první řadě je třeba rozlišovat mezi pojmy a mezi příslušnými hnutími či ideologiemi, které za nimi stojí. Pokud se budete zabývat jen těmito pojmy a zkoumat, který software k nim náleží, zjistíte, že drtivou většinu svobodného softwaru lze označit jako open source a naopak. I to je důvodem, proč časem došlo ke vzniku zkratky FOSS5), která oba pojmy zastřešuje a hodí se jako ideální neutrální označení pro tento typ softwaru, aniž by se člověk přiklonil ke kterémukoliv z příslušných hnutí.

Svobodný software

Dle své definice je svobodný software (free software) takový software, který dává svým uživatelům čtyři základní svobody:

  • svobodu spouštět program za jakýmkoliv účelem
  • svobodu studovat, jak program funguje, a modifikovat jej (předpokladem je přístup ke zdrojovému kódu)
  • svobodu šířit původní verzi programu
  • svobodu šířit upravenou verzi programu

Pokud vám software poskytuje všechny čtyři svobody, jedná se o svobodný software. V případě, kdy vám jedna nebo více z těchto svobod chybí, jedná se o software nesvobodný (non-free), tedy o proprietární software.

Zatímco proprietární software centralizuje moc nad softwarem a jeho činností do rukou držitele práv, svobodný software dělá přesný opak - respektuje svobodu uživatelů a dává jim moc nad softwarem, který používají. Svobodný software jako pojem vznikl v rámci projektu GNU, který založil v roce 1983 Richard M. Stallman. Cílem tohoto projektu je vytvořit kompletní svobodný operační systém včetně aplikací, a nabídnout tak uživatelům počítačů svobodu (ve vztahu k softwaru, který používají). Podstatou hnutí svobodného softwaru, nebo, chcete-li, příslušné ideologie, je tedy „boj za svobodu“, popřípadě snaha respektovat svobodu uživatelů. Hnutí svobodného softwaru (free software movement) zastřešuje organizace FSF (Free Software Foundation), vedená Richardem M. Stallmanem.

Podstatné v souvislosti se svobodným softwarem je porozumět tomu, že výše zmíněné svobody fungují „jako tým“. Zde platí známá rovnice 2 + 2 = 5, která říká, že celek je více než suma jeho částí. Je důležité tyto svobody posuzovat nejenom jednotlivě jednu po druhé a ve vztahu k vaší osobě, ale také jako celek, ve vztahu ke společnosti. Je jasné, že ne každý je programátor, a tak ne každý může přímo využít svobodu č. 2, tedy možnost upravit funkčnost daného softwaru (pomineme-li, že dané svobody umožňují, aby daný uživatel pověřil úpravou někoho jiného). Jsou-li u daného softwaru k dispozici všechny svobody, pak obvykle platí, že tyto svobody má více lidí, a co nemůžete nebo nechcete udělat vy, mohou provést jiní, a vy z toho můžete zpětně těžit, tedy získat novou verzi, která má vlastnost, po které jste toužili, a kterou implementoval jeden z mnoha uživatelů daného softwaru, který měl potřebné znalosti, schopnosti a vůli danou změnu provést. Jinými slovy, tyto svobody umožňují dohromady ještě jednu věc navíc, a tou je spolupráce lidí. Té a jejím charakteristikám se věnuje open source model vývoje (viz dále).

Pojem „free software“ (svobodný software) je v anglickém jazyce dvojznačný, jelikož slovo „free“ může znamenat jak „svobodný“, tak „zdarma“. V češtině tento problém není, termín „svobodný software“ je v tomto případě jednoznačný.

Open source software

Termín open source vznikl přibližně v roce 1998 ve snaze nalézt odlišné pojmenování a distancovat se od svobodného softwaru a s ním spojeného politického rozměru (nebo, chcete-li, rozměru „boje za svobodu“), ve vztahu ke korporátnímu prostředí, kde panovaly obavy, že by onen politický rozměr „boje za svobodu“ působil odpudivě. Open source hnutí se snaží přijít s čistě pragmatickými, ba přímo ekonomickými důvody, proč zpřístupnit zdrojový kód veřejnosti a umožnit lidem, aby se podíleli na vývoji softwaru. Tento pragmatický pohled se točí kolem open source modelu vývoje, který dle zastánců open source hnutí umožňuje vytvářet kvalitní, bezpečný a spolehlivý software.

Je třeba zmínit, že termín „open source“ by neměl být považován za ekvivalent softwaru s dostupným zdrojovým kódem. Dostupnost zdrojového kódu nestačí, je třeba splnit více podmínek, aby bylo pro příslušný software možné použít termín „open source“. Těchto podmínek je celkem 10 a de facto vycházejí z pravidel, resp. kritérií, které používá linuxová distribuce Debian GNU/Linux k určení, zda-li je příslušný software svobodný či nikoliv6). Ústřední postavou open source hnutí je Eric S. Raymond a jeho esej The Cathedral and the Bazaar, kde popisuje fungování open source modelu vývoje. Existuje také organizace zastřešující open source hnutí, a sice OSI (Open Source Initiative). Jedním z přínosů této organizace je udržování seznamu open source licencí, tedy licencí, které vyhovují výše zmíněným podmínkám. Zde je třeba zmínit, že FSF (Free Software Foundation) také udržuje seznam7) licencí, které považuje za svobodné.

Open source model vývoje

Poměrně zásadní a často se objevující otázkou je, jak je vůbec možné vytvářet software na otevřené, nebo, chcete-li, svobodné bázi. Jak je možné vyvíjet software způsobem, který efektivně znemožňuje vydělávat na prodeji licencí, jak se děje v případě komerčního proprietárního softwaru? Jak je možné, že na této bázi mohlo vzniknout něco tak gigantického jako linuxové jádro nebo dokonce celé linuxové distribuce, v jejichž softwarových repositářích jsou dostupné desítky tisíc balíků se svobodným softwarem?8)

Odpovědí na tuto otázku je open source model vývoje. Jádro chápání fungování open source modelu vývoje jsem již naznačil výše - je jím spolupráce. Ale jak tato spolupráce vzniká, a hlavně, co motivuje lidi, aby spolupracovali na této úrovni? Na začátku obvykle stojí programátor, který má určitou potřebu, na základě které začne vyvíjet software, který by danou potřebu uspokojil. Tento software dostane do určité podoby a vydá ho pod FOSS licencí. Časem získá uživatelskou základnu, jejíž součástí budou i programátoři. Někteří z nich program s povděkem přijmou, avšak budou mít jisté výhrady - program nebude fungovat zcela podle jejich představ. Proto využijí svůj volný čas k tomu, aby provedli příslušnou úpravu.

Pro ně je situace výhodná - mají program, který řeší jejich potřebu, takže nemusí začít programovat od začátku, pouze daný software upraví. Onu změnu si mohou nechat pro sebe, ale to se jim obvykle nevyplatí, protože by museli onu úpravu provádět znovu a znovu, jakmile vyjdou nové verze od původního vývojáře. Proto tyto změny pošlou původnímu vývojáři - pro ně je to výhodné, a stejně tak je to výhodné i pro původního vývojáře, protože tomu najednou začínají lidé posílat úpravy9), které vylepšují funkčnost jeho programu, aniž by na tom musel sám pracovat. I pro uživatele, kteří ničím nepřispějí, je situace výhodná - získávají příslušný software obvykle zcela zdarma a s FOSS licencí. Ve výsledku je ona spolupráce výhodná pro všechny strany, ať již pro původního vývojáře nebo pro přispívatele.

Poslední otázkou může být, zda-li je možné na open source vydělat, pokud není možné prodávat licence. Ano, je to možné, a to na souvisejících službách, třeba na placené podpoře, placené dokumentaci, atd. Příkladem může být třeba společnost Red Hat, která se účastní vývoje GNU/Linuxu a která de facto vezme všechny potřebné komponenty operačního systému, podrobí je důkladným testům a vydá linuxovou distribuci Red Hat Enterprise Linux (RHEL), která je otestovaná, certifikovaná pro běh na určitém hardwaru a podporovaná, tedy připravena pro nasazení v podnikové sféře.

Svobodný software versus open source

Jak již bylo řečeno, pojmy „svobodný software“ a „open source software“ slouží jak k označení jistého typu softwaru, tak příslušných hnutí. Obě hnutí se dívají na velmi podobnou problematiku, ale každé z jiného úhlu pohledu. Hnutí spojené se svobodným softwarem, v čele s FSF a Richardem M. Stallmanem, usiluje primárně o svobodu v oblasti softwaru. Richard Stallman vidí problematiku svobodného a proprietárního softwaru jako etický problém. Naopak open source hnutí nechce mít s „bojem za svobodu“ příliš společného - naopak, zaměřuje se na vlastnosti open source modelu vývoje a jeho praktické výhody.

Vlastnosti vyplývající z FOSS

Jaký je praktický dopad FOSS? Jaké jsou typické vlastnosti svobodného a open source softwaru? Zde se snažím úmyslně vyhnout použití pojmu „výhody“, neboť to, zda-li je nějaká vlastnost vnímána jako výhoda či nikoliv, záleží primárně na tom, kdo tuto vlastnost posuzuje. Mnoho sporů se vede na téma, zda-li je ta či ona vlastnost výhodou v porovnání s proprietárním softwarem, popřípadě jaká je její váha. Mezi zásadní vlastnosti FOSS patří mj. následující body.

Liberální licence

Licence FOSS jsou liberální a dávají svým uživatelům velkou volnost. Neomezují možnosti použití, takže není problém, zda-li je příslušný software možné použít pro komerční účely, na více než jednom počítači, na počítači s více procesory, s nestandardní velikostí operační paměti, atd. Různá omezení typická pro proprietární software zde neplatí, FOSS je možné nejenom libovolně používat, ale také upravovat či šířit (tyto podmínky však mohou být omezeny, zejména ve vztahu k dodatečnému licencování).

Absence DRM

V rámci FOSS prakticky neexistuje DRM, ochrany proti kopírování, aktivace, licenční kontroly a související praktiky obvyklé pro svět proprietárního softwaru. Pokud by FOSS obsahoval DRM, jeho povaha (dostupnost zdrojového kódu a právo jeho úpravy) umožňuje příslušné omezení odstranit. V rámci FOSS proto DRM nemá význam.

Nezávislost na držiteli práv

Proprietární software je obvykle závislý na jediném subjektu, který rozhoduje o jeho budoucnosti. Pokud příslušný subjekt změní své plány nebo třeba zkrachuje, příslušný software obvykle „zemře“. Uživatelé proprietárního softwaru přitom závisí na držiteli práv, ať už kvůli opravám chyb (včetně bezpečnostních) nebo přidávání nových vlastností, vylepšování, nutným úpravám, atd. V případě FOSS si může uživatel svůj software upravit sám, zadat úpravu jinému subjektu nebo počkat, až se najde někdo, kdo software upraví podle jeho přání. FOSS má schopnost přežít svého tvůrce - pokud z vývoje odejde, vývoj obvykle převezme jiný vývojář.

Bezpečnost

Rozměr, který často zdůrazňují zastánci open source - software s veřejně dostupným zdrojovým kódem prochází nezávislým auditem veřejnosti, přinejmenším v podobě čtení zdrojového kódu těmi, kteří se rozhodnou v příslušném programu provést změnu. Škodlivé funkce je z povahy věci velmi obtížné do FOSS propašovat a existuje vysoká pravděpodobnost, že jakoukoliv škodlivou funkci někdo objeví.

A tak dále

Vlastností FOSS lze nalézt samozřejmě více. Může sem patřit třeba rychlost vývoje nebo třeba cena - většina dostupného FOSS je k dispozici zdarma. Stejně tak je možné nalézt i vlastnosti, které lze považovat za nevýhody (např. nemožnost přehrát DRM chráněný obsah v GNU/Linuxu, atd.). Vše záleží na úhlu pohledu.

Licencování FOSS

Na začátku bylo zmíněno, že software je uživatelům licencován, tedy že uživatel software nevlastní, pouze získává licenci, která ho opravňuje mj. k užívání daného produktu, za určitých podmínek. I FOSS je licencován, přičemž licencí je poměrně velké množství. Licence lze rozdělit do dvou oblastí, liberální licence a copyleftové licence.

Liberální licence

Některé licence vznikly specificky k tomu, aby opravňovaly uživatele provádět se softwarem skoro cokoliv. Patří sem třeba nová BSD licence nebo MIT licence. Tyto licence v zásadě vyžadují při šíření pouze přiložení informace o autorech a copyrightu, jinak je možné provádět vše, včetně přelicencování na proprietární licenci.

Copyleftové licence

Zastánci hnutí svobodného softwaru (zejména pak Richard Stallman) si brzy uvědomili, že liberální licence umožňují odebrat důležité svobody uživatelům. Jelikož pro hnutí svobodného softwaru je svoboda klíčová, pokusili se přijít s mechanismem, který by podobným praktikám zamezil. Tento mechanismus označil Richard Stallman jako copyleft (v zásadě copyright obrácený „naruby“). Copyleft spočívá v požadavku, který bývá navázán na akt šíření daného autorského díla a který vyžaduje zachování dané licence. To znamená, že příslušné dílo nelze licenčně omezit ve vztahu k uživatelům, kterým daný software (původní či upravený) dodám. Mezi typické zástupce copyleftových licencí patří nejpoužívanější FOSS licence, GNU GPL (GNU General Public License).

Závěr

Svobodný software vznikl ve snaze získat svobodu zejména v oblasti užívání softwaru. Dostupnost zdrojového kódu a liberálnost příslušných licencí daly vznik důležitému vedlejšímu následku - vytvoření platformy pro spolupráci, na které je postaven open source model vývoje. Oba pojmy zahrnují, až na výjimky, tentýž software a i když každé z příslušných hnutí stojících za daným termínem má svůj specifický pohled na věc, dají se oba přístupy chápat jako dvě strany jedné mince. Je na uživatelích, ale i na vývojářích, aby se rozhodli, jaký software budou používat, popřípadě jak budou svůj vlastní software licencovat. Svobodný a open source software, tedy FOSS, v dnešní době zahrnuje ohromné možství úspěšných projektů s dlouholetou tradicí, jako je GNU/Linux, Apache, TeX a nespočet dalších. Nebylo by dobré zapomenout ani na BSD a související FOSS unixové operační systémy FreeBSD, OpenBSD a NetBSD.

Zdroje a další odkazy

1) Výjimky potvrzují pravidlo - samozřejmě je možné prodat nebo darovat software jako takový, ale s tím se obyčejný člověk zpravidla nesetká.
2) Úmyslně zde nepoužívám termín „autor“, neboť v řadě případů se autoři svých práv vzdávají ve prospěch vlastníků práv.
3) Tomu dost napomáhá obvyklá tendence uživatelů nečíst licenční ujednání, kde se obvykle o takovém chování alespoň rámcově píše, resp. kde uživatel s takovým chováním programu souhlasí.
4) V této souvislosti je často využíváno dalších postupů včetně šifrování, aby bylo maximálně znesnaděno tzv. reverzní inženýrství, tedy převod binární podoby programu do lidsky čitelné podoby.
5) FOSS = Free and Open Source Software
6) Jedná se o tzv. Debian Free Software Guidelines, nebo-li DFSG, publikované v rámci Debian Social Contract.
8) Distribuce Debian GNU/Linux, distribuce s dlouhou tradicí, celosvětově uznávaná, fungující na ryze nekomerční bázi, obsahuje mezi 20 a 30 tisíci balíčků se svobodným softwarem, viz Info: Counting total number of packages under Debian Linux.
9) tzv. patche
filozofie/svobodny_software.txt · Poslední úprava: 2011/01/23 09:35 autor: Michal Dočekal
CC Attribution-Share Alike 3.0
www.chimeric.de Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 PDF Export