System operacyjny to program zarządzający sprzętem komputerowym oraz oprogramowaniem. Linus Torvalds twórca Linuxa porównywał często system operacyjny do dyrygenta orkiestry lub konstytucji państw. Tak jak dyrygent prowadzi orkiestrą tak system operacyjny został zaprojektowany w celu wykonywania powtarzających się zadań sprzętowych związanych z zarządzaniem plikami uruchamianiem programów i otrzymywaniem komend od użytkownika.
Interakcja - komunikacja - z systemem następuje poprzez interfejs użytkownika. Pozwala mu on na otrzymywanie i interpretowanie instrukcji wysłanych przez użytkownika. Interfejs taki może być tak prosty jak wpisywanie komend w linii (w niniejszym podręczniku którego zadaniem jest poznanie systemu i nauka programowania w języku stanowiącym jego podstawę , będziemy korzystali głównie z linii poleceń).Zarządzanie plikami, programami i komunikacja z użytkownikiem są tradycyjnymi funkcjami wspólnymi dla wszystkich systemów operacyjnych.
{module Google reklama arty}
Linux podobnie jak jego starszy brat Unix, dysponuje dwoma innymi funkcjami:
- wielozadaniowością
- opcją związana z wieloma użytkownikami.
Jako system wielozadaniowy, może on wykonywać wiele zadań jednocześnie. Na przykład użytkownik może w tym samym czasie przeprowadzić edycje pliku, druku innego pliku i wyszukiwania tekstu w wielu innych plikach. Ponieważ jest to system zaprojektowany dla wielu użytkowników, kilku z nich może się do niego w tym samym czasie zalogować i każdy z nich może komunikować się za pośrednictwem własnego terminala.
Linux jest przeznaczoną dla komputerów PC wersją systemu operacyjnego UNIX używanego na olbrzymiej ilości super i mikrokomputerów oraz obsługującego tzw. stacje robocze. Aby w pełni zrozumieć i docenić Linuksa trzeba znać kontekst w jakim został zbudowany system UNIX. W przeciwieństwie do wielu innych systemów – np. DOS czy Windows – UNIX został stworzony w środowisku akademickim i naukowym.
Od samych początków ery informatyzacji a szczególnie od momentu rozpoczęcia przez USA projektu ARPA którego rezultatem było powstanie pierwszej wersji Internetu w 1969 roku, system UNIX był najczęściej używanym system operacyjnym w uniwersytetach i badawczych laboratoriach. Naukowcy pracujący nad ulepszeniami funkcjonowania komputerów i informatycy na UNIX tworzyli nowe technologie, takie jak te, które zostały zastosowane do uruchomienia Internetu. System UNIX wyróżniał się elastycznością i mógł być używany na różnym osprzętowaniu. Tak naprawdę wielu producentów dysponowało (i dysponuje nadal ) swoją własną wersją UNIXa. Na przykład UNIX firmy IBM nazywa się AIX. Ludzie związani z naukowymi badaniami nad przepływem informacji czy lingwistyką tworzą często własne wersje UNIXa.
Ta niezwykła elastyczność systemu UNIX umożliwiła powstanie Linuxa, który jest wersja UNIXa dla PC czyli komputerów domowych.
Na czym polega specyfika Linuxa?
Linux jest jednym z najbardziej elastycznych systemów operacyjnych jakie dzisiaj istnieją. System Linux nie powiela rozwiązań tradycyjnych obecnych w innych systemach operacyjnych, lecz uprościł złożoność ich funkcjonowania, szczególnie w odniesieniu do czytania i pisania plików – czyli do wejścia (input) i wyjścia (output) . Uproszczenie to polega na tym, ze w Linuksie ujednolicono posługiwanie się plikami i urządzeniami.
Polecenia Linuksa (a jest to założenie rewolucyjne) nie rozróżniają plików i urządzeń. Dane zawarte w plikach uważane są za strumień znaków – nie wyróżnia się tu rekordów i nie ma problemów z ich zmienną długością. Te (dla debiutanta w informatyce) niezrozumiałe informacje będą wyjaśniane i pogłębiane w dalszych rozdziałach. System Linux (tak jak i jego starszy brat Unix) jest zbudowany z warstw co przypomina cebulę. W samym środku systemu znajduje się jego jądro (kernel). Wszystkie programy uruchamiane, współdziałają z jądrem, aby wykonać swoje prace.
Ogólny schemat budowy systemu Linux przedstawiamy poniżej:
Jak widzimy na rysunku 1.1 jądro systemu jest umieszczone nad sprzętem i kieruje jego wszystkimi działaniami i wykonywanymi funkcjami. Pozostałe programy włączając bash shelle, komunikują się ze sprzętem za pośrednictwem jądra. Na rysunku widać jeszcze jedną bardzo ważną cechę systemu operacyjnego Linux. Ponieważ wszystkie programy są odizolowane od sprzętu za pomocą jądra, przenoszenie tych programów z jednego komputera na inny jest bardzo łatwe i nie sprawia żadnych trudności technicznych.
Pliki Linuksa są unikalne ponieważ nie są formatowane w rekordy - czyli są bezformatowe. Każdy plik jest po prostu zbiorem znaków, którego wiersze lub rekordy są ograniczone tzw. znakiem nowej linii - \n - , natomiast koniec pliku jest oznaczony znakiem końca pliku – EOF -. Każdy plik można czytać i wprowadzać znak po znaku, wszystkie narzędzia Linuksa zostały tak zbudowane aby uwzględniały tą fundamentalną cechę systemu operacyjnego.
Jakie konsekwencje ma ta zasada dla użytkownika czy programisty pracującego na systemie Linux?
Przedstawiona powyżej struktura pliku pozwala aby wyjście z jednego programu mogło być wykorzystane jako wejście do innego programu. Ta prosta budowa plików pozwoliła twórcom Linuksa (i Uniksa) opracować modularne programy wykonujące proste rudymentarne funkcje. Każda funkcja rozpatrywana pojedynczo wydaje się trywialna, ale można ja połączyć z innymi funkcjami i taki ciąg spiętych ze sobą funkcji może wykonać dosłownie dowolna czynność.
Darmowy Kurs Linux - Sesja