Co to jest GNU/Linux? Wszystko, co musisz wiedzieć przed rozpoczęciem przygody
Czy kiedykolwiek zastanawiałeś się nad tym czym tak naprawdę jest GNU/Linux i dlaczego odgrywa wielką rolę w świecie otaczających nas technologii? Czy wiedziałeś o tym, że Linuksa nie da się pobrać i skąd pojawił się mit mówiący o tym, że Linux jest darmowy? Po odpowiedzi na te, jak i inne pytania zapraszam do lektury w dzisiejszym wpisie.
Zanim przejdziemy do odpowiedzi na zadane we wstępie pytania, ustalmy fakty. Czym jest Linux? Pisząc w dużym uproszczeniu, do czego jeszcze wrócimy, Linux to system operacyjny, a więc oprogramowanie, które zarządza podzespołami Twojego komputera: począwszy od procesora, poprzez pamięć RAM, kartę graficzną, a skończywszy na myszce, czy klawiaturze.
Wyobraź sobie, że system ten jest "tłumaczem", bez którego Twój edytor tekstowy nie wiedziałby, jak wyświetlić wybraną literę na ekranie Twojego komputera. To właśnie dzięki niemu możemy wykorzystać jakikolwiek sprzęt, działający pod kontrolą określonego systemu operacyjnego, do nauki, pracy i zabawy.
Multics, Unix, Minix, GNU...
Mówi się, że początki Linuksa sięgają roku 1991 i jest to oczywiście prawda, jednak niewiele osób odnosi się do wydarzeń z lat 60. poprzedniego wieku, bez których Linux prawdopodobnie mógłby nie istnieć. To właśnie wtedy amerykański programista, Ken Thompson pracował nad bardzo ambitnym projektem systemu operacyjnego o nazwie Multics, sponsorowanym przez firmy MIT, GE, Honeywell oraz Bell Labs. W projekt ten pokładano wiele nadziei, jednak poziom skomplikowania oraz ociężałość Multicsa doprowadziły do podjęcia decyzji ostatecznej, a więc przerwania dalszych prac nad rozwojem tego systemu. Thompson, po upadku Multicsa, postanowił wykorzystać swoje doświadczenie i napisać coś mniejszego, bardziej "zgrabnego" co zaowocowało powstaniem systemu operacyjnego o nazwie Unix.
Unix w latach 70. i 80. stał się standardem w środowiskach korporacyjnych i uniwersyteckich. Był systemem bardzo stabilnym, a przede wszystkim wielozadaniowym. Posiadał jednak niefortunną wadę: rozwijany był w erze komercjalizacji, co za tym idzie - był drogi, a jego kod źródłowy z czasem przestał być otwarty. To właśnie ten stan rzeczy pociągnął ze sobą kolejne konsekwencje i to właśnie tutaj historia nabiera tempa.
Richard Stallman, amerykański haker i programista w MIT, widząc ograniczenia Uniksa, rozpoczął prace nad rozwojem własnego otwartoźródłowego systemu operacyjnego, który byłby udostępniony za darmo. Do roku 1991 Stallman posiadał już niemalże cały system (GNU) składający się z kompilatora GCC, edytora Emacs i powłoki Bash, jednakże jądro tego systemu było zbyt skomplikowane i nie działało prawidłowo.
Kolejną osobą, o której zapomnieć nie można jest Andrew Tanenbaum. Tanenbaum to amerykański profesor informatyki, który chciał pokazywać studentom działanie systemu operacyjnego "pod maską". Niestety Unix chroniony był prawami autorskimi, co uniemożliwiało przedstawianie go na wykładach. Tanenbaum postanowił jednak nie odpuszczać i rozpoczął pisanie systemu operacyjnego, który będzie przypominać Uniksa dla celów edukacyjnych. W taki oto sposób narodził się kolejny system o nazwie Minix.
GNU/Linux
Zapewne zadasz sobie pytanie "Ale co mają wspólnego ze sobą wszystkie te osoby?". Stallman i Tanenbaum mieli wspólny mianowik - stworzyć otwarty i darmowy system operacyjny będący alternatywą Uniksa. Obie te postaci dzieliły się swoimi projektami, dzięki czemu pasjonaci systemów operacyjnych mogli mieć do nich wgląd. Jednym z nich był właśnie Linus Torvalds, fiński, wtedy 21-letni student informatyki na technicznym uniwersytecie w Helsinkach, który dzięki otwartym źródłom mógł zobaczyć, jak to wszystko jest "poskładane".
Torvalds użytkował Miniksa głównie do jednego celu: łączenia się z serwerem uczelni, aby móc czytać maile i przeglądać grupy dyskusyjne. Był jednak poirytowany ograniczeniami licencyjnymi i funkcjonalnymi tego systemu: miał kiepski program do emulacji terminala do komunikacji z serwerem. Linus zamiast szukać gotowego rozwiązania, postanowił... napisać własny emulator.
Z czasem ten prosty program do emulacji terminala zaczął "puchnąć". Linus dodawał do niego kolejne funkcje: obsługę dysku twardego, system plików, zarządzanie pamięcią. W pewnym momencie zorientował się, że nie pisze już tylko prostego narzędzia, ale jądro systemu operacyjnego. Młody student, nieświadomy tego, że tworzy historię postanowił, zapytać się społeczności, na jednej z grup dyskusyjnych, co najbardziej lubiane jest w Minixie i co byłoby mile widziane w jego nowym systemie operacyjnym.
Cześć wszystkim użytkownikom minixa
Tworzę (wolny/darmowy) system operacyjny (tylko hobby, nie będzie wielki i profesjonalny jak gnu) dla klonów AT 386(486). Projekt „pichci się” od kwietnia i powoli zaczyna być gotowy. Chciałbym poznać Wasze opinie o tym, co lubicie, a czego nie lubicie w minixie, ponieważ mój OS nieco go przypomina (między innymi ten sam fizyczny układ systemu plików, z powodów praktycznych).
Obecnie przeportowałem basha (1.08) oraz gcc (1.40) i zdaje się, że wszystko działa. To sugeruje, że w ciągu kilku miesięcy uzyskam coś praktycznego i chciałbym wiedzieć, jakich funkcji oczekiwałaby większość ludzi. Wszelkie sugestie są mile widziane, ale nie obiecuję, że je wdrożę :-)
Linus
PS. Tak – system jest wolny od jakiegokolwiek kodu minixa i posiada wielowątkowy system plików. NIE jest przenośny (używa przełączania zadań procesora 386 itp.) i prawdopodobnie nigdy nie będzie obsługiwał niczego poza dyskami twardymi AT, bo tylko takie posiadam :-(.
Jak można wywnioskować z wiadomości Torvaldsa, a dokładniej z części, którą oznaczyłem czcionką pogrubioną, młody Fin wykorzystał narzędzia, które wcześniej napisał Richard Stallman, któremu nie udało się na czas stworzyć działającego jądra systemu. Efekt? Linux wypełnił lukę w projekcie Stallmana. Ludzie zaczęli łączyć jądro Linuksa z narzędziami GNU. Dlatego poprawna (choć rzadziej używana) nazwa całego systemu to GNU/Linux.
Czy Linux to faktycznie system operacyjny...?
Może wydawać się to zagwatmane, ale Linux to wciąż "tylko" jądro systemu (ang. kernel), więc gdybyśmy udali się na oficjalną stronę tego projektu szybko doszlibyśmy do wniosku, że Linux pobrany w najnowszej wersji to tak naprawdę zbiór katalogów i plików napisanych głównie w języku C. Oczywiście możesz odwiedzić również inne strony związane z projektem Linuksa takie, jak linux.com albo linuxfoundation.org ale szybko przekonasz się, że Linuksa, jako systemu operacyjnego, tam nie znajdziesz.
Gdzie używany jest Linux?
Linux to nie tylko rozwiązanie przeznaczone dla komputerów. Linux wykorzystywany jest niemalże wszędzie i stawiam dolary przeciwko orzechom, że z Linuksa korzystasz przynajmniej raz dziennie, a wszystko dlatego, że znajdziesz go m.in. w urządzeniach, jak:
- smartfonach (jest bazą systemu operacyjnego Android, choć Android nie korzysta z GNU),
- serwery internetowe (Google, Facebook, Netflix, Amazon, Twitter, Wikipedia opierają się o Linuksa),
- superkomputery (500 najszybszych komputerów na świecie działa w oparciu o Linuksa),
- transport (systemy operacyjne firm takich, jak Tesla, Volkswagen, Toyota, Mazda bazują na Linuksie),
- routery, nowoczesne telewizory, konsole do gier, czytniki ebooków, i wiele innych to tak naprawdę Linux pod maską.
Linuksa najtrudniej spotkać tam, gdzie użytkownik końcowy potrzebuje specyficznego oprogramowania oraz w bardzo starych systemach bankowych. Wszędzie indziej - od inteligentnych urządzeń jak zegarki, przez lodówkę, aż po giełdę nowojorską (NYSE) - Linux jest fundamentem.
Jeśli chcesz pobrać Linuksa na swój komputer, to...
Powinieneś zainteresować się dystrybucjami. Dystrybucja to klucz do zrozumienia, dlaczego Linuksa nie da się pobrać. Skoro Linux to jądro, a GNU to narzędzia, to ktoś musi to wszystko złożyć w całość, dodać instalator, interfejs graficzny i zestaw aplikacji. Ten "ktoś" (firma lub społeczność) tworzy właśnie dystrybucję. Jeśli więc interesuje Cię ten temat, przedstawiam poniżej kilka popularnych dystrybucji, którymi warto się zainteresować:
- Ubuntu (ubuntu.com)
- Fedora (fedoraproject.org)
- Mint (linuxmint.com)
- Pop!_OS (system76.com)
- ZorinOS (zorin.com)
Czy Linux jest za darmo?
Skoro Linux jest tak potężny, to dlaczego właściwie nie kosztuje ani grosza...? Tu dochodzimy do największego mitu krążącego wokół Linuksa. Dlaczego? Linux narodził się w świecie anglojęzycznym, gdzie słowo "free" nie musi oznaczać "darmowy". "Free" w tym przypadku oznacza "wolny", tak samo, jak mówimy o "wolności słowa".
Skoro kod źródłowy jest otwarty i każdy może go legalnie kopiować, to próba sprzedawania samego jądra systemu mijałaby się z celem - zawsze znalazłby się ktoś, kto udostępniłby go obok za darmo.
Na jakich zasadach to właściwie działa? (licencje)
Jądro Linuksa nad którym czuwa Linus Torvalds, wydawane jest na licencji GNU GPL v2 (General Public License wersja 2). Mówi ona w skrócie: "Możesz używać mojego kodu i go zmieniać, ale jeśli wypuścisz swoją wersję w świat, musisz również udostępnić jej kod źródłowy na tych samych zasadach". To dlatego nikt nie może "ukraść" Linuksa i zamknąć go w płatnym pudełku.
Nieco inaczej wygląda sprawa z dystrybucjami. Dystrybucja to nie tylko jądro, ale setki innych programów. Dlatego dystrybucja to taka licencyjna mozaika, dlatego, że:
- Większość narzędzi jest na licencjach GPL (wolnościowych),
- część programów może być na licencjach typu MIT czy Apache (które pozwalają na więcej swobody w biznesie),
- niektóre dystrybucje, jak Ubuntu, dorzucają do tego autorskie rozwiązania, np. zamknięte sterowniki np. do kart graficznych NVIDIA czy kodeki filmowe, które nie są "wolne", ale są potrzebne, żeby Twój komputer po prostu działał!
Podsumowując: Linux to jądro, GNU to narzędzia, a dystrybucja to system, który trafia na Twój komputer. To "wolność słowa", a nie tylko "darmowa kawa". Czy jest idealny? Pewnie nie, ale jest nasz: społecznościowy, otwarty i niezależny. I to właśnie ta niezależność sprawia, że jest dziś najważniejszym kawałkiem kodu w świecie technologii