] > Czym jest Free oraz Open Source Software? - Karol „Zal” Zalewski - Blog

Czym jest Free oraz Open Source Software?

2009-08-06, Czwartek 15:23:46 +0200, autor Karol „Zal” Zalewski, licencja LPRCTKC

Wstęp

Odnoszę wrażenie, iż dla wielu osobom pewną trudność stanowi zrozumienie różnić między dwoma bliskimi sobie koncepcjami - Free Software (Wolne Oprogramowanie) oraz Open Source Software (Otwarte Oprogramowanie). Z tego też powodu uznałem, iż udostępnię to, co jakiś czas temu stworzyłem, a co przeznaczone jest dla mniej doświadczonych i obeznanych z tematem użytkowników komputera.

Poniżej znajdziecie odpowiedź na pytania dot. tego, dlaczego powstały ruchy Otwartego i Wolnego Oprogramowania (w skrócie WiOO, lub FOSS) oraz czym się różnią między sobą. Zapraszam do lektury.

Idea Free/Open Source Software

Program komputerowy składa się najczęściej z dwóch części: z kodu programu napisanego w języku wyższego poziomu (bliższego j. naturalnemu) oraz z binariów, czyli kodu maszynowego stworzonego dla konkretnego komputera. Zależność między kodem programu, a jego binarną wersją jest stosunkowo prosta - binarna wersja programu powstaje po kompilacji, czyli przetworzeniu przez kompilator danego języka programowania, kodu programu. Z punktu widzenia użytkownika współczesnych systemów operacyjnych kompilacja to skomplikowany proces, którego nie chcieliby samodzielnie przeprowadzać. Z punktu widzenia programisty binarna wersja programu to czarna skrzynka, której poznanie, wykorzystanie w innym programie, czy też modyfikacja graniczy z niemożliwością. W przypadku posiadania kodu programu możliwe jest jego poznanie jeszcze przed uruchomieniem jego skompilowanej wersji. Natomiast w momencie obcowania z binarną jego wersją o wiele prościej jest uruchomić program, niż analizować kod maszynowy w nim zawarty.

Sytuację tę można porównać do procesu pieczenia ciasta. Kucharz chcąc upiec ciasto (odpowiednik binarnej wersji programu) przygotowuje wcześniej niezbędne składniki oraz przepis (odpowiednik kodu źródłowego). Przepis bezproblemowo może być poddawany zmianom, czy też przekazywany innym kucharzom — będzie on dla nich zrozumiały i stosunkowo prosty do wykonania. Natomiast samo ciasto, chociaż gotowe do zjedzenia, jest zagadką dla kucharza. Dopiero jedząc je jest w stanie określić jego przybliżony skład (np. ilość dodanej mąki), co wymaga od niego doświadczenia i wysokich umiejętności. Próba stwierdzenia, czy zawiera arszenik (odpowiednik złośliwego kodu w oprogramowaniu), mogłaby być problematyczna. Również modyfikacja już upieczonego ciasta jest mocno utrudniona — trudno byłoby zmienić jego nadzienie, czy też aromat.

Historia Free Software, czyli ruchu Wolnego Oprogramowania, rozpoczęła się właściwie z początkiem istnienia komputerów i programistów, których zadaniem było ich oprogramowanie. Pierwsze programy powstawały, jako programy z dostępnym kodem źródłowym i w takiej też formie były rozprowadzane. Użytkownik, chcąc je uruchomić, był zobowiązany do jego skompilowania. Należy jednak pamiętać, iż w tamtych czasach użytkownicy komputerów mieli zazwyczaj znacznie wyższą wiedzę na temat funkcjonowania komputera, niźli współczesny przeciętny użytkownik. Operacja ta nie stanowiła dla niego większego problemu, a on sam mógł dzięki temu samodzielnie usuwać błędy w oprogramowaniu (tzw. bugi), czy też rozwijać je i rozszerzać o interesującą go funkcjonalność. Oprogramowanie z początków istnienia komputerów było wolne (od wolności).

Dopiero w latach 80 ubiegłego wieku pojawiła się tendencja (m.in. za sprawą firmy Microsoft) do „zamykania” oprogramowania. Czynność ta sprowadzała się do udostępniania użytkownikowi jedynie binarnej, czyli skompilowanej, wersji programu oraz zobligowania go do zgodzenia się z licencją. Licencje te zawierały najczęściej obostrzenia i zobowiązania, których musiał przestrzegać użytkownik - zabraniały modyfikacji programu, czy też jego kopiowania i rozpowszechniania. Wtedy też pojawił się, za sprawą hackera Richarda Matthewa Stallmana, ruch Free Software. Propagowanie Wolnego Oprogramowania, czyli takiego, które może być swobodnie kopiowane, modyfikowane i dystrybuowane, stało się celem jego uczestników. Dzięki jego działaniom powstały szeroko stosowane licencje wolnego oprogramowania m.in. GNU Public License.

Pod koniec lat 90 ubiegłego wieku pojawił się odłam ruchu Wolnego Oprogramowania. Mowa o ruchu Open Source, czyli Otwartego Oprogramowania. Ruch ten nie tylko starał się zmniejszyć nacisk na ideologiczny aspekt Wolnego Oprogramowania, ale również zauważył, że z oprogramowaniem z dostępnym kodem źródłowym wiążą się też inne pozytywne aspekty związane m.in. z procesem jego tworzenia oraz skupioną wokół niego społecznością. Pragmatyzm, efektywność i nowe modele biznesowe stały się głównymi elementami ruchu Open Source. Zauważono, że wolne i otwarte oprogramowanie to wolność, nonkonformizm oraz ludzie zmotywowani potrzebą prestiżu, samorozwoju oraz chęcią poznania i stworzenia czegoś nowego.

Z ruchów Free Software oraz Open Source wywodzi się również idea Wolnej Kultury, otwartych standardów i wielu innych, wolnościowych koncepcji.

Porównanie Free Software z Open Source

„Nie zgadzamy się w kwestiach zasadniczych, ale mniej więcej zgadzamy się w praktyce. Tak więc możemy wspólnie pracować i pracujemy wspólnie nad wieloma projektami.”

Richard Matthew Stallman, założyciel Free Software Foundation, o ruchu Open Source

Koncepcje Wolnego i Otwartego Oprogramowania często są ze sobą mylone. Pomimo stosunkowo subtelnych różnic między nimi są one podkreślane zarówno przez zwolenników jednego, jak i drugiego ruchu. Z tego też względu, dla osób mniej zorientowanych, stworzono neutralny termin FOSS, czyli Free/Open Source Software mający się odnosić do całości wolnego i otwartego oprogramowania.

Poniżej znajduje się porównanie dwóch podobnych, ale odmiennych spojrzeń na wolność i otwartość w świecie oprogramowania komputerowego.

Free Software Open Source
  • oprogramowanie Free Software jest równocześnie oprogramowaniem Open Source,
  • prezentuje bardziej radykalne, ideologiczne podejście, niż Open Source,
  • idea i etyka są jego głównymi aspektami,
  • Free Software Foundation oraz Richard Matthew Stallman, jako centrum ruchu.
  • pragmatyzm,
  • nacisk na otwartość kodu, a nie jego wolność,
  • specyficzny model pracy i biznesowy,
  • styl bazarowy ponad styl katedralny,
  • Open Source Initiative, Eric Raymond oraz Linus Torvalds, jako organizacje i osoby utożsamiane z Open Source.

Co ważne, w przypadku Free Software istnieją cztery warunki (składowe wolności), które musi spełniać oprogramowanie, aby być wolnym. Oto i one:

  • wolność do uruchomienia programu w każdym celu (wolność 0),
  • wolność poznania, jak program działa i możliwość jego modyfikacji wedle uznania (wolność 1),
  • wolność do redystrybucji programu (wolność 2),
  • wolność do poprawiania programu i redystrybucji poprawek tak, aby skorzystała na tym cała społeczność (wolność 3).

W przypadku oprogramowania Open Source musi ono spełniać 10 warunków określonych przez Open Source Initiative.

Podsumowanie

To, co zawarłem powyżej jest tylko i wyłącznie mocnym skrótem historii związanej z wolnym oraz otwartym oprogramowaniem. Na temat ten można byłoby jeszcze wiele napisać, ale uważam, że zawarłem tutaj najważniejsze fakty, które powinien znać „świadomy” użytkownik komputera.

Co do samej idei to w moim mniemaniu jedno i drugie podejście jest wartościowe pomimo tego, iż skupiają się na nieco innych aspektach oprogramowania i procesów z nim związanych. Różnice są subtelne, ale warto je znać i świadomie używać pojęć z ruchami tymi związanymi.

Jeżeli ktoś z Was jest mocniej zainteresowany tematyką FOSS to polecam, oprócz zajrzenia na Wikipedię, również lekturę takich esejów i książek, jak np. „Katedra i bazar” Erica Raymonda, „W obronie wolności” Sama Williamsa oraz „Wolna Kultura” autorstwa Lawrence Lessiga. Są one bezpłatnie dostępne w Sieci. Warto się z nimi zapoznać!

Komentarze do wpisu Czym jest Free oraz Open Source Software?
  1. Biały powiedział(a):

    Fajny tekst. Tylko parę uwag:

    "W przypadku oprogramowania Open Source musi ono spełniać tylko jeden warunek - powinno być dystrybuowane na licencji zaakceptowanej przez Open Source Initiative, przy czym najważniejszy jest tutaj dostęp do kodu źródłowego, a niekoniecznie jego wolność."

    To nie do końca tak. Tak jak FSF ma czteropunktową definicję Wolnego Oprogramowania, tak OSI ma dziesięciopunktową definicję oprogramowania Open Source, w której dostęp do kodu jest tylko jednym z warunków.

    Nie bardzo też rozumiem sformułowanie „nacisk na otwartość kodu, a nie jego wolność”. To jest masło maślane – że w Otwartym Oprogramowaniu chodzi o to, żeby było otwarte, a w Wolnym – żeby było wolne. Tak samo „podejście praktyczne, a nie ideologiczne” to zupełnie puste, a za to stronnicze sformułowanie.

    Jeden i drugi ruch ma ideologię i jeden i drugi ruch podejmuje (najczęściej wspólnie) praktyczne, pragmatyczne działania w kierunku realizacji celów wynikających z tych ideologii (jak słusznie zauważył Alan Greenspan podczas znanego przesłuchania, każdy ma ideologię). Z tym, że jedna ideologia każe dbać o wolność użytkownika (odbiorcy) kodu, druga zaś – o produkcję oprogramowania w „otwartym”, „bazarowym” modelu.

  2. Zal powiedział(a):

    @Biały: Dzięki za komentarz.

    Wniosłem poprawki, o których wspomniałeś w pierwszym akapicie. Co do drugiego - nie uważam, aby określenie „ideologiczne” było pejoratywne, czy też stronnicze. Chociaż faktycznie, w moim tekście może być to niejasne. Postaram się to zmienić.

    Odróżniam wolność od otwartości w ten sposób, że jedno może być składową drugiego, ale nie jest to konieczne. Stallmanowi marzy się, aby wolność była nieodłączną cechą oprogramowania, która będzie towarzyszyć mu oraz innym programom, które będą z nim łączone. Raymond sugeruje natomiast otwartość głównie w sensie technologicznym. W jego przypadku nacisk na wolność, czy też ludzki aspekt oprogramowania jest zdecydowanie mniejszy.

    I chociaż jest dużo racji w tym, co napisałeś odnośnie ideologii, to wolałbym jednak pozostać przy rozróżnieniu wolności i otwartości.

Dodaj komentarz:

Możesz wykorzystać Markdown. Znaczniki HTML nie działają!

Wysyłając komentarz wyrażasz zgodę na jego publikację na zasadach licencji CC BY-NC-SA 3.0. Jeżeli się na to nie zgadzasz - nie komentuj.

Uwaga! Niniejszy serwis przechowuje adres IP osoby pozostawiającej komentarz. Chcesz pozostać anonimowy? Skorzystaj z Tora, lub bezpiecznego proxy. Z mojej strony gorąco polecam Tora w połączeniu z systemem GNU/Linux, przeglądarką Firefox oraz rozszerzeniem Torbutton.

Polecam: Tor Project

Powyższe logo jest zarejestrowanym znakiem handlowym The Tor Project, Inc.

Podgląd komentarza: