Linux/Model warstwowy

Model warstwowy

Tworzenie systemu polega na podzieleniu go na moduły, które są połączone w warstwy. Każda warstwa spełnia funkcje, które zależą tylko od warstwy znajdującej się pod spodem. Podział na moduły zmniejsza stopień wzajemnych zależności między różnymi składowymi systemu, pozwala uniknąć niepożądanych powiązań.



W modelu warstwowym system podzielony jest na 4 warstwy: sprzęt, jadro, biblioteki + powłoka + programy, użytkownicy.


JĄDRO

- zawiera m.in. program szeregujący oraz sterowniki urządzeń

- zarządza pamięcią operacyjną

- w nowszych systemach sterowniki rzadziej występujących urządzeń dostępne są w postaci zewnętrznych modułów (tzw. modułów ładowalnych), które można wybiórczo załadować do jadra dzięki temu jego rozmiary są mniejsze

- jadro ma bezpośredni dostęp do wszystkich zasobów komputera


BIBLIOTEKI

- zawierają zestawy podprogramów (zwykle napisanych w języku C), wykonujących różne, często stosowane, operacje (mogą to być np. zestawy funkcji matematycznych, procedury, umożliwiające obsługę monitora czy też operacje na dysku)

- biblioteki współdzielone umożliwiają wielu programom korzystanie ze znajdujących się w nich procedur, co wydatnie oszczędza pamięć

- inną zaletą bibliotek współdzielonych jest możliwość wymiany starszej wersji biblioteki na nowsza, bez konieczności rekonsolidacji korzystających z niej programów (których może być bardzo dużo)


POWŁOKA

- nazwa pochodzi stąd, że warstwa ta oddziela wewnętrzna część systemu operacyjnego od użytkownika

- powłoka zawiera interpreter poleceń, który umożliwia komunikację z użytkownikiem (jest to odpowiednik programu command.com z DOS'a)

- interpreter poleceń uruchamia polecenia systemu operacyjnego oraz programy użytkowe


PROGRAMY

- procesy uruchamiane przez użytkownika

- zarządzane przez jadro

- mogą być przerwane w dowolnym momencie, np. komendą kill

- każdy ma przydzielony odpowiedni obszar pamięci i priorytet, jeśli proces użytkownika próbuje dostać się do cudzego obszaru pamięci, zostaje przerwany, a system wyświetla komunikat: segmentation fault.