Ostatnie zmiany: - Projekt Buntu dostępny w sieci - więcej w sekcji News (16.12.2010)


icon.png Przedinstalacyjny wstęp do Linuksa

Zanim przejdę do właściwej treści tego zacnego tekstu, na początku pokrótce przedstawię o czym on będzie: dla kogo przeznaczony jest ten tekst, o co chodzi z tymi Linuksami, czy warto instalować - postaram się przedstawić argumenty za i przeciw, oraz wypadało by obalić kilka popularnych mitów, dotyczących najistotniejszych systemów operacyjnych, stosowanych głównie na komputerach klasy PC. Ciąg dalszy sielanki o Linuksie - część druga - będzie dotyczyła instalacji na przykładzie dystrybucji Ubuntu.
Jeżeli interesują Cię alternatywne rozwiązania, jeżeli ze względów ideowych chcesz zrezygnować z najbardziej popularnego i zarazem komercyjnego systemu na rzecz otwartego oprogramowania (bądź jeżeli masz już zwyczajnie go dość), lub aktualnie jesteś na etapie poszukiwania systemu dla swojego komputera, to ten tekst jest jak najbardziej dla ciebie. Miej na uwadze, że nie chcę pisać o Linuksie w samych superlatywach, bo nie jest to system bez wad. Ale do tego jeszcze przejdziemy...

Ciekawskich, którzy chcą poznać znaczenie wspomnianego słowa „Ubuntu” odsyłam do tego [1] miejsca. Na potrzeby artykułu, wystarczy nam wiedzieć, że pod nazwą „Ubuntu” kryje się najpopularniejsza dystrybucja Linuksa, która uznawana jest za jedną z najprostszych - dlatego też to właśnie tą dystrybucją zajmiemy się. Ale do rzeczy. Ze względu na nieodpartą potrzebę zagłębienia się nieco w Linuksową tematykę, przede wszystkim należy rozróżnić takie pojęcia jak: Linux oraz dystrybucja Linuksa. Samo „Linux” oznacza jądro systemu – jest ono podstawowym elementem każdej dystrybucji. Twórcą Linuksa jest fiński programista - Linus Torvalds [2] (tak, nazwa „Linux” wzięła się od jego imienia). Zatem dystrybucja [3], mówiąc ogólnie, jest to jądro systemu wraz z całą resztą, która ląduje w trakcie instalacji na naszym dysku. Linux występuje w podstawowych dwóch wersjach: 2.4 oraz 2.6. Chyba wszystkie znaczące dziś dystrybucje Linuksa korzystają z wersji 2.6. Jeszcze po tych dwóch „znaczących” cyfrach występuje dalszy ciąg (kolejna numeracja podwersji..), ale tym teraz zajmować się nie będziemy. Jak natomiast „numeruje” się kolejne wydania dystrybucji? To już zależy od samych twórców konkretnej dystrybucji, nie ma w tym przypadku jednej powszechnej reguły. Jeżeli mówimy o Ubuntu, to przyjęło się oznaczać wersje wydań w postaci „RR.MM”, czyli dla wydania, które ukazało się w kwietniu 2010 roku będzie to „10.04”. Oczywiście również każde wydanie Ubuntu ma przypisywaną unikalną „nazwę kodową”, jednak bywa ona pomijana. Przykład: Ubuntu 10.10 „Maverick Meerkat”. Do tego wszystkiego trzeba wyróżnić dwie podstawowe edycje danego wydania – „Desktop”, „Server” oraz niekiedy pojawiająca się (lecz nie zawsze) edycję „Netbook”. Przeznaczenie tych edycji jest raczej jasne, aczkolwiek nie ma co się sugerować tymi nazwami tak dosłownie – np. na komputerze typu Netbook [4] zainstalować możemy każdą z wymienionych edycji Ubuntu. Po co w takim razie jest i edycja o nazwie „Netbook”? Tutaj może bardziej odpowiednim określeniem by było nie tyle co „edycja” a „remiks” - remiks, głównie graficzny edycji „Desktop”, który ma uprościć, ze względu na mały wyświetlacz w „mini-laptopach”, poruszanie się w środowisku graficznym. Naturalnie co kto lubi, mnie osobiście nie przypadło do gustu takie rozwiązanie.
Warto wiedzieć, że kolejne wersje Ubuntu pojawią się co pół roku - w kwietniu i w październiku. Co dwa lata mamy do czynienia z wersjami „LTS” [5] (ang. Long Term Support) – są to wydania szczególne, dla których łatki – aktualizacje krytyczne – wydawane są dla edycji „Desktop” przez trzy lata od momentu ukazania się wydania, oraz wydawane aż przez pięć lat dla edycji „Server”. Tu mała uwaga, ponieważ w przypadku wersji Ubuntu 10.04 „LTS”, nie ma dostępnej edycji „Netbook”. Standardowo dla wersji normalnej (non-LTS), okres wsparcia wynosi 18 miesięcy. Z punktu widzenia przeciętnego użytkownika raczej jest to i tak bez znaczenia - twierdzę że przynajmniej raz na rok powinno się aktualizować dystrybucję do kolejnej wersji (w przypadku desktopów), aby być w miarę na bieżąco z „nowinkami”. Zwłaszcza, że od momentu ukazania się Ubuntu 10.04 (które było dla mnie miłym zaskoczeniem), wszystko zmierza w dobrym kierunku, czyli do uzyskania jednocześnie stabilnej, nowoczesnej jak i najbardziej przyjaznej dystrybucji Linuksa. Niestety, ale wersje Ubuntu 9.10 i starsze, w mojej opinii, są mało udane – lepiej czym prędzej uciekać od nich do wydań z 2010 roku.

Trzeba nadmienić, że Ubuntu to oprogramowanie darmowe, więc i tym samym twórcy, współtwórcy i wszyscy ci, którzy mieli choć minimalny wkład w rozwój tego oprogramowania, nie dają żadnej gwarancji na to, że ich „twór” będzie działać stabilnie, zawsze poprawnie, zgodnie z oczekiwaniami i bezawaryjnie. Może się zdarzyć, że coś po instalacji „wysypie się”, coś nie będzie działać (np. kamerka internetowa) i tak dalej. U jednej osoby instalacja pójdzie bez problemów, u kogoś innego zaś, na innym sprzęcie, już nie. Błędów w oprogramowaniu z otwartym kodem jak i w tym z zamkniętym, jest sporo. Wystąpienie błędu na konkretnej maszynie nie oznacza, że wystąpi on na pewno u i innych osób, które mają zainstalowane oprogramowanie w tej samej wersji co my – uzależnione jest to od różnych czynników, jak np. posiadane akurat tak „specyficznej” konfiguracji komputera (w zamyśle sprzętu), że dany błąd tylko objawiać się będzie u pewnej grupy osób, spełniającej „wymagane kryteria”.
Jak już wspomnieliśmy o sprzęcie komputerowym, to i konsekwentnie pociągniemy ten temat nieco dalej. Nadal zjawiskiem powszechnym jest, że sterowniki, które powinny być dostarczone przez producenta danego sprzętu, pisane są „po omacku” dobrowolnie przez entuzjastów bardziej lub mniej doświadczonych, często bez dostępu do specyfikacji technicznej urządzenia, ponieważ wspomniany producent nie dostrzega „alternatywnych” systemów operacyjnych. Wtedy też takie sterowniki np. nie wykorzystują w pełni możliwości sprzętu na takiej „niszowej” platformie jak Linux. Co prawda sporo zmieniło się w porównaniu z wersjami dystrybucji Linuksa z końca XX wieku, jednak pamiętaj, że cokolwiek robisz i tak robisz to WŁASNĄ odpowiedzialność.
Przy okazji, odpowiadając na pytanie, które może się pojawiać, czy w Linuksie już można oglądać filmy, odtwarzać muzykę w popularnych formatach - tak, można. Już to jest na tym etapie, że są takie możliwości.

Dostrzegalność Linuksa - teraz wypadało by sobie postawić pytanie co zrobić, aby popularność otwartych, darmowych systemów jak Linux, rosła w bardziej dynamicznym tempie niż ma to miejsce teraz. Ktoś powinien zrobić ten kluczowy krok, który spowodowałby lawinowe przeciąganie użytkowników pecetów z jednej strony na drugą. Kto - twórcy sprzętu? Może twórcy komercyjnego oprogramowania? Na pewno oba obozy miałyby istotny w tym udział. Są użytkownicy, którzy nie przywiązują większej wagi do tego, jakie jest to oprogramowanie - darmowe, czy nie – dla nich raczej istotniejsze jest to, aby system słynął z bycia „bezpiecznym” (w rozumowaniu bezpieczny system uniemożliwi wykorzystanie błędów w użytkowych aplikacjach..). Tylko pomyślmy - możliwość uruchomienia w wersji tzw. natywnej (czyli z pominięciem różnego rodzaju emulatorów środowiska systemu Windows), popularnego komercyjnego programu graficznego na Linuksie, nowych „wypasionych” gier, czy popularnego programu do tworzenia muzyki...
Swego rodzaju fenomenem jest firma Apple ze swoim flagowym produktem Mac OS X, któremu poświęcę chwilę. Jak może nie wszyscy wiedzą, system Mac OS X do kategorii systemów z otwartym kodem źródłowym nie należy, jednak warto o nim nieco powiedzieć. Komputery Apple, głównie dzięki budowie (i pochodzeniu Uniksowym) systemu Mac OS X, słyną ze swojej stabilności i (względnego) bezpieczeństwa, oraz mają (zależy z jakiego punktu widzenia na to patrzeć) pewną istotną wadę a i jednocześnie zaletę. Otóż nie ma możliwości w pełni dostosowania sprzętu w komputerze Apple [6] – kupić można jedynie już złożony gotowy zestaw. Oczywiście jest możliwe wprowadzenie drobnych modyfikacji do takiego zestawu jak m.in. zwiększenie ilości pamięci RAM, lub (jeżeli posiada się taki model) wymiana karty graficznej, jednak na tym się właściwie kończy. Dla przykładu procesor – wszystkie dziś komputery Apple dostarczane są z procesorem jednej tej samej firmy. Nie możemy decydować w o tym, co wewnątrz takiego komputera będzie zainstalowane, lub wybór będzie bardzo niewielki. Dla niektórych będzie to dość rażące ograniczenie. Jednocześnie dzięki temu, że Apple decyduje, co będzie mogło być zainstalowane w środku, czyli stosując wąski wachlarz co do oferowanych podzespołów, twórcy są wstanie dla tak niewielkiej grupy przygotować solidne, przetestowane sterowniki (we współpracy z producentami), a w zasadzie to „napisać” system pod ten konkretny sprzęt.
O jeszcze jednym warto wspomnieć: Mac OS X jest systemem z rodziny Unix [7], Linuks to system Uniksopodobny [8] zatem mają one trochę wspólnego. Również oczywistym jest, że system Mac OS X jest bardziej popularny od swoich darmowych rywali – m.in. dostrzegają go, w coraz to liczniejszej grupie, twórcy muzycznego oprogramowania.

Przejdźmy teraz do bezpieczeństwa w Linuksie i jak to z tym jest u konkurencji.
Systemy z rodziny Windows stały się popularne, ponieważ od samego początku były proste w obsłudze. Wtedy, gdy pojawił się system Windows 95, dla porównania Linux, jeżeli chodzi o „przyjazność”, był daleko w polu. Ta prostota w Windowsie była kosztem bezpieczeństwa, otwierała furtkę „złośliwemu oprogramowaniu” [9] oraz system ten był sam w sobie niedostatecznie dopracowany. Domyślnie w Windows 95, 98... aż do XP stosowano następującą politykę: tuż po instalacji systemu, tworzone było konto użytkownika z uprawnieniami administratora, co oznaczało, że taki użytkownik mógł zrobić wszystko z systemem. Teraz wystarczy rozpowszechnić w internecie dostateczną liczbę wirusów, robaków itp. aby zainfekować jak największą liczbę komputerów. Jeżeli już sam system oferuje na starcie Kowalskiemu prawa administratora (gdzie on sam nie wie w efekcie do czego to może doprowadzić), to w pewnym momencie, na ogół nieświadomie - ściągając z sieci bądź przynosząc na dyskietce – dochodzi do uruchomienia (wykonania kodu) takiego to programu, który okazuje się jednak czymś zupełnie innym niż jak to użytkownik zakładał. Wraz z uruchomieniem takiej aplikacji przez użytkownika, który posiada uprawnieni administratora, finał może być tego np. taki: zainfekowanie kolejnego komputera, który dołącza do „siatki komputerów zombie” (ataki na różne witryny internetowe) oraz wykradanie haseł do różnych kont internetowych Kowalskiego przy jednoczesnym ukryciu ("zaszyciu" się w systemie), swojej obecności. Wszystko dla wygody użytkownika. Niektórzy twierdzą, że ok 92% całego szkodliwego oprogramowania dla systemu Windows, powstało dzięki tej „otwartej furtce”.
W dużej mierze dystrybucje Linuksa nie stosują takiej polityki. Na starcie tworzony jest (poza standardowym kontem administratora – tzw. „root”), użytkownik z ograniczonymi prawami, tzn. taki, który nie może modyfikować nie swoich plików. Za sprawą takiego rozwiązania, różne niepożądane oprogramowanie zbyt wiele zrobić nie może, gdyż ten uruchomiony program z poziomu zwykłego użytkownika, nie ma prawa zaingerować w integralność plików systemowych. Oczywiście pewne "szkody" można by nadal wyrządzić, typu skasowanie zawartości katalogu domowego użytkownika. Chyba że jest to "aplikacja" bardziej złożona, która mimo tego, że została uruchomiona z uprawnieniami zwykłego użytkownika, wykorzysta istniejącą lukę bezpieczeństwa w systemie, co pozwoli na uzyskanie uprawnień samego administratora. Dlatego aby jeszcze zwiększyć bezpieczeństwo, już od dawna w Linuksie dostępne są takie mechanizmy jak MAC [10] (ang. Mandatory Access Control) - obowiązkowa kontrola dostępu. W skrócie można ten mechanizm przedstawić następująco: definiujemy politykę „obowiązkowych wymuszeń”, tak aby nawet sam administrator (konto „root”), był zobligowany do przestrzegania pewnych zasad. Tym samym, wcześniej wspomniana "szkodliwa aplikacja", mimo zdobytych uprawnień administratora, może zostać "powstrzymana" przez odpowiednio skonfigurowany system MAC. Najbardziej popularną implementacją systemu (mechanizmu) MAC dla Linuksa jest „SELinux” [11], który został zapoczątkowany przez amerykańską agencję bezpieczeństwa narodowego - NSA [12]. Jednak wciąż niewiele dystrybucji Linuksa z systemów MAC korzysta. Główną przyczyną tego stanu rzeczy jest fakt, że najbardziej znany system MAC - SELinux - jest skomplikowany w konfiguracji. Jak to jest rozwiązane w Ubuntu pytasz? W Ubuntu od niedawna mamy do czynienia z systemem AppArmor [13], który jest prostszy w konstrukcji niż SELinux. Zapoczątkowany przez firmę Novell, udostępniony na zasadach open source, Apparmor szybko stał się zauważony przez „Linuksowców” i całkiem prawdopodobnym jest iż ta forma implementacji systemu MAC, będzie za jakiś czas dominującą wśród dystrybucji Linuksa.
Microsoft zdał sobie sprawę z tego, że oferowanie od samego początku użytkownikowi pełnych praw administratora, nie jest dobrym rozwiązaniem. Zatem wprowadzając na rynek system Vista, chciano dać użytkownikom system bardziej bezpieczny niż jak jego poprzednicy, ograniczając domyślne prawa użytkownika. Windows Vista posiada pewną formę implementacji systemu MAC, znaną pod nazwą UAC [14] (ang. User Account Control). Gdy użytkownik chciał dokonać instalacji programu w miejscu, gdzie na codzień nie ma tam prawa zapisu, musiał on potwierdzić (zezwolić), że to na pewno on (a nie jakiś szkodliwy program), wyszedł z tą inicjatywą i potrzebuje do tego celu większych uprawnień od systemu. Wystarczyło wykonać jedno kliknięcie w ukazanym monicie bezpieczeństwa, aby całą sprawę z uprawnieniami załatwić. Niestety, mechanizm ten okazał się niedopracowany i po krótkim czasie został on złamany.
Wróćmy jeszcze na chwilę do Linuksa. Kolejnym argumentem przemawiającym za jego bezpieczeństwem jest to, że po prostu nie opłaca się dziś pisać wyspecjalizowanych wirusów/robaków i podobnych, na systemy mało popularne. Dlaczego? Ponieważ nie można na tym zwyczajnie zarobić.
Według różnych statystyk, użytkownicy Linuksa stanowią 1% ze wszystkich komputerów podłączonych do sieci internet. Niecałe 5% przypisuje się użytkownikom Mac OS X natomiast aż 92% to systemy z rodziny Windows. Gdyby porównać ilość serwerów, pracujących pod kontrolą systemu z rodziny Open Source (Linux, OpenSolaris, *BSD i podobne), to zdecydowanie można zauważyć, że w tym obszarze systemy Windows tej dominacji już nie mają.
Dobrze, a co z aktualizacjami, jak często pojawiają się poprawki bezpieczeństwa? Tu znów Windows, w porównaniu z Ubuntu, nie wypada najlepiej. W Ubuntu aktualizacje pojawiają się codziennie i wiele z nich dotyczy luk bezpieczeństwa – wierz mi, im więcej takich aktualizacji tym lepiej (bezpieczniej) dla Ciebie. Natomiast niekiedy na niektóre łaty bezpieczeństwa od Microsoftu, trzeba długo czekać. I tu znów fanfary dla otwartości kodu źródłowego oprogramowania – każdy, kto tylko posiada odpowiednią wiedzę, może taką łatkę napisać i udostępnić społeczności.

Mam nadzieję, że tym tekstem choć trochę skłoniłem Cię do dalszych rozważań na temat alternatywnych systemów. Pamiętajmy, że internet jest ogromnym źródłem informacji i jak to bywa, wiele szczegółowych dokumentacji pisanych jest w języku angielskim, dlatego bardzo przydaje się znać ten język.

Mat. 'XtriX', 21-10-2010


Ostatnia modyfikacja: 24-10-2010



[1] - http://czytelnia.ubuntu.pl/index.php/2008/10/09/ubuntu-w-poludniowej-afryce-co-to-naprawde-znaczy/
[2] - http://pl.wikipedia.org/wiki/Linus_Torvalds
[3] - http://pl.wikipedia.org/wiki/Dystrybucja_Linuksa
[4] - http://pl.wikipedia.org/wiki/Netbook
[5] - https://wiki.ubuntu.com/LTS
[6] - http://www.brighthub.com/computing/mac-platform/articles/61624.aspx
[7] - http://pl.wikipedia.org/wiki/Unix
[8] - http://pl.wikipedia.org/wiki/System_uniksopodobny
[9] - http://pl.wikipedia.org/wiki/Z%C5%82o%C5%9Bliwe_oprogramowanie
[10] - http://pl.wikipedia.org/wiki/Mandatory_Access_Control
[11] - http://pl.wikipedia.org/wiki/Security-Enhanced_Linux
[12] - http://en.wikipedia.org/wiki/National_Security_Agency
[13] - http://en.wikipedia.org/wiki/AppArmor
[14] - http://pl.wikipedia.org/wiki/User_Account_Control