Linux - wprowadzenie/Historia

UNIX edytuj

By w pełni zrozumieć popularność Linuksa, musimy cofnąć się w czasie, jakieś 30 lat wstecz...

Wyobraźmy sobie wiec komputery wielkie, jak domy a nawet stadiony. Już same rozmiary tych maszyn stanowiły problem, lecz sprawę dodatkowo pogarszał fakt, że każdy z ówczesnych komputerów działał pod kontrolą zupełnie odmiennego systemu operacyjnego. Oprogramowanie zawsze było pisane dla konkretnych potrzeb, a programy napisane dla jednego systemu operacyjnego nie działały na pozostałych. Również umiejętność pracy z jednym systemem operacyjnym nie oznaczała, że dany użytkownik automatycznie umiał się posługiwać innymi komputerami. Było to uciązliwe zarówno dla użytkowników, jak i administratorów systemów komputerowych.

W owych czasach komputery były niebagatelnie drogie, a nawet po ich zakupie posiadacze musieli ponosić dodatkowe poświęcenia, by użytkownicy byli w stanie zrozumieć ich funkcjonowanie. Całkowity koszt jednostki mocy obliczeniowej komputera był przez to niesamowicie wysoki.

Ówczesne zaawansowanie technologii sprawiło, że z niebotycznymi rozmiarami komputerów ludzkość musiała się pogodzić jeszcze przez dekadę. Jednak w roku 1969 grupa programistów zatrudnionych w laboratoriach Bell rozpoczęła prace nad rozwiązaniem niedogodności technicznych. Opracowali system operacyjny o następujących cechach:

  1. Prostota i elegancja
  2. Stworzenie całości w języku programowania C
  3. Możliwość przetwarzania kodu źródłowego przez system

Deweloperzy nazwali swój projekt UNIX.

Przetwarzanie kodu było cechą szczególnie w owych czasach ciekawą. Do tej pory wszystkie systemy operacyjne były pisane w kodzie właściwym dla zastosowanego sprzętu. UNIX wymagał jednak od programistów napisania tylko drobnej części kodu systemowego w określonym języku maszynowym - zwyczajowo tę porcję kodu nazywa sie jądrem. Jądro musi być przystosowane do współpracy z konkretnym systemem komputerowym i stanowi bazę, na której opiera się reszta - funkcjonalność systemu operacyjnego i dodatkowego oprogramowania budowane są naokoło jądra, a ich kod pisany w stosownym wyższym języku programowania - C, opracowanym specjalnie na potrzeby Uniksa. Wykorzystując te właściwości, łatwo było stworzyć jednolity system operacyjne działający na wielu platformach sprzętowych.

Na pojawienie się Uniksa bardzo szybko zareagowali sprzedawcy oprogramowania - mogli oni bowiem bez większych nakładów sprzedać dziesięć razy więcej kopii swoich produktów. W świecie użytkowników komputerów zaczęły mieć miejsce dziwaczne sytuacje - wyobraźcie sobie na przykład komputery pochodzące od różnych dostawców komunikujące się ze sobą w obrębie jednej sieci, lub użytkowników danego systemu komputerowego nie potrzebujących dodatkowych szkoleń przed rozpoczęciem pracy z innym komputerem. Sukcesem Uniksa było zwiększenie kompatybilności użytkowników w stosunku do różnych komputerów.

Przez następne lata rozwój Uniksa był kontynuowany. Pod kontrolą systemu dawało się robić coraz to nowe rzeczy, a liczba dostawców sprzętu i oprogramowania wspierających rozwiązania uniksowe rosła.

Początkowo system operacyjny UNIX stosowany był wyłącznie w dużych środowiskach komputerowych, wyposażonych w maszyny typu mainframe i minikomputery (zauważmy tuaj, że pecety są uważane za mikrokomputery. By pracować pod kontrolą tego systemu należało być zatrudnionym na uniwersytecie, pracować dla rządu, czy dużej instytucji finansowej.

W świecie komputerów popularność zaczęły jednak zdobywać mniejsze rozwiązania, a pod koniec lat 80. XX wieku spora część populacji posiadała komputery osobiste. Do tego czasu zdążono już opracować sporo wersji Uniksa dla architektury PC, lecz żadna z nich nie była naprawdę darmowa a co ważniejsze wszystkie z nich działały potwornie wolno, co powodowało, ze ludzie chętniej korzystali z DOSu i Windows 3.1.

Linus i Linux edytuj

Do wczesnych lat 90. XX wieku komputery PC kupowane na potrzeby domowe były wystarczająco wydajne, by sprostać wyzwaniom stawianym przez pełny system operacyjny UNIX. W tym czasie Linus Torvalds, student informatyki na Uniwersytecie Helsińskim stwierdził, że pożądane byłoby stworzenie wolnodostępnej wersji Uniksa dla potrzeb akademickich, po czym ochoczo zabrał się do kodowania.

Zaczął zadawać pytania - szukając rozwiązań i odpowiedzi, które pozwoliłyby mu na opracowanie wersji Uniksa dla swojego komputera. Poniżej znajduje się kopia jednej z jego pierwszych wiadomosći skierowanych na grupę dyskusyjną comp.os.minix, z roku 1991.

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Gcc-1.40 and a posix-question
Message-ID: <1991Jul3.100050.9886@klaava.Helsinki.FI>
Date: 3 Jul 91 10:00:50 GMT
Hello netlanders,
Due to a project I'm working on (in minix), I'm interested in the posix
standard definition. Could somebody please point me to a (preferably)
machine-readable format of the latest posix rules? Ftp-sites would be
nice.

Polskie tłumaczenie:

Witajcie bywalcy sieci.
Z uwagi na projekt, w którym się aktualnie zajmuję (w ramach systemu minix)
interesują mnie standardowe definicje POSIX. Czy ktokolwiek mógłby mi wskazać
dokument, najlepiej w formacie binarnym, zawierający najnowsze zasady POSIX?
Mile widziane zasoby FTP.

Od samego początku celem Linusa było opracowanie ogólnodostępnego systemu operacyjnego całkowicie zgodnego z oryginalnymi założeniami Uniksa. Z tego też powodu pytał o standardy POSIX, które nadal definiują systemy uniksowe.

W owych czasach nie opracowano jeszcze zasad plug-and-play, ale chęć posiadania własnego systemu operacyjnego u sporej liczby ludzi była tak wielka, że nie stanowiło to przeszkody. Sterowniki dla nowych urządzeń pojawiały się natychmiast - po wprowadzeniu do obiegu nowego urządzenia ktoś je kupował i poddawał testowi Linuksa - tak bowiem zaczęto nazywać opracowany przez Linusa Torvaldsa system. Rezultatem było pojawianie się w obiegu coraz większych ilości dostępnego dla wszystkich kodu, obejmującego coraz większy zakres urządzeń. Koderzy piszący sterowniki nie zatrzymywali się na sprzęcie przeznaczonym dla ich komputerów osobistych - każdy kawałek elektroniki leżący w zasięgu ich rąk wydawał się dla Linuksa odpowiedni.

W owych czasach tak intensywnie pracujący informatycy otrzymywali miana nerd i freak - kujon, maniak - ale wydawało się to im nie przeszkadzać, dopóki byli w stanie wydłużać listę obsługiwanego przez Linuksa sprzętu. Dzięki nim, Linux nie tylko jest systemem działającym idealnie na nowych komputerach, ale również można stosować go w przypadku posiadania starszego lub nietypowego sprzętu, który bez wysiłków tych programistów byłby bezużyteczny.

Aktualne oprogramowanie Linuksa edytuj

Obecnie Linuks wchodzi na rynek biurowy. Deweloperzy Linuksa, na początku, skupili się na zagadnieniach związanych z siecią oraz bezpieczeństwem, a aplikacje biurowe są ostatnią barierą do pokonania. Nie lubimy przyznawać, że to Microsoft rządzi tą branżą, więc w ostatnich latach rozpoczęto pracę nad kilkoma projektami, które sprawią, że Linuks stanie się akceptowalną alternatywą jako stacja robocza, dostarczając łatwy interfejs użytkownika i kompatybilne, z programami Microsoftu, aplikacje typu procesor tekstu, arkusz kalkulacyjny czy prezentacje.

Po stronie serwerowej Linuks jest postrzegany jako platforma stabilna i niezawodna, dostarczająca bazę danych i rozwiązania marketingowe dla takich przedsiębiorstw, jak znana księgarnia on-line: Amazon, Poczta Stanów Zjednoczonych, niemiecka armia i wiele, wiele innych. W szczególności dostawcy internetu oraz usług internetowych umiłowali sobie Linuksa jako firewall, serwer proxy lub www. Klastry zarządzane przez Linuksa brały udział w tworzeniu takich filmów, jak „Titanic” czy „Shrek”. W urzędach pocztowych są centrum dowodzenia nadzorującym wysyłanie poczty, a w większych silnikach wyszukiwania klastry odpowiedzialne są za przeszukiwanie internetu. To tylko niektóre z tysięcy ciężkich prac jakie Linuks wykonuje na co dzień w wielu zakątkach świata.

Warto także wspomnieć, że współcześnie Linuksy pracuję nie tylko na stacjach roboczych, małych czy dużych serwerach, lecz także na takich “gadżetach” jak palmptopy, komórki, systemy wbudowane czy eksperymentalne zegarki. To sprawia, że Linuks jest jedynym systemem na świecie obsługującym tak olbrzymią liczbę sprzętów.