System operacyjny (
ang. skrót
OS operating system) - jest to zbiór programów pośredniczących pomiędzy aplikacjami użytkownika a sprzętem.
Określenie to nie jest technicznie ścisłe. Czasem potocznie mówi się
system operacyjny mając na myśli całość oprogramowania dostarczanego z zakupionym komputerem (
Zadania systemu operacyjnego
- zarządzanie zasobami komputera, m.in.: procesorem (a dokładniej czasem procesora), pamięcią, urządzeniami peryferyjnymi oraz przydzielanie zasobów procesom,
- koordynacja pracy ww. urządzeń poprzez obsługę przerwań oraz odpowiednie na nie reagowanie,
- ochrona danych i pamięci - tak aby jeden proces, w wyniku błędu lub zamierzonego działania nie mógł zniszczyć lub pozyskać danych innego procesu,
- automatyzacja najczęściej wykonywanych funkcji
- ukrywanie skomplikowania sprzętu komputerowego przez tworzenie abstrakcji, np.
- zbiory zapisanych klastrów na dysku widziane są jako pliki o symbolicznych nazwach
- abstrakcja równoległości wykonywania programów
- jednolity sposób dostępu do urządzeń
System operacyjny jest ładowany do pamięci na początku pracy komputera. Program ten ma bardzo specyficzny charakter: w przeciwieństwie do programów użytkowych (
aplikacji) nie korzysta z żadnych gotowych funkcji, tylko sam je udostępnia, a więc od niego zależą rzeczywiste możliwości wykorzystania sprzętu komputerowego.
Budowa systemu operacyjnego
Przyjęto podział na trzy główne elementy budowy systemu operacyjnego:
systemy firmy Apple
systemy firmy Be i pochodne
systemy firmy Digital (DEC)/Compaq
- AIS
- OS-8
- RSTS/E
- RSX
- RT-11
- TOPS: TOPS-10, TOPS-20
- VMS (później przemianowany na OpenVMS)
systemy firmy IBM
systemy firmy Microsoft i pochodne
systemy firmy Novell
NeXT
UNIX i jego pochodne
systemy czasu rzeczywistego (realtime systems)
Inne
Wirtualne systemy operacyjne
Są to systemy, najczęściej zawarte jeden w drugim (mogące też istnieć osobno), czego przykładem może być
Argante,
Inferno, lub w bliżej nieokreślonym porównaniu maszyny wirtualne
Java, a także
User Mode Linux, czyli
Linux tak spreparowany, aby mógł działać jako system wirtualny w postaci procesu działającego pod kontrolą drugiego Linuksa.