Spis treści
Minihistoria Linuxa
Linux zaczął powstawać w 1991 roku. W dokładnosci wtedy to, jego autor
Linus Torvalds rozpoczął eksperymenty z systemem operacyjnym Minix.
System ten pracował na komputerach z procesorem i80286, czyli tzw. "AT-ekach".
Informacje o pracy Linusa, opublikowane przez niego na liście dyskusyjnej
spotkały się z dużym zainteresowaniem i wkrótce nad Linuxem pracowała
grupa ludzi. Znacznie przyspieszyło to rozwój systemu nazwanego później
Linux. Im bardziej system ten stawał się popularny, tym więcej ludzi wspierało
jego rozwój. Proces ten trwa do dziś, a liczbę użytkowników Linuxa szacuje
się obecnie na ponad 10 milionów.
Ogólnie o systemie
Trudno powiedzieć ile osób rozwija obecnie Linuxa, ponieważ system operacyjny
to dla użytkownika tak naprawdę nie tylko jądro, ale i oprogramowanie oraz
dokumentacja (jądro bez oprogramowania użytkowego i dokumentacji byłoby
interesujące conajwyżej dla hobbystów, specjalistów i studentów ;).
Formalnie jednak, Linuxem nazywamy tylko jądro tego systemu. Obecnie,
system jest już bardzo rozwinięty, uznany jest za stabilną platformę Unixową.
Pod względem szybkości dorównuje wielu komercyjnym systemom Unixowym,
tworzonym od kilkunastu lub więcej lat, a niektóre z nich nawet przewyższa
szybkością na tym samym sprzęcie (patrz np. testy porównawcze Linuxa i SunOSa
na procesorze SPARC, LinuxPlus 1/97 ). Jeżeli chodzi o procesory Intel
to zapewne sam/a będziesz miał/a okazję to zobaczyć. Wystarczy powiedzieć, że
Linux potrafi "wrócić życie" zapomnianym już 386/486-tkom.
Wsród fachowców Linux uchodzi za system lepszy pod względem szybkości, efektywności, stabilności i co ważne w zastosowaniach Internetowych - bezpieczeństwa od modnych ostatnio Windows NT. Do tej sytuacji doszło między innymi dlatego, że od znalezienia błędu w Linuxie do wypuszczenia poprawek przez autorów, nie mija zazwyczaj więcej jak kilka godzin, maksymalnie kilka dni. Niektóre duże firmy znane są natomiast z opieszałości przy wprowadzaniu poprawek do swoich systemów. Utarło się nawet powiedzenie, że błędy w ich programach są nazywane cechami (ang. features) tych programów.
Dystrybucje
Linux jako jądro systemu jest jednakowy dla wszystkich (z dokładnością do
wersji), natomiast Linux oraz towarzyszące mu oprogramowanie nazywane jest
dystrybucją. Różne firmy i organizacje zajmują się sprzedawaniem Linuxa
i wiele z nich opracowało własne dystrybucje. Wyróżniamy generalnie dwa rodzaje
dystrybucji: komercyjne i niekomercyjne. Komercyjne (jak np.
RedHat,
Caldera)
zawierają oprócz oprogramowania darmowego (GNU, FreeWare) lub częściowo
darmowego (Shareware) także komercyjne oprogramowanie, jak np. pakiety typu
office, wydajne X serwery ze wsparciem dla najnowszego sprzętu, przeglądarki
internetowe, narzędzia programistyczne etc. Takie dystrybucje kosztują
od kilkudziesięciu do kilkuset dolarów. Ale są też dystrybucje niekomercyjne
jak np. Debian,
Slackware tworzone przez
ochotników lub dystrybutorów
darmowego oprogramowania. Także firmy wypuszczają wersje Linuxa nie
zawierające oprogramowania komercyjnego. Takie dystrybucje kosztują zazwyczaj
od kilku do kilkunastu dolarów. Jedna dystrybucja zajmuje od jednego do
kilku CD-ROMów. Te wersje dystrybucji są umieszczane na serwerach ftp, skąd
można je sobie pobrać (za darmo). Oprócz dystrybucji są też archiwa, czyli
zbiory najróżniejszego oprogramowania, które autorzy postanowili udostępnić
wszystkim, wierząc, że będzie komuś przydatne, lub że uczyni świat lepszym.
Co zazwyczaj jest zgodne z prawdą. Jeżeli jesteś posiadaczką/posiadaczem karty
kredytowej to warto zajrzeć na
http://www.cheapbytes.com i
http://www.lsl.com,
gdzie można zamówić płytkę z Linuxem i kilka płytek z archiwami, za kilkanaście
dolarów, przy czym cena ta zawiera opłatę za przesyłkę do Polski!
W Polsce (częsciowo za sprawą pisma LinuxPlus) najpopularniejsze
są dystrybucje RedHat (w wersji bez komercyjnego oprogramowania),
Slackware i
Debian. Wszystkie wyposażone są w przyjazne użytkownikowi programy
instalacyjne. RedHat i
Debian zawierają
oprogramowanie w tzw. pakietach (ang.
package). Każdy pakiet zawiera program lub grupę ściśle powiązanych programów.
Między pakietami istnieją pewne zależności (ang. dependencies), polegające
na tym, że do działania programów z jednego pakietu, potrzebne są programy
z innych pakietów. Przykładowo: do działania graficznej przeglądarki
internetowej potrzebny jest system XWindows. Zależności uwzględniają również
wersje oprogramowania, np. do działania programu A w wersji x potrzebne są
biblioteki Y w wersji b. Dzięki mechanizmowi pakietów, łatwo jest instalować
system na nowym komputerze (można automatycznie wykorzystać spis pakietów)
lub automatycznie instalować nowe wersje (ang. upgrade).
Slackware pozbawiony
jest mechanizmu pakietów, przez co może być dla początkujących osób nieco
trudniejszy w instalacji i utrzymaniu, ale za to (tak twierdzą jego
zwolennicy) umożliwia
lepszą kontrolę nad zainstalowanymi programami/bibliotekami. Ja korzystam z
RedHata, gdyż bardziej sobię cenię wygodę
nad kilka niepotrzebnych plików,
a poza tym łatwiej można kupić jego najnowszą wersję z jakimś pismem.
Numeracja wersji jądra
Początkowa wersja jądra Linuxa miała numer 0.02. W tym czasie był to
raczej eksperyment, który równie dobrze mógł znudzić się jego twórcom i
zostać zarzucony. Tak się jednak nie stało. Po dwóch latach pracy Linusa
i jego pomocników powstała wersja 0.99 nastęnie 1.0 i tak aż do 1.2.13.
W tym momencie projekt związany z Linuxem już nie mógł upaść. Osiągnął już
dużą bezwładność i związanych z nim było od tej pory wiele osób, które miały
wystarczają wiedzę i umiejętności, by zastąpić tych, którzy chcieliby
zrezygnować, w tym nawet samego Linusa. Na tej wersji
oparte były dystrybucje dosyć długo. Następna wersja jądra, miała
już numer 2, gdyż była przełomowa w rozwoju tego systemu.
Numeracja jądra Linuxa jest nieprzypadkowa. Numer składa się z trzech
częci: x.y.z. gdzie:
Wieloplatformowość i SMP
Linux, a wraz z nim prawie całe dostępne na niego oprogramowanie, jest dostępne
i rozwijane na wielu platformach sprzętowych. Procesory na których obecnie
można uruchomić Linuxa to:
SMP to skrót od Symmetric MultiProcessing. Uogólniając, jest to protokół symetrycznej współpracy wielu procesorów w ramach jednego komputera. Mimo swoich ograniczeń, umożliwia on skuteczne współdziałanie wielu procesorów, co przy niewielkiej ich liczbie daje użytkownikowi zwielokrotnienie szybkości działania systemu za ceną dołożenia jednego procesora (wcześniej trzeba mieć specjalną płytę główną). Linux potrafi wykorzystać SMP i wiele procesorów, uruchamiając na nich niezależne zadania. Obecnie wsparcie dla SMP jest na platformach Intel i SPARC.
Wymagania sprzętowe (PC)
Jeżeli chodzi o PC-ta, to wymagania sprzętowe są niewielkie. Wystarczy
procesor 386, 4 MB pamięci, dowolna karta graficzna i stacja dysków.
Jeżeli chcemy skorzystać z jakiegoś oprogramowania, to potrzebujemy twardy dysk,
na którym utworzymy partycję na Linuxa (najlepiej kilkadziesiąt MB) oraz
partycję wymiany (SWAP). Oczywiście Linux potrafi wykorzystać partycje DOSowe
i instaluje się w podkatalogu, ale wtedy nie możemy korzystać z doskonałego
systemu plików EXT2, więc nie jest to zalecane. Jeżeli pragniemy uruchamiać
wiele programów jednocześnie, to warto mieć 8 MB pamięci, a jeżeli chcemy
korzystać z graficznego środowiska XWindows, to optymalne jest 16 MB pamięci.
Konieczna jest wtedy karta graficzna kompatybilna z VGA. Jeżeli masz kartę
SVGA to Linux zapewne potrafi ją wykorzystać, chyba że jest szczególnie
egzotyczna (ale wtedy może działać jako VGA), lub szczególnie nowa, a wtedy
być może będziesz musiał trochę zaczekać, aż programiści z XFree napiszą
sterownik do twojej karty. Producenci sprzętu coraz częściej dostarczają
sterowniki do Linuxa lub udostępniają dokumentację, dzięki czemu szybko
można stworzyć obsługę danego sprzętu w Linuxie. Niektórzy jednak nie chcą
tego robić, a wtedy z użyciem ich sprzętu mogą być problemy, zwłaszcza jeżeli
jest on niekompatybilny z innymi rozwiązaniami. Lecz jest to bardzo rzadkie.
Jeżeli chodzi o efektywność, to z mojego doświadczenia wynika, że na
486DX4/100 z 28 MB RAM, Linux + XFree86 dają nieco lepszy komfort pracy niż
Windows NT Workstation na Pentium 150 z 32 MB RAM. Oczywiście odczucia innych
osób mogą się znacznie różnić.
Moduły
W rozwoju wielu systemów operacyjnych daje się zauważyć trend ku zmniejszaniu
jądra systemu, poprzez usuwanie z niego rzeczy, które nie są tam niezbędne.
W przypadku Linuxa proces ten ma odzwierciedlenie w mechanizmie modułów. To,
co można zmodularyzować, to przykładowo sterowniki sprzętu, interfejsy do
innych systemów plików, uruchamiacze programów w innych formatach. Umieszczenie
części kodu w module powoduje, że kod ten będzie ładowany w razie potrzeby i
po pewnym czasie nie używania - usuwany z pamięci. Ponieważ pamięć zaalokowana
przez jądro nie podlega stronicowaniu, jest to jedyny sposób na zwolnienie
pamięci. Z używania modułów płyną też inne korzyści:
Współpraca z innymi systemami
Linux potrafi współpracować z wieloma systemami na wiele sposobów.
Sieciowo, m.in.:
Co będzie w przyszłych wersjach?
Na następną wersję Linuxa planuje się wprowadzenie obsługi m.in.:
Inne, podobne Linuxowi systemy
Linux chociaż najpupolarniejszy, nie jest jedynym darmowym systemem
operacyjnymi. Inne projekty tego typu to GNU HURD, OpenBSD, NetBSD,
FreeBSD, i
zapewne inne.
FreeBSD jest systemem starszym od
Linuxa o kilka lat, obecnie
dorównuje mu rozwojem, a dodatkowo potrafi uruchamiać oprogramowanie
skompilowane na Linuxa. Nie obsługuje tak szerokiej gamy sprzętu co Linux.
Rdzeń projektu FreeBSD to "The FreeBSD
Core Team", składający się z
kilku osób oraz "The FreeBSD Development Team", będący nieco szerszą grupą
ludzi rozwijających system i tylko te osoby mają możliwość wprowadzania
poprawek do systemu. Pozostali hobbyści mogą jedynie zgłosić błąd/poprawkę na
specjalnym formularzu. Zapewne ma to na celu utrzymanie projektu spójnym,
ale jak widać na przykładzie Linuxa, szeroki dostęp do źródeł i możliwości
poprawiania na "własną rękę" nie szkodzą rozwojowi, a wręcz przeciwnie.
HURD jest innym bardzo ciekawym projektem organizacji o znanej nazwie:
GNU. Projekt HURD również powstał w czasach, gdy o Linuxie jeszcze nikt nie
słyszał. Jego celem było dostarczenie całkowicie darmowego systemu
operacyjnego zbliżonego do UNIXa, jednak bardziej nowoczesnego jeżeli chodzi
o budowę wewnętrzną. Założeniem było oparcie go na architekturze mikrojądra,
z maksymalnymi możliwościami doładowywania/usuwania funkcji, sterowników itp.
Jest to naprawdę ciekawy projekt, warto zajrzeć na stronę
GNU Hurd. Niestety
nie rozwija się on tak szybko jak Linux, ostatnia wersja 0.2 (a więc wciąż
uznawana przez autorów za wersję beta, niestabilną) pochodzi z połowy 1997.
Co ciekawe, autorzy twierdzą, że gdyby mieli się zająć tym projektem już w
momencie kiedy Linux istnieje, to nie robiliby tego, stworzyliby jakieś
inne, potrzebne oprogramowanie. Projektem tym zajmują się dlatego, że chcą
go poprowadzić do końca. Być może zmienili zdanie.
Czy ktoś tego w ogóle używa? (TAK!)
TAK, TAK, TAK. Oprócz ponad 10 milionów osób (liczba ta ostatnio szybko
wzrasta), Linux używany jest przez wiele firm i instytucji na całym świecie.
Przytaczanie tutaj ich nazw jest bezcelowe, dość będzie powiedzieć, że
w Polsce z Linuxa korzystają np. Sejm RP, OBOP (do zbierania i przetwarzania
danych) jak i wiele pracowni komputerowych, takich jak na przykład
ta, zdanych na łaskę i niełaskę
studentów oraz ich dziwacznych niekiedy programów.
Ciekawe zasoby linuxowe
Kilka moich prywatnych odnośników związanych z Linuxem: