Streszczenie
Artykuł opisuje ideę i cechy wolnego oprogramowania. Rozpoczyna się przedstawieniem portretu psychologicznego hakera w sensie programisty-pasjonata. Prezentuje sylwetkę Richarda Stallmana – twórcy wolnego oprogramowania. Po sprecyzowaniu pojęć prawa autorskiego, licencji i patentu oraz przedstawieniu zagrożeń, jakie stwarzają patenty na oprogramowanie przedstawia podstawowe licencje GNU i porównuje je z innymi powszechnie stosowanymi licencjami. Na koniec opisuje zalety i wady oraz stan obecny i przyszłość wolnego oprogramowania.

Portret psychologiczny hakera

Dziwić może, że tak wielu ludzi gotowych jest napisane przez siebie programy publikować w Internecie za darmo, nie otrzymując niczego w zamian. W rzeczywistości dostają coś, co jest dla nich bardzo ważne – akceptację, szacunek i autorytet w swojej społeczności. Można ich nazwać hakerami. Należy jednak podkreślić różne znaczenia słowa „haker”:

1. Wandal komputerowy, który po prostu włamuje się przez Internet. Ten obraz najczęściej lansują media.
2. Włamywacz komputerowy, który jednak posiada rozległą wiedzę na temat komputerów i sieci, a także postępuje według pewnego kodeksu etycznego – nie niszczy, tylko włamuje się dla sportu i dla własnej satysfakcji.
3. Programista pasjonat, któremu satysfakcję przynosi samodoskonalenie i pokonywanie ograniczeń – nie tylko w sensie włamywania się, ale także programowania.

Samo określenie haker (ang. hacker) powstało w latach pięćdziesiątych w MIT (Massachusetts Institute of Technology). Pochodzi od słowa hack, którym określano wtedy śmieszny, ale nieszkodliwy żart. Hakowanie miało też dużo wspólnego z włamywaniem się – ówcześni studenci często wchodzili w miejsca opatrzone napisem Wstęp wzbroniony, np. żeby dostać się do nieużywanych akurat komputerów.

W trzecim z przedstawionych wyżej znaczeń haker to pewna natura ludzka, pewien sposób myślenia. Można wymienić niektóre cechy typowego hakera, jak biegłość w zagadnieniach technicznych, zaradność czy znajdowanie upodobania w rozwiązywaniu problemów i przekraczaniu ograniczeń. Hakerzy rozwiązują problemy i tworzą rzeczy wierząc w wolność i wzajemną pomoc. Są kreatywni i bardzo efektywni (szybko się uczą i szybko pracują), jeśli tylko mają motywację. Nuda jest ich wrogiem.

Ponadto hakerów cechuje często aspołeczność, nocny tryb życia, używanie środków psychoaktywnych, jak kofeina (ale równocześnie niechęć do narkotyków), wolnościowe poglądy, obojętność wobec spraw religijnych, niebywały talent do nauk ścisłych, zainteresowanie fantastyką i grami RPG, a także zainteresowania językowe. Mówi się natomiast, że hakerzy rzadziej, niż inni ludzie dbają o wygląd zewnętrzny, o rozwój emocjonalny czy o kondycję fizyczną. Prawie cała populacja hakerów jest płci męskiej.

Sylwetka Richarda Stallmana

Jednym z najbardziej znanych na świecie hakerów jest Amerykanin, twórca wolnego oprogramowania – Richard Matthew Stallman (znany też jako RMS). Urodził się 16 marca 1953 roku na Manhattanie. Nie miał łatwego dzieciństwa – jego rodzice rozwiedli się. Nie był grzecznym dzieckiem ani uczniem. Podejrzewano u niego autyzm. Jednocześnie od dziecka wykazywał ogromne zdolności w dziedzinie nauk ścisłych, szczególnie matematyki. Studiował na Uniwersytecie Harvarda. Później podjął pracę w MIT, w Laboratorium Sztucznej Inteligencji (AI Lab).

W MIT panowała i nadal panuje atmosfera sprzyjająca kreatywności i eksperymentom. Jak na każdej uczelni, także wtedy i tam obowiązywał zwyczaj publikowania i powszechnego udostępniania efektów swojej pracy oraz dzielenia się z innymi swoją wiedzą i doświadczeniem.

Pewnego razu do laboratorium trafiła nowa drukarka firmy Xerox. Jednak nie była ona dobrze przystosowana do pracy zdalnej i sprawiała wiele problemów. Stallman wraz z kolegami postanowił ulepszyć dołączony sterownik, ale okazało się, że firma nie dostarczyła wraz z nim kodu źródłowego. Prośba o udostępnienie tego kodu zakończyła się odmową. To wydarzenie legło u podstaw inicjatywy Stallmana znanej jako wolne oprogramowanie. Dziś taka postawa przedsiębiorstw wydaje się być czymś normalnym, ale wtedy były to dopiero pierwsze próby komercyjnego podejścia do oprogramowania – i bunt Stallmana przeciwko takiemu podejściu.

27 września 1983 roku, o godzinie 00:30 Stallman wysłał na grupę dyskusyjną net.unix-wizards komunikat o tytule Nowa implementacja Uniksa i treści:

Poczynając od Święta dziękczynienia, zamierzam rozpocząć pisanie pełnego, zgodnego z Uniksem systemu operacyjnego GNU (od Gnu’s Not Unix), by udostępnić go wszystkim chętnym za darmo. Pilnie potrzebne jest wsparcie w postaci poświęconego czasu, pieniędzy, oprogramowania i sprzętu.

W marcu 1985 roku w Dr. Dobb’s Journal opublikowany został napisany przez niego Manifest GNU. W tym samym roku Stallman założył Fundację Wolnego Oprogramowania (ang. Free Software Foundation).

Podstawowe pojęcia

Należy wyraźnie odróżnić pojęcia prawa autorskiego, licencji i patentu. Szczególnie warto podkreślić różnicę pomiędzy byciem autorem danego dzieła a ograniczaniem dostępu do niego innym. Z pewnym uproszczeniem i pod kątem oprogramowania pojęcia te można scharakteryzować następująco:

1. Prawo autorskie to monopol praw majątkowych na rzecz autora pewnego utworu (albo w określonych przypadkach wydawcy lub producenta). Zasadą w prawie autorskim jest, iż z utworu może korzystać lub nim rozporządzać tylko osoba uprawniona. Najczęściej będzie to sam twórca lub osoba, która nabyła określone prawa majątkowe, lub osoba na rzecz której ustanowiona została licencja. Nikt inny nie może także podawać się za autora danego utworu. Prawo autorskie obowiązuje automatycznie po stworzeniu i utrwaleniu danego dzieła, bez konieczności jakiegokolwiek jego rejestrowania.
2. Licencja to upoważnienia na wykonywanie czynności, której nie wolno wykonywać bez zezwolenia, a w przypadku programu zasady, na jakich właściciel praw autorskich zezwala na jego używanie. Autor może nakładać dowolne prawa i ograniczenia – choćby zabronić używania programu w pewne dni tygodnia. Licencja ma najczęściej postać dołączonego do programu dokumentu tekstowego, który jest pokazywany do zatwierdzenia podczas instalacji.
3. Patent to prawne zastrzeżenie jakiegoś wynalazku w urzędzie patentowym. Często uniemożliwia jego legalne wykorzystanie bez wniesienia na rzecz właściciela patentu określonej opłaty. W dziedzinie oprogramowania kwestia patentów nie jest jednoznaczna. Patentowanie algorytmów, formatów plików i innych rozwiązań informatycznych przypomina trochę ograniczanie prawa do korzystania z odkryć naukowych czy wzorów matematycznych. Ponadto, amerykańskie prawo patentowe przyznaje patent temu, kto pierwszy go zgłosi, a nie kto jest faktycznym autorem danego wynalazku. Samo zgłoszenie patentu wiąże się też ze sporym nakładem finansowym. Dlatego patenty na oprogramowanie stały się narzędziem walki pomiędzy korporacjami. Większość patentów na oprogramowanie pochodzi z USA i z Japonii i jest w rękach największych firm.

Licencje

Chcąc tworzyć wolne oprogramowanie należy stosować odpowiednią licencję. Podstawową licencją wolnego oprogramowania jest powszechna licencja publiczna GNU (GNU GPL – ang. General Public License). Zapoznając się z jej podstawowymi założeniami można najłatwiej poznać istotę wolnego oprogramowania. Jej preambuła rozpoczyna się słowami:

Większość licencji na oprogramowanie pomyślana jest po to, aby odebrać użytkownikowi możliwość swobodnego udostępniania innym i zmieniania danego oprogramowania. Natomiast w wypadku Powszechnej Licencji Publicznej GNU (GNU General Public License, GPL) celem jest zagwarantowanie użytkownikowi swobody udostępniania i zmieniania tego wolnego oprogramowania, a więc danie pewności, iż oprogramowanie jest wolno dostępne dla wszystkich użytkowników.

Angielskie słowo free ma dwa znaczenia – darmowy oraz wolny. Dla europejskiego użytkownika najistotniejsza może być dostępność programu za darmo (piractwo w Europie wynosi ok. 70%, a w USA tylko ok. 30%). Podkreśla się jednak, że słowo to użyte zostało w tym drugim znaczeniu. Oznacza to swobodę używania i rozpowszechniania programu (do celów domowych, edukacyjnych i każdych innych, a nawet komercyjnych), a także wprowadzania do niego poprawek, udoskonalania, tłumaczenia na inne języki itd. – bez konieczności indywidualnego pytania o zgodę autora. Wymaga to dostępu do kodu źródłowego programu. Dlatego licencja mówi, że kod musi być udostępniany razem z programem.

Istotnym elementem licencji GNU jest idea copyleft (co można przetłumaczyć jako lewo autorskie). W żaden sposób nie przeczy ona prawu autorskiemu – w przypadku licencji GNU, mimo udostępnienia kodu źródłowego – autor programu pozostaje jego autorem i nikt inny nie może się za takiego podawać. Copyleft to prawo do wprowadzania modyfikacji oraz wykorzystywania fragmentów wolnego programu, ale wyłącznie pod warunkiem, że nowopowstałe dzieło także będzie wolnym oprogramowaniem i udostępniony zostanie jego pełny kod źródłowy.

Istnieją też inne licencje wolnego oprogramowania:

* GNU LGPL (ang. Lesser Genral Public License – Mniejsza Licencja Publiczna GNU) przeznaczona dla bibliotek. Licencja GNU GPL zastosowana do biblioteki zmuszałaby do publikowania każdego programu, w którym chciano by jej użyć, także jako wolnego oprogramowania. Licencja LGPL pozwala na używanie biblioteki w dowolnych programach (także komercyjnych, zamkniętych). Jedynie nowe wersje biblioteki napisane w oparciu o nią muszą być także wolnym oprogramowaniem.
* GNU FDL (ang. Free Documentation License – Licencja GNU dla Wolnej Dokumentacji) – utworzona została dla dokumentów tekstowych, ponieważ wolne oprogramowanie wymaga wolnej dokumentacji. Pozwala nie tylko na swobodne czytanie i kopiowanie dokumentu, ale także na wprowadzanie w nim zmian. Stosowana bywa też do niezależnych dokumentów, jak np. książki.

Dla lepszego zrozumienia wolnego oprogramowania warto porównać licencję GNU GPL z innymi często spotykanymi licencjami.

* Freeware to licencja dająca prawo do swobodnego kopiowania i używania programu, jednak bez możliwości wprowadzania modyfikacji i bez dostępu do kodu źródłowego.
* Public Domain to w zasadzie nie licencja. Oznacza po angielsku własność ogółu. Są to dzieła, które na skutek decyzji twórcy są dostępne do dowolnych zastosowań bez konieczności uwzględniania praw autorskich, np. fragmenty kodu publikowane do celów edukacyjnych. W przeciwieństwie do nich, wolne oprogramowanie, mimo udostępnienia kodu źródłowego, objęte jest ochroną prawa autorskiego.
* Różne licencje, napisane specjalne dla konkretnego programu, przyznają różne prawa i nakładają różne ograniczenia. Niektóre z nich dopuszczają darmowe wykorzystanie, ale tylko do celów niekomercyjnych. Dostępny kod źródłowy także nie zawsze oznacza wolne oprogramowanie. Przykładem może być biblioteka muzyczna FMOD. Jej licencja dopuszcza darmowe wykorzystanie do celów niekomercyjnych, natomiast do celów komercyjnych konieczne jest wykupienie licencji (2000$ za jeden program dla Windows). W tym drugim przypadku dołączany jest kod źródłowy biblioteki, jednak bez możliwości jego swobodnego, dalszego rozpowszechniania czy używania.

Zalety i wady wolnego oprogramowania

Pierwszą i zarazem najważniejszą dla większości użytkowników zaletą wolnego oprogramowania jest jego dostępność za darmo. Choć licencja GNU nie zabrania zarabiania na takim oprogramowaniu, to jednak większość wolnych programów dostępna jest do ściągnięcia w Internecie, rozpowszechniana bywa na CD-ROMach dołączanych do czasopism komputerowych itp.

Dostępność kodu źródłowego i możliwość wprowadzania zmian umożliwia dowolnym zainteresowanym osobom tworzenie nowych wersji programu, jego udoskonalanie, poprawianie błędów, tłumaczenie na inne języki itd. Dzięki temu twórcami wielu (także bardzo dużych i poważnych) projektów bywa ogromna społeczność ludzi z całego świata kontaktujących się jedynie przez Internet, a programy takie bardzo szybko i dobrze się rozwijają. Taki sposób tworzenia oprogramowania okazuje się działać i to działać bardzo dobrze.

Przy okazji można zadać pytanie – kim są programiści piszący wolne oprogramowanie? Z czego żyją? Pewien przedstawiciel firmy Microsoft stwierdził kiedyś, że wolne oprogramowanie finansowe jest z grantów, a więc powstaje za pieniądze wszystkich podatników. Tymczasem okazuje się, że tworzy je „po godzinach” bardzo wielu programistów-pasjonatów. Zasoby, za które niewątpliwie trzeba płacić (jak hosting stron WWW) są często finansowane z dobrowolnych datków, a organizatorem tego wszystkiego są fundacje.

Także wiele komercyjnych firm z powodzeniem popiera i tworzy wolne oprogramowanie. Samo napisanie programu nie jest bowiem jedynym potencjalnym źródłem zysku. Program można opublikować za darmo, a oferować jego płatną instalację, wdrożenie i wsparcie techniczne (np. Linux Red Hat czy Mandrake).

Pożytek z wolnego oprogramowania odnoszą wszyscy:

* Zwykli użytkownicy – używanie oprogramowania dostępnego za darmo pozwala im przede wszystkim pozostać legalnym. Trudno w ich przypadku mówić, że firmy tracą z powodu piractwa, ponieważ używanych programów i tak z przyczyn finansowych nie byliby w stanie kupić.
* Firmy – używanie wolnego oprogramowania pozwala obniżyć koszty. Instalacja Linuksa, alternatywnego pakietu biurowego i innych darmowych programów jest tańsza, a wsparcie techniczne zapewniane poprzez fora i grupy dyskusyjne nierzadko nie ustępuje jakością temu oferowanemu komercyjnie.
* Instytucje państwowe – Unia Europejska zaleca używanie wolnego oprogramowania w instytucjach publicznych. Nie tylko pozwala to obniżyć koszty. Oprogramowanie, w którego kod źródłowy mają wgląd wszyscy obywatele zgodne jest z ideami demokracji. Bardzo istotna jest także niezależność od jakichkolwiek firm. Licencja GNU daje pewność, że oprogramowanie pozostanie wolne. Za program zamknięty, jego aktualizację, konserwację, wsparcie techniczne czy po prostu za jego używanie producent może zażyczyć sobie w każdym momencie dowolnej kwoty, a państwo, uzależnione od takiego oprogramowania, może być zmuszone ją zapłacić – z naszych pieniędzy.

Warto także przedyskutować potencjalne wady prezentowanego podejścia do oprogramowania:

* Mówi się, że przystępne, proste w obsłudze programy są domeną komercyjnych korporacji, natomiast mniejsze, darmowe produkcje pisane przez młodych programistów-pasjonatów są trudne i toporne. Nierzadko jest to prawdą, jednak w tej kwestii sprawy idą w dobrym kierunku. Kolejne dystrybucje Linuksa są coraz bardziej przystępne, a wolne programy mimo prezentowania dużej ilości technicznych informacji mogą być łatwe w obsłudze (przykładem niech będzie eMule). Jeśli dodać do tego fakt, że komercyjni producenci pozwalają sobie na coraz bardziej kontrowersyjne ingerencje w nasze systemy i w naszą prywatność – poprzez instalowanie dodatków szpiegujących, dodawanie wielu aplikacji do autostartu, pokazywanie reklam, pozostawianie nieusuniętych śmieci po odinstalowaniu, łączenie się z Internetem podczas każdego uruchamiania itd. – bezpieczniej można się chyba czuć instalując program napisany przez jakiegoś pasjonata niż przez poważną firmę.
* Wolnemu oprogramowaniu zaleca się odtwórczość i brak kreatywności. Faktycznie – wiele programów kopiuje pomysły ze swoich komercyjnych odpowiedników. Linux powstał jako wolna odmiana systemu Unix, wiele rozwiązań graficznego interfejsu użytkownika jest wzorowanych na Windows itd. Jednak nie byłoby dobrze, gdyby takie pomysły i rozwiązania podlegały patentowaniu, a ich powielanie i oddawanie do użytku ludziom za darmo wcale nie musi być uważane za coś złego.
* Kiedy powstał darmowy odpowiednik komercyjnego programu do kompresji w formacie ZIP, jeden z redaktorów magazynu komputerowego CHIP nazwał to psuciem rynku. Napisał, że autor wygra konkurencję z firmą, sam niczego przy tym nie zarobi, przestanie rozwijać swój program i nie będzie udoskonalany żaden z nich. Chodziło jednak o program typu freeware. W przypadku wolnego oprogramowania nawet, jeśli autor porzuci prace nad projektem, jego rozwijania mogą się podjąć inne zainteresowane nim osoby.
* osób powszechny dostęp do kodu źródłowego uważa za wadę, ponieważ łatwo można znajdować w nim błędy. Jednak w praktyce okazuje się, że znajdowanie poważnych błędów możliwe jest także bez dostępu do kodu źródłowego, a ich znalezienie nie zawsze kończy się wykorzystaniem do złych celów (przykładem niech będzie błąd w systemie Windows znaleziony niedawno przez polską grupę LSD). Tymczasem bezpieczeństwo polegać powinno na tym, żeby błędów nie było, a nie na tym, żeby pozostały nieznane. Dlatego dostęp do kodu źródłowego i możliwość szukania w nim błędów okazuje się być zaletą. Eric Raymond nazwał to Prawem Linusa i sformułował tak: Przy dostatecznie dużej liczbie patrzących oczu, każdy błąd jest niegroźny.
* Można również obawiać się, czy dostęp do kodu źródłowego nie skłoni kogoś do przywłaszczenia sobie programu i podania się za jego autora. W wolnym oprogramowaniu jednak prawo autorskie nadal obowiązuje, a osobie czy firmie, która złamie je bądź złamie licencję GNU, na której program jest rozpowszechniony, można wytoczyć proces sądowy. Poza tym łatwiej jest chyba zmienić nazwisko autora programu w skompilowanym pliku binarnym EXE za pomocą dowolnego edytora szesnastkowego, niż szperać w tym celu w kodzie źródłowym.
* Ktoś może podpatrzeć w kodzie źródłowym i zastosować potem w swoim programie jakąś sprytną technikę czy błyskotliwą funkcję. Wielu bardzo się tego obawia zupełnie tak, jakby od nauczenia się czegoś od nich sami na tym mieli stracić. Tymczasem pomysłowe rozwiązania publikowane bywają także bez jakiegokolwiek związku z wolnym oprogramowaniem, w licznych artykułach i na forach dyskusyjnych w Internecie. Dostęp do kodu źródłowego może także pełnić rolę edukacyjną.

Stan obecny i przyszłość

Sztandarowym przedstawicielem wolnego oprogramowania jest system operacyjny Linux. Jego popularność stale wzrasta. Coraz więcej osób nie tylko bawi się Linuksem, ale także zaczyna go poważnie używać, a nawet całkowicie przechodzi na niego rezygnując z systemu Windows. Linux jest nie tylko systemem bezpiecznym i elastycznym, ale także całkiem dobrą stacją roboczą. Kolejne wersje różnorodnych dystrybucji są coraz atrakcyjniejsze i coraz prostsze w obsłudze, a do każdej z nich dołączony jest komplet darmowych i bardzo dobrych aplikacji.

Wolne oprogramowanie coraz częściej stanowi poważną konkurencję dla swoich komercyjnych odpowiedników. eMule zamiast eDonkey, OpenOffice zamiast Microsoft Office – to tylko wybrane przykłady. Niektóre programy – jak serwer Apache, język PHP czy baza danych MySQL – są ogromnie popularne i używane bywają także w bardzo poważnych zastosowaniach komercyjnych.

Należy pamiętać, że wolne oprogramowanie nie jest tożsame z systemem Linux. Nie wszystkie programy pisane pod Linux są wolne (np. oryginalne sterowniki do kart graficznych firmy nVidia dla Linuksa rozpowszechniane są bez kodu źródłowego). Z drugiej strony coraz więcej powstaje wolnych programów na platformę Windows. Wiele wolnych projektów jest także wieloplatformowych – powstaje jednocześnie dla różnych systemów operacyjnych.

Przyszłość wolnego oprogramowania rysuje się bardzo pozytywnie. Po latach rozwoju nadal zdobywa ono coraz większą popularność. Wiadomo już, że nie jest tylko szaloną, idealistyczną filozofią, ale doskonale funkcjonującą alternatywą wobec komercyjnego podejścia do oprogramowania. Konkurencja między nimi trwa i każdy powinien znaleźć w niej swoje miejsce. Będzie ona powiem dążyć raczej do równowagi, niż do zwycięstwa jednej z tych filozofii.

Najpoważniejszym zagrożeniem dla wolnego oprogramowania są patenty na oprogramowanie. W ten kwestii pozostaje jednak tylko liczyć na rozsądek rządzących nami polityków i mieć nadzieję, że nie dadzą się oni przekonać lobby koncernów software’owych.

W dziedzinie gier komputerowych idea wolnego oprogramowania nie jest zbyt rozpowszechniona. Większość młodych twórców z tej branży ma przed oczami wyłącznie perspektywę pracy dla komercyjnych korporacji i dąży do niej, a tymczasem swoje małe prace publikuje co najwyżej na licencji freeware. Trudno przedstawić przyczynę tego zjawiska.

Jednak nie jest ono jedyną bolączką naszej społeczności. Prawdziwie poważnym problemem jest niedokańczanie większości projektów oraz nieumiejętność pisania zespołowego, tak powszechnego w środowisku wolnego oprogramowania. Rodzi się pytanie, czy skazani jesteśmy wyłącznie na bezsilne obserwowanie tego wszystkiego? Czy też może jesteśmy w stanie, wzorem Stallmana, wziąć sprawy w swoje ręce i aktywnie wpływać na naszą rzeczywistość kształtując jednocześnie przyszłość – swoją i całego Warsztatu?

Źródła

1. „Społeczność hakerów”, Wikipedia
2. „Jak zostać hackerem” Eric S. Raymond
3. „W obronie wolności” Sam Williams, wydawnictwo Helion, 2003
4. „Richard Stallman’s Personal Home Page”
5. Fundacja Wolnego Oprogramowania
6. GNU – strona główna
7. Patenty na oprogramowanie

Regedit
www.programex.prv.pl
www.regedit.risp.pl

Referat został po raz pierwszy zaprezentowany na I Ogólnopolskiej Konferencji Twórców Gier Komputerowych „Od koncepcji do produktu” w Siedlcach, 25-26 września 2004.

Autor: Regedit