Linux/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ń.
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.