Otwarte i wolne oprogramowanie
Komercyjny system operacyjny nie jest tani, a pakiet biurowy tym bardziej. Tymczasem trzeba zainstalować program pocztowy, wgrać kilka programów ochronnych, a później móc jeszcze obrobić kilka zdjęć. Użytkownik ma przy tym wiele zainteresowań. Na każde znajdzie się jakiś program. To może torrent? Coś jest jednak nie tak. W świecie wiele mówi się o piratach, nielegalnym kopiowaniu, nieuprawnionym udostępnianiu oprogramowania, okradaniu autorów, artystów, a nawet o naruszaniu praw patentowych. Użytkownik czuje się nieswojo. Sam jest autorem. Rysuje komiksy i nie chciałby, by jego dorobkiem rozporządzano bez jego wiedzy, a już tym bardziej przypisywano go komuś innemu.
Ceny programów bardzo zniechęcają. Na pewnym forum Użytkownik czytał wypowiedzi internautów na temat darmowego oprogramowania. Tam też przeczytał o open source. Szukając w sieci, natrafił na freeware, adware i inne licencje programów: bezpłatnych, bezpłatnych z wyłączeniem zastosowań komercyjnych, GPL. I tu rodzi się pytanie. Skoro to wszystko jest open source, darmowe, to czemu tyle różnych licencji i innych określeń? Pytanie jak najbardziej na miejscu. Osoba korzystająca z programów na darmowej licencji, w warunkach domowych, nie musi się przejmować. Użytkownik z szerszą perspektywą powinien rozumieć, czym jest otwarte, a czym wolne oprogramowanie.
Podstawowe problemy
Wiele pojęć jest często mylnie rozumianych. Na przykład: „darmowe oprogramowanie”. Jeżeli Użytkownik ma nieco wrażliwości, może zastanawiać się, dlaczego ktoś rezygnuje z zarobku? Tymczasem problem nie wynika z ascezy programistów, a z różnic językowych. „Free software”, czyli wolne oprogramowanie. W języku angielskim słowo free może oznaczać zarówno „wolny”, jak i „darmowy”. Darmowy, czyli po zerowej cenie. I choć często taki jest stan faktyczny, to wolne programowanie należy rozumieć jako wolne, w sensie „wolności słowa”.
Wolny czy otwarty? Oto jest pytanie…
Równie niefortunnie jest na ogół rozumiany termin „freeware”. Wiele osób lubi używać tego określenia jako synonimu free software. Tymczasem tak nie jest. W latach 80. słowo to oznaczało programy wydawane jedynie w postaci wykonywalnej (np. program.exe), bez dostępnego kodu źródłowego. Freeware jest jedną z licencji oprogramowania, która działa na podobnej zasadzie.
Dostępność kodu źródłowego leży u podstaw całego zamieszania. Do lat 80. ubiegłego wieku oprogramowanie było w większości ogólnie dostępne. Oznacza to, że każdy zainteresowany miał wgląd w kod źródłowy danego programu lub systemu. Miał przy tym możliwość jego modyfikacji poprzez poprawę błędów czy dodanie nowych funkcji. Społeczności programistów i użytkowników oraz ich etykieta sprawiały, że większość ówczesnego oprogramowania była wolna od ogromu dzisiejszych ograniczeń.
Sytuacja zmieniła się na początku lat 80. Wówczas pojawiły się problemy prawne, związane z tworzeniem oprogramowania własnościowego. Do takiej sytuacji znacznie przyczynił się Microsoft, a także działania takich firm, jak AT&T czy Novell.
Wolne oprogramowanie
Wolne oprogramowanie, w dzisiejszym rozumieniu, rodzi się 27 września 1983 r. za sprawą Richarda Stallmana. W tym czasie ogłasza on rozpoczęcie prac nad systemem GNU. Ruch na rzecz Wolnego Oprogramowania budzi się do życia 4 października 1985 r., gdy Stallman zakłada FSF (Free Software Foundation) – Fundację Wolnego Oprogramowania. Do połowy lat 90. skupia ona programistów pracujących nad oprogramowaniem dla Projektu GNU. Później, ze względu na fakt powstania wielu odrębnych projektów zajmujących się rozwojem wolnego oprogramowania, FSF koncentruje się na problematyce związanej z prawami autorskimi.
Richard Stallman (fot. Sam Williams, źródło: Wikipedia, GNU FDL)
Pisząc o wolnym oprogramowaniu, nie sposób pominąć systemów z rodziny Linux. Dla wielu użytkowników jest to ikona wolnego oprogramowania. W 1991 r. Linus Torvalds poinformował o pracach nad własnym, niewielkim, wolnym systemem operacyjnym. Ostatecznie stworzył jądro systemu, a także zaimplementował część komponentów systemu GNU. W 1992 r. całość funkcjonowała jako wolne oprogramowanie. W międzyczasie programiści Projektu GNU mieli gotowy system, z wyjątkiem jądra. Tak narodził się wolny system operacyjny GNU/Linux. Późniejsze prace doprowadziły do powstania pierwszych dystrybucji, z których wyłoniły się m.in. Slackware Linux czy Debian. W 1989 r. powstała pierwsza wersja Powszechnej Licencji Publicznej GNU.
U podstaw wolnego oprogramowania leży prawo użytkowników do swobodnego uruchamiania, kopiowania, rozpowszechniania, analizy, zmian oraz ulepszania programów. Dziś mówi się o czterech rodzajach wolności użytkowników programów. Pierwsza z nich (wolność 0) to uruchamianie programu w dowolnym celu. Druga (wolność 1) odnosi się do analizy działania programu i dostosowywania go do własnych potrzeb. Warunek: użytkownik musi mieć dostęp do kodu źródłowego. Trzecia wolność (wolność 2) odnosi się do rozpowszechniania kopii, dzięki czemu użytkownik pomaga innym. Ostatnia z nich (wolność 3) to udoskonalanie programu i upublicznianie własnych modyfikacji. Takie rozwiązanie sprawia, że z ulepszeń może korzystać cała społeczność. I tu dostępność kodu źródłowego jest niezbędna.
Jeżeli jakakolwiek z wymienionych wolności nie jest zagwarantowana użytkownikowi, wówczas FSF nie uznaje programu za wolne oprogramowanie. W myśl tej filozofii oprogramowanie jest wolne wówczas, gdy wszyscy jego użytkownicy posiadają w pełni wszystkie prawa. Wszelkie swobody wynikające z przedstawionych wolności oznaczają, że ich realizacja nie wymaga uzyskania pozwolenia ani jakichkolwiek opłat. Programy, kody źródłowe, postaci binarne mogą być udostępniane za darmo bądź za opłatą, np. na płytach CD. Wolne oprogramowanie nie oznacza oprogramowania niekomercyjnego. Taki program musi być także dostępny do komercyjnego wykorzystania, rozwoju i rozpowszechniania. Wymienione wolności są podstawą Powszechnej Licencji Publicznej – GNU GPL (General Public License). Użytkownik może jednak zachodzić w głowę, czym właściwie jest licencja. Jak zdecydowana większość użytkowników, nigdy takiej nie czytał lub nie czytał w całości. Kruczki prawne czy regulacje nie są czymś, co przyciąga w danym programie. A właśnie tu jest sedno problemu.
Licencja na oprogramowanie to nic innego, jak umowa na korzystanie z utworu w postaci aplikacji komputerowej, zawierana między podmiotem, któremu przysługują majątkowe prawa autorskie do aplikacji, a osobą, która będzie z takiej aplikacji korzystać. Umowa taka określa formy wykorzystania danej aplikacji. Inaczej mówiąc, chodzi o warunki, na jakich użytkownik ma prawo korzystać z programu. O licencjach można by napisać cały esej, jednak użytkownicy komputerów mają najczęściej do czynienia z licencjami, które odnoszą się do EULA, czyli tak zwanej licencji użytkownika. W skrócie, określa ona warunki udzielania licencji końcowemu użytkownikowi oprogramowania.
Większość licencji, z jakimi można się spotkać, to regulacje wskazujące, na ilu komputerach można zainstalować dany program, ilu użytkowników może z niego korzystać oraz wiele innych ograniczeń, pozostających nierzadko w zupełnym oderwaniu od technologii i specyfiki danego programu. Najdziwaczniejszym, a zarazem standardowym zapisem jest klauzula o wyłączonej odpowiedzialności producenta z tytułu użytkowania oprogramowania przez użytkownika. Innymi słowy, producent programu nie ponosi żadnej odpowiedzialności za skutki błędów w programach.
Naszego Użytkownika może to mocno martwić. Nagle zburzony zostaje jego spokój. Ponadto kłóci się to z tym, co przeczytał na pewnej stronie internetowej, gdzie w przypływie dobrego humoru ktoś napisał, że „prawdziwy programista wiesza się razem ze swoim programem”. Bez względu na to, czy ów programista przeżył, ważne jest, że licencja GPL była jedną z reakcji na restrykcje zawarte w licencjach oprogramowania własnościowego. Wydaje się, że z powstaniem wolnego oprogramowania kończą się wszelkie problemy. Wszystko idzie z duchem czasu. W 1991 r. licencja GNU GPL zostaje wydana w drugiej wersji, zaś w 2007 r. pojawia się GNU GPL v. 3. Rozwija się GNU/Linux, a na licencji GPL pojawia się Gimp, Gnome, Ekiga, Nautilus, Amarok czy choćby Thunderbird. Tymczasem…
Otwarte oprogramowanie
…w 1998 r. do życia budzi się Open Source (otwarte źródło), odłam ruchu wolnego oprogramowania, promujący otwarte oprogramowanie.
W tym miejscu Użytkownik dostaje bólu głowy. Był święcie przekonany, że open source czy wolne oprogramowanie to w zasadzie to samo. Ideologicznie, aż tak bardo się nie mylił. Błędem było utożsamianie tych pojęć. Po chwili pomyślał, że jest w tym jakimś sens. Basen pełen ciepłej wody a basen pełen lodu to w gruncie rzeczy baseny pełne wody, ale pod różnymi postaciami. W pierwszym przypadku można wskoczyć do wody. W drugim można wskoczyć, ot choćby w łyżwy. Innymi słowy, pojawia się nieco inny sposób myślenia.
W 1997 r. Eric Raymond przedstawił pracę „Cathedral and the Bazaar”, w której zaakcentował techniczne korzyści pewnej metody (tzw. trybu bazarowego), używanej przy pisaniu jądra systemu Linux. W 1998 r. współpracująca z Raymondem Netscape Communication Corporation opublikowała jako wolne oprogramowanie kod źródłowy swojego najważniejszego produktu, przeglądarki Netscape Communicator. Powodem był spadek zysków oraz konkurencja ze strony Microsoft (Internet Explorer).
Grupa osób związana z systemem GNU/Linux i wolnym oprogramowaniem postanowiła wprowadzić termin marketingowy „otwarte oporgramowanie”, który miał funkcjonować jako model konkurencyjny dla oprogramowania własnościowego. W założeniu był to model przyjazny firmom i dużo mniej zaangażowany ideologicznie. W ten sposób narodził się termin „open source” i doszło do rozłamu z FSF Stallmana. W 1998 r. powstała także OSI (Open Source Initiative), jako organizacja pomocnicza ruchu.
To, czy licencję programu można uznać za oprogramowanie otwarte, reguluje wprowadzona przez OSI Definicja Otwartego Oprogramowania. Stworzono ją w oparciu o „Wytyczne Debiana dotyczące Wolnego Oprogramowania”. Definicja obejmuje dziesięć warunków:
- Swobodna redystrybucja, a więc swobodne przekazywanie lub sprzedaż oprogramowania.
- Kod źródłowy musi być dołączony do programu lub dostępny do pobrania.
- Musi być dozwolona redystrybucja modyfikacji programu.
- Licencja może wymagać, by modyfikacje były udostępniane tylko jako tzw. patche. Ma to zachować integralność autorskiego kodu źródłowego.
- Licencja nie może nikogo wykluczać, a tym samym dyskryminować.
- Nie można ograniczać komercyjnych zastosowań oprogramowania.
- Prawa dołączone do oprogramowania odnoszą się do wszystkich użytkowników i nie wymuszają na nich wykonywania dodatkowych licencji.
- Programu nie można licencjonować jako część szerszej dystrybucji.
- Licencja nie może ograniczać innego oprogramowania, tj. narzucać, by dystrybuowane w danym pakiecie programy były Open Source.
- Licencja nie może ograniczać oprogramowania do danej technologii czy stylu. Musi być technicznie neutralna.
Doskonałym przykładem oprogramowania spełniającego taką definicję jest Open Office. Ten pakiet oprogramowania biurowego open source jest konkurencyjnym produktem dla takich rozwiązań, jak Microsoft Office, IBM Lotus Symphony, Corel WordPerfect Office czy Apple iWork. Kod pakietu bazuje na opublikowanym w 2000 r. przez firmę Sun kodzie źródłowym StarOffice, będącym początkiem projektu OpenOffice.org.
W skład pakietu wchodzi procesor tekstu Writer, erkusz kalkulacyjny Calc, edytor grafiki Draw, a także edytor prezentacji Impress oraz program do tworzenia baz danych – Base. Pakiet obsługuje, na zasadzie eksportu i importu, między innymi dokumenty Microsoft Office: DOC, XLS, PPT, RTF, formaty graficzne: BMP, GIF, JPG, PNG czy WMF. Oprócz tego wspiera pliki tekstowe, bazy danych w formacie dBase DBF, pliki DXF AutoCAD czy wzory matematyczne w formacie MathML (MML). OpenOffice eksportuje dokumenty do formatu PDF i LaTeX. W najnowszej wersji wspierane są także dokumenty Microsoft Office (np. DOCX). Wyróżnia się na tle innych dostępnością na różne platformy i systemy. Działa w architekturze x86 oraz PowerPC. Można go uruchomić na takich systemach, jak Windows, Linux, Solaris, Mac OS X, Linux PPC czy FreeBSD. Pakiet przetłumaczono już na 60 języków, w tym polski. Użytkownik ma ponadto do dyspozycji narzędzia sieciowej instalacji systemu. Oprócz tego zwraca uwagę OpenDocument, otwarty format plików.
Innym, doskonałym przykładem otwartego oprogramowania może być dobrze wszystkim znana przeglądarka stron WWW – Mozilla Firefox. Prace nad projektem rozpoczęto w 2002 r. Celem było stworzenie nowej przeglądarki internetowej, która będzie szybka, nie obciąży zbytnio komputera, a jej budowa ułatwi dalszy, dynamiczny rozwój aplikacji. Dziś jest to jeden z najważniejszych produktów Korporacji Mozilla. Przeglądarka oferuje wysoki poziom zabezpieczeń, w tym szyfrowanie SSL z obsługą certyfikatów, konfigurację ustawień prywatności, ograniczenia dla języków JavaScript, Java, i inne. W odróżnieniu od wielu innych przeglądarek, nie ma tu obsługi technologii ActiveX. Firefox wspiera HTML, XHTML, CSS, CSS2, częściowo CSS3, JavaScript, MathML, SVG, XSLT oraz XPath. Posiada zintegrowany menedżer pobierania plików i jest mocno zintegrowany z Google.
Modele biznesowe – jak się na tym zarabia?
Podstawową różnicą między wolnym a otwartym oprogramowaniem jest kwestia praktycznego podejścia do zagadnienia. Tworząc skrót myślowy, można powiedzieć, że działalność FSF jest bardziej ideologiczna, zaś OSI praktyczna. Pamiętamy, że twórcy OSI widzieli otwarte oprogramowanie jako pewien model funkcjonujący na rynku oprogramowania. I rzeczywiście, model open source odnalazł się w świecie biznesu. Jest jednym ze sposobów na budowanie otwartych standardów oprogramowania, przy zachowaniu pełnej swobody po stronie użytkownika. Punktem wyjścia może tu być sposób na współpracę przedsiębiorstw i użytkowników nad produktem, który mógłby nie powstać, gdyby ktoś tworzył go samemu. Jedną z zalet jest szybka reakcja na błędy i dokonywanie zmian, w zgodzie z oczekiwaniami użytkownika. Otwartość kodu sprawia, że jest on analizowany przez większą grupę niezależnych osób. Dzięki temu produkt może być wykonany bardziej starannie i bezpiecznie. Co więcej, jednostki, które współpracują ze sobą, mają szansę rozbić niejeden monopol. Indywidualne działania nie dają takiej możliwości.
Nasz Użytkownik uśmiałby się, słysząc myśl Geralda Weiberga, który stwierdził, że „gdyby budowlańcy budowali domy tak, jak programiści tworzą swoje programy, to zwykły dzięcioł zniszczyłby cywilizację”. Twórcy oprogramowania stoją zatem przed problemem niezawodności. Jest to jedna z podstawowych rzeczy związanych z modelem open source. Mówi się, że dojrzały kod takiego programu jest dużo bardziej bezpieczny i niezawodny, niż ma to miejsce w przypadku oprogramowania własnościowego. Oczywiście, nie wszyscy się z tym zgadzają, a wiele firm nie chce uznać takiego oprogramowania za profesjonalne. Tymczasem, jeśli przyjrzeć się technologiom internetu, można odnieść zupełnie inne wrażenie. Za przykłady mogą posłużyć DNS, sendmail, oprogramowanie narzędziowe TCP/IP, implementacje TCP/IP w systemach BSD czy języki skryptowe, jak Perl.
Otwartość kodu sprzyja szybszemu rozwojowi oprogramowania. Zwłaszcza, jeśli producent działa w oparciu o tzw. „bazarowy tryb” jego tworzenia. Firma działa w oparciu o kod tworzony w internecie, na oczach wszystkich zainteresowanych i przy współudziale chętnych. Model ten zaproponował Eric Raymond, twierdząc że „wystarczająca liczba przyglądających się oczu sprawia, że wszystkie błędy stają się banalne”. A jeśli tak, to spadają koszty ogólne przedsięwzięcia. Producent jest bliżej klienta, a co za tym idzie ma dostęp do szerszego rynku. Wiąże się to z większą dostępnością produktu, np. dla innych systemów.
Użytkownik, wiedziony ciekawością, może zapytać, jakie to modele biznesowe pozwalają zarabiać firmom na otwartym oprogramowaniu. Istnieje wiele takich modeli, jednak cztery z nich są szczególnie popularne.
- Model Sprzedawcy Usług (Service Sellers). Ideę tego modelu określa się czasem jako: „oddaj przepis, otwórz restaurację”. W tym modelu bardzo efektownie oddaje się produkt, ale sprzedaje się związaną z nim dystrybucję, markę czy usługi po sprzedaży. W ten sposób działa np. Red Hat.
- Model Przegranego Lidera (Loss Leader). W tym przypadku oddaje się produkt, jako lider, który stracił pozycję na rynku zamkniętego oprogramowania. Jak pamiętamy, w ten sposób działa Netscape.
- Model Widget Frosting. Model uznawany przez wielu za najczystszy i najbliższy idei otwartego oprogramowania. Przedsiębiorstwo sprzętowe korzysta z niego, aby uzyskać lepsze sterowniki i tańsze narzędzia interfejsu. Oprogramowanie jest tu zatem niezbędne, ale stanowi źródła korzyści. W duchu tego modelu Silicon Graphics wspiera Sambę, znane oprogramowanie do serwera plików i drukarek.
- Akcesoria (Accesorizing). Sprzedaż akcesoriów takich, jak książki, systemy z pre-instalowanym oprogramowaniem, kompatybilny sprzęt. Niejednokrotnie są to także koszulki, kubki do kawy, zabawki, plakaty. I choć takie działania mogą wspierać przedsięwzięcia niekomercyjne, jak choćby OpenBSD, to modelowo, na sprzedaży książek lub sprzętu, sukces odniosły takie firmy, jak O’Reilly Associates, SSC lub VA Research.
Z powyższych największy sukces odnieśli sprzedawcy usług i przegrani liderzy. Trzeba jednak pamiętać, że przedsiębiorstwa lub producenci rozpoczynający dany projekt, mają wiele wątpliwości związanych z otwarciem oprogramowania. Warunkiem zysku jest nie tylko pomysł, ale także to, czy potencjalni użytkownicy będą wiedzieli, że jest on interesujący. Trudno bowiem zdecydować, czy wartość wnosi sam program, czy usługi i wsparcie z nim związane. Dobrym przykładem może być tu firma Digital Creations, która zdecydowała się na otwarcie najważniejszego ze swoich produktów, tj. serwera aplikacji WWW – Zope. Decyzję podjęto za sprawą udziałowców, którzy uznali takie posunięcie za właściwe.
A jednak razem
Pomimo różnic między open source a wolnym oprogramowaniem, ruchy te są do siebie zbliżone. Jest to szczególnie widoczne po wydarzeniach z 2001 r., gdy Microsoft zaatakował GPL. W roku 2003 z kolei odbył się proces SCO dotyczący własności jądra Linux.
Dla celów opisowych powstał nawet neutralny termin FLOSS (Free/Libre Open Source Software), z którym można się spotkać w oficjalnych dokumentach. Pozwala on na prezentację dorobku obu nurtów. Tym bardziej, że w zasadzie oprogramowanie oparte na licencji zgodnej z definicją FSF jest jednocześnie zgodne z definicją OSI. Jednak, ze względu na różnice ideowe, podkreśla się odrębność tych dwóch nurtów. Przykładem licencji w ramach FLOSS, pozostających w zgodzie z GPL to: LGPL, licencja BSD czy licencja MIT.
Ludzie związani obydwoma nurtami trzymają się razem, a do napięć dochodzi między nimi sporadycznie, głównie za sprawą liderów.














Dodaj komentarz