Przykład graficznego interfejsu systemu operacyjnego wraz z uruchomionym oprogramowaniem
Przykład graficznego interfejsu systemu operacyjnego wraz z uruchomionym oprogramowaniem

System operacyjny (ang. skrót OS Operating System) – oprogramowanie, które zarządza sprzętem oraz aplikacjami komputera. Podstawą wszystkich systemów operacyjnych jest wykonywanie podstawowych zadań takich jak: kontrolowanie i przypisywanie pamięci, przydział czasu procesora, obsługa urządzeń, ustalanie połączeń sieciowych oraz zarządzanie plikami. Wiele systemów operacyjnych posiada środowiska graficzne ułatwiające ich obsługę.

OkreÅ›lenie to jednak nie jest w peÅ‚ni Å›cisÅ‚e. Czasem potoczniepotrzebne ÅºródÅ‚o mówi siÄ™ tak majÄ…c na myÅ›li caÅ‚ość oprogramowania dostarczanego z zakupionym komputerem (zobacz: dystrybucja), czasem samo jÄ…dro systemu operacyjnego, czasem program rozruchowy, czasem z kolei chodzi o całą rodzinÄ™ systemów operacyjnych (np. Microsoft Windows).

Spis treści

edytuj Zasoby sprzętowe

Zasoby sprzętowe zarządzane przez system operacyjny:

  • Procesor – przydziaÅ‚ czasu procesora,
  • Pamięć
    • alokacja przestrzeni adresowej dla procesów,
    • transformacja adresów,
  • UrzÄ…dzenia zewnÄ™trzne
    • udostÄ™pnianie i sterowanie urzÄ…dzeniami pamiÄ™ci masowej np. dysk twardy. mysz
    • alokacja przestrzeni dyskowej,
    • udostÄ™pnianie i sterowanie drukarkami, skanerami, aparatami itp.
  • Informacja (system plików)
    • organizacja i udostÄ™pnianie informacji,
    • ochrona i autoryzacja dostÄ™pu do informacji.

edytuj ZarzÄ…dzanie zasobami

Zarządzanie zasobami w systemie wielozadaniowym polega na takim ich rozdzieleniu pomiędzy użytkowników, aby każdy z nich miał wrażenie, że pracuje na własnym komputerze.

Główne zadania systemu operacyjnego podczas zarządzania zasobami systemu komputerowego:

  • tworzenie deskryptora zasobu,
  • usuwanie deskryptora zasobu,
  • realizacja żądania przydziaÅ‚u,
  • zwolnienie i odzyskiwanie zasobu.

ZarzÄ…dzanie zasobami systemu komputerowego:

  • przydziaÅ‚ zasobów,
  • synchronizacja dostÄ™pu do zasobów,
  • ochrona i autoryzacja dostÄ™pu do zasobów,
  • odzyskiwanie zasobów,
  • rozliczanie – gromadzenie danych o wykorzystaniu zasobów.

Zarządzanie procesem – proces to program w stanie uruchomiony, każdy proces wymaga przydziału pewnych zasobów, włączając w to czas procesora, pamięć, pliki oraz urządzenia wejścia/wyjścia, aby w pełni wykonać swoje zadanie. System operacyjny jest odpowiedzialny w fazie zarządzania procesami za:

  • tworzenie i usuwanie procesu,
  • wstrzymywanie i przywracanie procesu,
  • zapewnienie mechanizmów pozwalajÄ…cych na synchronizacjÄ™ procesów oraz komunikacjÄ™ miÄ™dzy procesami.

Zarządzanie pamięcią operacyjną – pamięć to duża tablica słów lub bajtów, każda z własnym adresem, pamięć jest szybko dostępna i dzielona jest pomiędzy procesor oraz urządzenia wejścia/wyjścia. Pamięć główna jest ulotnym miejscem przechowywania danych, traci swoją zawartość w czasie awarii systemu. System operacyjny jest odpowiedzialny w fazie zarządzania pamięcią za:

  • utrzymywanie informacji która część pamiÄ™ci jest aktualnie używana i przez kogo,
  • decydowania który proces powinien zostać wczytany do pamiÄ™ci jeżeli pamięć jest wolna,
  • przydzielanie i zwalnianie pamiÄ™ci.

Zarządzanie plikami – plik jest zbiorem informacji zdefiniowanym przez twórcę pliku. Zazwyczaj, pliki reprezentują programy (źródła programów lub pliki wykonywalne) oraz dane. System operacyjny jest odpowiedzialny w fazie zarządzania plikami za:

  • tworzenie i kasowanie plików,
  • tworzenie i kasowanie katalogów,
  • wsparcie dla użytkowników koÅ„cowych przy operacjach na plikach,
  • mapowanie plików na noÅ›niku danych,
  • tworzenie kopii plików.

Zarządzanie wejściem/wyjściem – system wejścia/wyjścia składa się z: systemu buforowania, interfejsu urządzeń głównych, sterowników (kontrolerów) dla specyficznych urządzeń.

Zarządzenie nośnikami danych – pamięć główna jest ulotna i często za mała aby obsłużyć wszystkie programy i dane, dlatego stosuje się nośniki danych (najczęściej dysk twardy) do powiększania tej pamięci tak zwanej pamięć drugiego rzędu, na napędach tych mapuje się pamięć główną. System operacyjny jest odpowiedzialny w fazie zarządzania nośnikami danych za:

  • zarzÄ…dzanie wolnÄ… pamiÄ™ciÄ…,
  • alokacjÄ… zapisu,
  • planowaniem dysku.

edytuj Budowa systemu operacyjnego

Przyjęto podział na trzy główne elementy budowy systemu operacyjnego:

edytuj Systemy operacyjne

edytuj Amiga

edytuj Apple

nieukończone projekty:

edytuj Atari

edytuj Be i pochodne

edytuj DEC/Compaq

edytuj IBM

edytuj ICL

edytuj Microsoft i pochodne

edytuj Novell

Zobacz też: SuSE Linux

edytuj NeXT

edytuj Unisys

edytuj UNIX i jego pochodne

edytuj systemy czasu rzeczywistego (realtime systems)

edytuj Pozostałe

edytuj Systemy operacyjne pracujÄ…ce na maszynie wirtualnej

Możliwe jest uruchomienie systemu operacyjnego na maszynie wirtualnej. Przykłady to: Argante, Inferno a także User Mode Linux, czyli Linux skonfigurowany w ten sposób, by mógł działać jako system wirtualny w postaci procesu działającego pod kontrolą drugiego Linuksa. Systemy wirtualne dzielone są na para-wirtualne i w pełni wirtualne. Te ostatnie umożliwiają pracę niemodyfikowanego OS2 w środku innego systemu OS1 z pełną, (niemulowaną) szybkością, np. OS2 – Windows Vista wewnątrz OS1 Linuksa z np Xen. Pełna wirtualizacja OS była dostępna od dawna na superkomputerach, nowe instrukcje procesorów rozszerzają ją na komputery osobiste.

edytuj Język programowania jako system operacyjny

Funkcję systemu operacyjnego spełniać może Implementacja określonego języka programowania. Miało to miejsce szczególnie w historycznych już czasach dominacji komputerów 8-bitowych. Rolę powłoki systemu operacyjnego spełnia w tym przypadku interpreter poleceń języka. Dlatego funkcję takiego systemu może pełnić implementacja danego języka oparta na interpretacji lub mieszana (interpretacyjno-kompilacyjna).

W komputerach 8-bitowych często interpreter języka był przechowywany w pamięci ROM i stanowił podstawowy system operacyjny. Najbardziej znanym przykładem takiego języka jest BASIC stosowany szeroko w komputerach 8-bitowych - w zasadzie jedynym wyjątkiem jest rodzina 8-bitowych Atari, bo BASIC jest nie we wszystkich modelach, a DOS ma zawsze własną powłokę. Innym, historycznym już przykładem, jest język Jean, implementowany w dużych systemach komputerowych (np. serii ODRA 1300), który mógł pracować zarówno pod kontrolą innego systemu operacyjnego (np. GEORGE 3), jak również samodzielnie jako mały system operacyjny o charakterze konwersacyjnym.

Językami programowania (a właściwie pewnymi implementacjami języków programowania), które także stanowią samodzielne systemy operacyjne są również FORTH oraz Smalltalk. Język i zarazem system operacyjny FORTH szczególnie zastosowanie znajdował w systemach sterowania automatyki przemysłowej. Jest to najlepszy przykład języka w interpretacyjno-kompilacyjnego, w którym wprowadzane słowa są interpretowane i natychmiast wykonywane, natomiast definicje słów są natychmiast kompilowane. Smalltalk to pierwszy język "czysto obiektowy", który w wielu swoich implementacjach buduje własne środowisko stanowiące system operacyjny komputera.

W systemach serii MERA 300 funkcję systemu operacyjnego mógł pełnić nawet asembler o nazwie MOTIS.

edytuj Zobacz też