osdev.labedz.org

Czym wogóle będziemy się zajmować?

System operacyjny jest to najczęściej układ wielu programów lub procedur działających jako pośrednik między użytkownikiem (aplikacjami użytkownika) a sprzętem komputerowym. Do głównych zadań systemu operacyjnego należą czynności takie jak:

  • zarządzanie zasobami komputera, między innymi procesorem (a dokładnie czasem procesora), pamięcią, urządzeniami peryferyjnymi oraz przydzielanie tych zasobów procesom,
  • koordynacja pracy w/w urządzeń poprzez obsługę przerwań oraz odpowiednie na nie reagowanie,
  • ochrona danych i pamięci, w taki sposób, aby proces w wyniku błędu lub zamierzonego działania nie mógł zniszczyć lub pozyskać danych innego procesu,
  • automatyzacja najczęściej wykonywanych funkcji.

System operacyjny jest ładowany do pamięci na początku pracy komputera i pozostaje w pamięci, najczęściej do czasu wyłączenia komputera. Program jakim jest system operacyjny ma specyficzny charakter - w przeciwieństwie do programów aplikacji nie korzysta z żadnych dodatkowych (z poza systemu) procedur, ale sam je udostępnia programom użytkownika.

Struktura warstwowa komputera
Rys. Struktura warstwowa komputera

Na oprogramowanie systemowe składa się właściwy system operacyjny (jądro systemu), oraz zestaw programów pomocniczych, takich jak: kompilatory i inne narzędzia programistyczne dedykowane danemu systemowi operacyjnemu, oraz programy interpretatorów poleceń. Właśnie te ostatnie są najczęściej, przez większość użytkowników utożsamiane z właściwym systemem operacyjnym. Interpretatory poleceń są to bowiem programy, których zadaniem jest interakcja między użytkownikiem a systemem operacyjnym, czyli z racji wykonywanego zadania muszą być bezpośrednio widoczne dla użytkownika i odpowiednio reagować na jego polecenia. Dopiero komunikaty od interpretatorów poleceń są przekazywane do właściwego systemu operacyjnego, który wykonuje żądane operacje.

Budowa systemu operacyjnego
Rys. Budowa systemu operacyjnego

Typowy system operacyjny składa się z sześciu podstawowych modułów: menadżera procesów i komunikacji międzyprocesowej, menadżera pamięci, kontrolera przerwań i wyjątków, kontrolera urządzeń zewnętrznych, systemu plików oraz obsługi sieci i protokołów sieciowych. Sposób połączenia ze sobą tych elementów, decyduje o modelu jądra systemu.