Programování

Co je to open source software? Open source a FOSS vysvětleny

Základem každého použitého softwaru je zdrojový kód, který vydává příkazy a zpracovává data, která softwaru umožňují dělat to, co dělá. Otázka, kdo by měl mít právo dívat se na tento zdrojový kód, měnit jej nebo redistribuovat, je již dlouho jednou ze základních ideologických rozdílů ve světě práce s počítačem.

Navrhovatelé softwaru s otevřeným zdrojovým kódem, jak název napovídá, se staví na stranu otevřenosti; mají pocit, že by lidé měli mít právo na přístup ke zdrojovému kódu softwaru, který používají. Jak však uvidíme, pod tímto označením v praxi spadá spousta odrůd. Různé druhy softwaru s otevřeným zdrojovým kódem existují téměř v každém výklenku, na který si vzpomenete - ve skutečnosti mnoha z nich dominuje otevřený zdrojový kód.

Co je to software s otevřeným zdrojovým kódem, co je svobodný software - a liší se?

Stručná definice softwaru s otevřeným zdrojovým kódem je, že jde o software, jehož základní kód lze zkoumat, pozměňovat a redistribuovat. (Existuje delší a oficiálnější definice, které se trochu dočkáme.) „Změněné a redistribuované“ části jsou skutečně klíčem k filozofii otevřeného zdroje. Navzdory tomu, co by název mohl naznačovat, jednoduše otevření zdrojového kódu, aby se na něj lidé mohli podívat, z něj nedělá open source.

V některých ohledech je termín „open source software“ retronymem: V prvních desetiletích informatiky byl zdrojový kód softwaru k dispozici jako samozřejmost a volně si jej vyměňovali vědci a vědci z oboru. Počítačů bylo málo a bylo očekáváno, že jejich uživatelé budou značně upravováni, takže lidé potřebovali přístup ke kódu. V mnoha ohledech byl software považován za doplněk k počítačovému hardwaru; teprve v roce 1974 bylo dokonce legálně prokázáno, že software podléhá autorským právům. Ale jak éra mikropočítačů začala koncem sedmdesátých let, průmysl se začal posouvat do pozice, že software je něco, co má samo o sobě peněžní hodnotu, a že přístup k základnímu kódu může a měl by být omezen v zájmu ochrany tvůrců softwaru „práva. Slavný otevřený dopis Billa Gatese z roku 1976 určený pro fandy, kteří si stěžují na rozšířené pirátství prvního produktu společnosti Microsoft, tlumočníka Altair BASIC, je průlomovým dokumentem tohoto posunu.

Zatímco tyto nové myšlenky rychle rozvíjel rychle se rozvíjející softwarový průmysl, někteří lidé se postavili proti nim. Jedním z prvních oponentů byl Richard Stallman, který založil Free Software Foundation (FSF) v roce 1985. „Free“ ve svobodném softwaru má naznačovat svobodu uživatelů měnit a distribuovat kód podle libosti; v tomto smyslu neexistuje pravidlo proti účtování peněz za svobodný software. Často se rozlišuje mezi „svobodným jako ve svobodném pivu“ a „svobodným jako ve svobodném projevu“, přičemž v druhém táboře je svobodný software.

Myšlenka svobodného softwaru přesto znervózňovala mnoho lidí v soukromém průmyslu, kteří nakonec nebyli příznivci rozdávání věcí. V roce 1998 Christine Peterson vytvořila frázi „open source“ částečně jako pokus o zpřístupnění této myšlenky nováčkům, zejména těm, kteří pracují pro ziskové společnosti. Ačkoli se Stallman postavil proti pojmu otevřený zdroj a řekl, že se odvrací od původních politických a filozofických myšlenek svobodného softwaru, stala se dominantní frází popisující tento koncept. Vennův diagram bezplatného a otevřeného softwaru se dostatečně překrývá, takže se někdy tyto dva kombinují pod zkratkou FOSS (bezplatný a otevřený software). Obecně platí, že veškerý svobodný software je otevřený zdroj, i když malá část softwaru s otevřeným zdrojovým kódem má licenční podmínky, což znamená, že není zdarma (více o licencování open source za okamžik).

Koncept svobodného a otevřeného softwaru dal vzniknout další definici retronymů: „proprietární software,” jakýkoli software, který není otevřeným zdrojovým kódem.

Licence na software s otevřeným zdrojovým kódem

Veškerá práva a povinnosti související s otevřeným zdrojovým softwarem jsou stanoveny licencemi, na jejichž základě je software distribuován. Jakmile se ustavila právní doktrína, že na software se vztahují autorská práva, začaly se psát softwarové licence, které poskytly smlouvu mezi vlastníkem autorských práv a uživatelem, která uživateli poskytla oprávnění k provedení softwaru na osobním počítači.

Softwarové licence původně existovaly s cílem omezit chování uživatelů a chránit práva výrobce softwaru. Zastánci svobodného softwaru si ale uvědomili, že mohou invertovat původní účel licencí: Licence softwarového balíčku může místo toho vyžadovat, aby byl základní kód k dispozici komukoli, kdo software používá, a že uživatelé měli právo tento kód upravovat a redistribuovat. První open source softwarová licence (i když předchází jejímu termínu) je pravděpodobně upozornění GNU Emacs na kopírování povolení vydané v roce 1985 pro verzi textového editoru Emacs napsaného FSF Stallmanem.

Od té doby se zvýšil počet bezplatných a otevřených licencí, z nichž každá nastavuje mírně odlišné podmínky pro použití licencovaného kódu; Wikipedia udržuje velmi dobrý graf s podrobnostmi o nejdůležitějších licencích. Podle definice poskytuje kterákoli z těchto licencí open source uživatelům tři základní svobody možnosti číst, upravovat a redistribuovat zdrojový kód; hlavní oblast, kde se liší, je v podmínkách, které ukládají při přerozdělování:

  • Povolující licence vám umožní redistribuovat jakýkoli zdrojový kód, jakkoli uznáte za vhodné. Můžete například vzít zdrojový kód vydaný na základě permisivní licence, začlenit jej do svého vlastního softwaru a poté tento software vydat na základě proprietární licence. Licence BSD je jednou z nejznámějších permisivních licencí.
  • Licence Copyleft požadovat, aby jakýkoli redistribuovaný kód, který obsahuje licencovaný kód, byl také vydán pod podobnou licencí. Různé verze veřejné licence GNU (GPL) z FSF jsou copyleftové licence a jejich cílem je požadovat, aby vývojáři zaplatili tuto částku sdílením výhod, které získali díky začlenění otevřeného zdrojového kódu do svého projektu.

Je zajímavé poznamenat, že myšlenky těchto licencí se rozšířily i mimo softwarový svět. Creative Commons je právní infrastruktura pro aplikaci podobných výrazů na písemná nebo vizuální umělecká díla.

Definice otevřeného zdroje a iniciativa otevřeného zdroje

Otevřený zdroj není ze své podstaty řízen žádnou entitou nebo organizací. V roce 1998 skupina významných vývojářů včetně Bruce Perens a Erica S. Raymonda založila Open Source Initiative (OSI), neziskovou organizaci zaměřenou na prosazování otevřeného zdroje v širším softwarovém průmyslu. OSI se pokusil a nepodařilo ochrannou známku označit jako otevřený zdroj v roce 1999; nicméně jejich formální definice Open Source je na základě konsensu rámcem všech licencí, které si říkají open source. Kromě svobody zkoumat, upravovat a redistribuovat kód, o které jsme již hovořili, definice otevřeného zdroje zakazuje licence, které diskriminují konkrétní skupiny nebo lidi, které zabraňují použití kódu pro konkrétní účel nebo oblast úsilí, nebo z provozu na konkrétním zařízení nebo typu zařízení.

Open source vývoj a open source projekty

Vývoj pomocí otevřeného zdrojového kódu probíhá ve všech druzích prostředí, od univerzit až po velké korporace, a často se řídí stejnými vzory jako jakýkoli jiný druh vývoje softwaru. Existuje však určitý druh otevřeného procesu rozvoje komunity, který je spojen s otevřeným zdrojem. Eric S. Raymond ve své vlivné eseji „The Cathedral and the Bazaar“ nastínil svou vizi tohoto procesu, kde může k kódu přistupovat kdokoli, a do codebase jsou přidávány aktualizace od široce distribuované skupiny vývojářů, kteří se do něj vracejí a odcházejí jako jejich zájem diktuje.

Open source vývoj tohoto typu je organizován kolem open source projektů. Někdy fungují na jediném softwaru a někdy na celé související sadě aplikací. Software pro správu verzí udržuje příspěvky všech v souladu. GitHub je pravděpodobně nejoblíbenější.

Projekty open source, které někdy zahajuje jedna osoba, jsou obvykle samoorganizované, malé internetové komunity, a ačkoli kdokoli může přispět do jakéhokoli projektu, na většině z nich obvykle pracuje relativně malá skupina vývojářů. Někdy může být projekt sponzorován neziskovou společností, která plánuje použít software, který produkuje, a to dokonce tak daleko, že nejvýznamnější vývojáři projektu dostanou výplatu.

Příklady open source

Software s otevřeným zdrojovým kódem je ve skutečnosti všudypřítomný a tvoří velkou část základů moderního internetu. Snad nejznámějším open source projektem je Linux, open source unixová varianta, která napájí miliony serverů. Mezi další významné a mimořádně důležité projekty patří webový server Apache, databáze MySQL a WordPress. Četné vývojové rámce jsou vydávány jako open source, od Ruby on Rails po Microsoft .Net Core.

Open source byl méně úspěšný při výrobě domácího počítačového softwaru určeného pro běžné uživatele. Navzdory vysokým nákladům na proprietární softwarové balíčky, jako jsou Microsoft Word a Adobe Photoshop, se protějškům s otevřeným zdrojovým kódem, jako je OpenOffice a GIMP, nikdy nepodařilo najít mezeru mimo zaryté nadšence, z velké části proto, že komunita otevřeného zdroje tradičně upřednostňovala funkce a flexibilitu před snadností použití. (Uzamčení formátu souborů od proprietárních prodejců nepomohlo.) Ani Linux, jehož obhájci tvrdí od konce 90. let, že OS s otevřeným zdrojovým kódem je jen rok od dominování na ploše, se nikdy nedokázal přeskočit na spotřebitelský prostor. Obecně se open source používá pro infrastrukturu mnohem více než pro software koncového uživatele. Ale přechod od monolitického softwaru, který spouštíte lokálně, k aplikacím SaaS byl přínosem pro otevřený zdroj, protože cloudové infrastruktury jsou z velké části založeny na zásobnících, kterým dominuje otevřený zdroj.

Pamatujete si, co jsme řekli o ziskových společnostech podporujících open source? Tyto projekty se často vyrábějí na základě permisivní licence, takže tyto společnosti mohou dát otevřený zdrojový kód do jádra svých proprietárních nabídek při zachování samostatného otevřeného zdrojového kódu paralelně jako komunitní projekt. Například mobilní operační systém Android má jádro Linux; všechny mobilní a stolní operační systémy Apple jsou založeny na Darwinu, otevřeném operačním systému původně odvozeném od BSD Unix. Dokonce i Google Chrome je založen na prohlížeči typu open source s názvem Chromium.

Komunita open source a hnutí open source

Open source není jen vývojový proces; je to filozofie, pro kterou jsou lidé nadšení, a je to sociální komunita, do které se může připojit kdokoli s programovacími dovednostmi. Ve skutečnosti je to celá řada komunit, jak říká Linux Foundation. (Existence neziskových organizací, jako je Linux Foundation a OSI, je důležitým aspektem této komunity.) Florian Effenberger má skvělou esej o tom, jak komunita open source obohatila jeho život.

Často uslyšíte, jak lidé mluví o hnutí open source nebo o svobodném softwaru, které má konotaci politiky a advokacie. Spousta lidí v komunitě otevřených zdrojů prosazuje široké přijetí softwaru s otevřeným zdrojovým kódem z různých důvodů: Myslí si, že otevřený zdroj vytváří inherentně lepší kód, nebo si myslí, že přístup ke zdrojovému kódu je základním právem, které by uživatelé počítačů měli mít, nebo nějaká kombinace těchto dvou. Tento aspekt komunity se dnes zdá být trochu méně viditelný, ale možná je to proto, že v mnoha ohledech zvítězil otevřený zdroj. V roce 2001 tehdejší generální ředitel společnosti Microsoft Steve Ballmer uvedl, že Linux byl díky své licenci s otevřeným zdrojovým kódem „rakovinou, která se ve smyslu duševního vlastnictví váže ke všemu, čeho se dotkne.“ Dnes je společnost Microsoft rozsáhlým uživatelem a producentem softwaru s otevřeným zdrojovým kódem. To jsou v kostce poslední dvě desetiletí historie otevřených zdrojů.

Stahování softwaru s otevřeným zdrojovým kódem

Chcete začít procházet a vrtat se s open source projekty? Podívejte se na stránku Projekty a aplikace na opensource.com, na kartu Prozkoumat na GitHubu nebo na softwarovou mapu Open Source Development Network. Je tu spousta zvědavých lidí všech úrovní dovedností.

$config[zx-auto] not found$config[zx-overlay] not found