Virtual-IT.pl - wirtualizacja cloud computing storage SDx data center

Artykuły

30 lat obecności na rynku Linuksa i licencji GPL

LinuxTrzydzieści lat temu mogliśmy np. obejrzeć w MTV teledysk do piosenki R.E.M. - Losing My Religion i  na tej podstawie zdecydować, czy chcemy kupić całą płytę, zadzwonić do znajomego z telefonu stacjonarnego i poprosić o podwózkę do najbliższego sklepu muzycznego oraz mieć nadzieję, że będą ją mieli na stanie. Dziś, za pomocą telefonu, możemy zwyczajnie wybrać klip, który chcemy obejrzeć, a nawet wysłać znajomemu odnośnik do niego w wiadomości tekstowej. Wynika to w dużej mierze z dwóch wydarzeń, które miały miejsce w 1991 roku: wydania jądra systemu Linux i premiery drugiej wersji licencji GNU General Public License (GPLv2).

Jest to pewnie zbyt duże uproszczenie, ale faktem jest, że ogromna część technologii, od których jesteśmy dziś zależni, jest bezpośrednio związana z tymi wydarzeniami. Cofnijmy się o krok, aby porozmawiać o nich i o możliwościach, jakie przed nami otworzyły.

Co to jest GPL?

W najbardziej podstawowym ujęciu licencja GPL (podobnie jak inne licencje) określa, co można, a czego nie można robić z danym dziełem. Zazwyczaj takim dziełem jest oprogramowanie - np. jądro systemu Linux - ale równie dobrze może to być coś zupełnie innego, chociażby dokumentacja.

To, czym wyróżnia się GPL - a także inne licencje bezpłatnego i otwartego oprogramowania (ang. free and open-source software, FOSS) - to fakt, że wykorzystuje ona prawo autorskie do maksymalizacji praw przyznawanych użytkownikom. To całkowicie odmienne podejście od typowego zarządzania prawami, w którym to prawo autorskie ogranicza to, co ludzie mogą robić z oprogramowaniem lub innymi dziełami i zdecydowaną większość praw przyznaje autorowi.

Jeśli kiedykolwiek czytaliście umowę licencyjną użytkownika końcowego (EULA), pewnie wiecie, że zwykle jest ona najeżona punktami, które mówią o tym, czego nie można, a co można robić z danym oprogramowaniem - w bardzo ograniczony sposób. Możemy w niej np. przeczytać, że nie można rozpowszechniać danego oprogramowania lub że można je uruchamiać tylko na jednej maszynie lub na jednym typie maszyn.

GPL natomiast ma na celu nadanie konkretnych praw odbiorcom dzieła, aby chronić to, co założyciel GNU, Richard Stallman, określił mianem „czterech wolności”.

Cztery wolności GPL

Bezpłatne oprogramowanie daje użytkownikom cztery „wolności”: wolność do wykonywania, kopiowania, badania/ulepszania i rozpowszechniania dzieła.

W skrócie oznacza to, że jeśli otrzymamy program na licencji GPL, możemy uruchamiać go bez ograniczeń. Możemy skopiować go na urządzenie znajomego, możemy przy tym go modyfikować i ulepszać, a następnie rozpowszechniać wprowadzone zmiany.

Otrzymaliście kopię systemu Fedora Workstation i chcecie ją uruchomić? Śmiało. Jest to jawnie dozwolone przez GPL (oraz inne licencje FOSS dołączone do Fedory). Chcecie zrobić kopię systemu i dać ją znajomemu? Nie ma problemu. Chcecie zagłębić się w kod i zobaczyć, jak działa? To też jest dozwolone. Naprawiliście błąd w oprogramowaniu i chcecie podzielić się rozwiązaniem? Do dzieła. Jest jednak pewien haczyk: rozpowszechnianie oprogramowania na licencji GPL wiąże się z dodatkowymi obowiązkami.

Ochrona praw użytkowników na mocy GPL

GPL nie jest jedyną licencją, która przekazuje użytkownikom tego typu swobody. Jest to jedna z wielu istniejących licencji FOSS. Warto zwrócić uwagę na rozróżnienie pomiędzy określeniami „bezpłatne” i „otwarte”. To, co czyni licencję GPL tak ciekawą, to charakter tzw. licencji wzajemnej.

Co do zasady licencja GPL zakłada, że te same prawa, które otrzymaliście na jej mocy, mają być przekazywane osobom, wśród których rozpowszechniacie dane dzieło. W efekcie nie można np. otrzymać oprogramowania na licencji GPLv2, takiego jak jądro Linuksa, wprowadzić w nim zmian, a następnie rozpowszechnić z inną licencją, która ograniczyłaby możliwość robienia tego samego przez innych. GPL to twórczy sposób wykorzystania praw autorskich, który zachęca do używania, studiowania, modyfikowania i rozpowszechniania oprogramowania - zamiast próbować ograniczać podobne czynności, jak to zwykle bywa w przypadku praw autorskich.

GPLv2 nie jest jedyną licencją FOSS, z jaką mamy tu do czynienia. Nie jest to nawet jedyna wersja GPL związana z Linuksem, ale to już odrębna historia. Organizacja Open Source Initiative opracowała wykaz licencji, które pasują do definicji oprogramowania open source.

Licencje permisywne a licencje copyleft

Licencje FOSS często dzieli się na licencje permisywne i licencje typu copyleft. Jak już wspominaliśmy, licencje copyleft wymagają wzajemnego dzielenia się wprowadzanymi zmianami podczas rozpowszechniania oprogramowania na licencji GPL lub innych licencjach wzajemnych. W tym przypadku kod jest udostępniany na zasadach GPL i jego użytkownik jest zobowiązany do udostępniania swoich zmian i ulepszeń takiego kodu w przypadku jego rozpowszechniania.

Warto przy tym zwrócić uwagę, że ten wymóg zaczyna obowiązywać, gdy oprogramowanie GPL jest rozpowszechniane, a nie wtedy, gdy dokonywane są jakiekolwiek zmiany. Jeśli zatem pobieracie oprogramowanie i modyfikujecie je na własny użytek lub w celach edukacyjnych, ale nie rozpowszechniacie go, nie jesteście zobowiązani do rozpowszechniania takich zmian ani udostępniania ich komukolwiek w inny sposób.

Niemniej, GPLv2 wymaga, aby zmiany te były udostępniane na tych samych warunkach, jeśli zdecydujemy się na dalsze rozpowszechnianie zmodyfikowanego przez nas oprogramowania. Nie można zatem wprowadzić zmian do oprogramowania GPL napisanego przez kogoś innego i ponownie licencjonować go na podstawie licencji własnościowej lub nawet innej licencji FOSS.

Z drugiej strony, licencje permisywne pozwalają na rozpowszechnianie dzieł bez dzielenia się zmianami. Dobry przykład stanowi tutaj licencja MIT, która pozwala nawet na dystrybucję dzieł na licencji prawnie zastrzeżonej, ale wymaga dołączenia informacji o pierwotnych prawach autorskich.

Jądro systemu Linux w centrum wydarzeń

Powyższe zagadnienia związane z licencjami są ciekawe, ale co to wszystko ma wspólnego z sukcesem jądra Linuksa?

Cofnijmy się nieco, aby omówić to, czym jest, a czym nie jest jądro systemu. Jądro to swego rodzaju rdzeń systemu operacyjnego - w tym przypadku Linuksa. Ogólnie rzecz biorąc, jądro zarządza sprzętem, procesami, pamięcią, plikami i innymi aspektami pracy systemu. Samo w sobie nie jest elementem, na który większość ludzi w ogóle zwraca uwagę lub z którym celowo wchodzi w interakcję, jednak jest ono niezwykle ważne dla całego systemu operacyjnego.

Wiele innych elementów składa się na to, co nazywamy dystrybucją Linuksa: są to na przykład narzędzia i kompilatory GNU, które były wcześniej dostępne w projekcie GNU i pomogły w tworzeniu samego systemu. Do tego, rzecz jasna, dochodzą aplikacje, które sprawiają, że komputer w ogóle nadaje się do użycia. Dotyczy to zarówno serwerów internetowych, jak i baz danych czy nawet pulpitów użytkowników.

Jednak to nadal jądro znajduje się w centrum wszystkich wydarzeń, a powód, dla którego Linux jest prawdopodobnie najbardziej udanym systemem operacyjnym w historii, wynika z faktu, że jego licencja pozwalała na jego kopiowanie, ulepszanie i dystrybucję oraz wymagała dzielenia się wprowadzanymi zmianami. (Warto przy tym zauważyć, że licencja Linuksa nie wymaga współpracy, ale sam charakter tego systemu zdecydowanie do niej zachęca).

Pierwsza wersja jądra Linuksa została wydana w oparciu o niestandardową licencję, która ograniczała działalność komercyjną. Taki stan nie trwał jednak długo. Linus Torvalds wydał Linuksa w wersji 0.99 na licencji GPLv2 w 1992 roku. Dlaczego? Jak sam wspomina, „szybko stało się jasne, że moje pierwotne prawa autorskie były tak restrykcyjne, że zabraniały niektórych całkowicie uzasadnionych zastosowań… I choć na początku bałem się korzystania z GPL, chciałem też okazać moje uznanie dla kompilatora GCC C, na którym opierał się Linux, a który oczywiście był objęty licencją GPL”.

Usuwając ograniczenia związane między innymi z komercyjnym wykorzystaniem, Torvalds stworzył szansę dla firm, które chciały ulepszać i rozpowszechniać system. Zezwolenie na komercyjne korzystanie oznaczało, że sprzedawcy mogli próbować zarobić na dołączaniu go do książek, zestawów pudełkowych, czasopism i nie tylko.

Musimy przy tym pamiętać, że sposób dystrybucji oprogramowania we wczesnych latach 90. znacznie różnił się od współczesnego. Większość ludzi otrzymywała oprogramowanie na dyskietce (lub dyskach) bądź na płytach CD. Niektórzy mogli co prawda pobierać je z serwerów FTP, ale większość użytkowników nie miała tego przywileju.

Pierwsze zetknięcie z Linuksem

Richard Jones, obecnie starszy główny inżynier oprogramowania w zespole R&D Platform firmy Red Hat, wspomina, że korzystał z systemu Minix, zanim odkrył Linuksa dzięki projektowi Slackware Linux. Jak mówi Jones, pozyskanie Slackware przez sieć było nieco skomplikowanym zadaniem.

„W pełni funkcjonalna dystrybucja zajmowała około 30 dyskietek 3,5 cala. Samo jej pobranie i skopiowanie na dyskietki trwało cały dzień, ale w tamtym czasie (1992/1993) pracowałem w rządowym ośrodku badawczym, który miał dostęp do pewnej niesamowitej nowej technologii, zwanej Internetem” - wspomina Richard Jones.

Logowanie i rejestracja