Wolna encyklopedia
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 potocznie[potrzebne ź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 bootloader, czasem z kolei chodzi o całą rodzinę systemów operacyjnych (np. Microsoft Windows).
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,
- 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.
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.
Budowa systemu operacyjnego
Przyjęto podział na trzy główne elementy budowy systemu operacyjnego:
- jądro systemu wykonujące ww. zadania,
- powłoka – specjalny program komunikujący użytkownika z systemem operacyjnym,
- system plików – sposób zapisu struktury danych na nośniku.
Typy i przykłady systemów operacyjnych
Amiga
systemy firmy Apple
nieukończone projekty:
systemy firmy Be i pochodne
systemy firmy Digital (DEC)/Compaq
systemy firmy IBM
systemy firmy Microsoft i pochodne
- MS-DOS
- Microsoft Windows: 1.0, 2.0, 3.x, 95/98/98 SE/Me, CE, NT/2000/XP/XP SP2/2003/FLP/Vista
- Singularity
systemy firmy Novell
Zobacz też: SuSE Linux
NeXT
systemy firmy Unisys
UNIX i jego pochodne
- AIX
- BSD, FreeBSD, NetBSD, OpenBSD, DragonFly BSD, DesktopBSD, PC-BSD
- Digital UNIX
- HP-UX
- IRIX
- Mac OS X
- Minix
- OSF/1
- SCO UNIX
- Sun Solaris (dawniej SunOS)
- System V
- QNX
- Ultrix
- Venix
- Xenix
- GNU/Linux (system GNU z jądrem Linux)
- GNU/Hurd (system GNU z jądrem Hurd),
- Linux
systemy czasu rzeczywistego (realtime systems)
Inne
- Agnix
- Amoeba
- AtariDOS
- Commodore DOS (zapisany w stacji dysków)
- AtheOS/Syllable
- Athene
- CP/J
- CP/M
- CROOK
- eComStation
- Egzekutor RTX
- EMOS
- EPOC32
- GEORGE 3
- GEOS
- Inferno
- IOS
- iRMX
- ISIS-II
- Kylin
- MenuetOS
- Mikros
- Multics
- Palm OS
- Quarn OS
- SkyOS
- Symbian
- UDOS
- Unununium
- System V7
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.
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. 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.
Zobacz też
- Historia systemu operacyjnego Unix
- testbed
- systemy operacyjne opisane na Wikipedii
- Kubuntu
- Ubuntu
- Gentoo
- Debian
- openSUSE
- Arch Linux
- Fedora Core
- Mandriva
- Slackware
- PLD