System operacyjny
Z Wikipedii
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).
[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,
- 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:
- 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.
[edytuj] Typy i przykłady systemów operacyjnych
[edytuj] Amiga
[edytuj] systemy firmy Apple
nieukończone projekty:
[edytuj] systemy firmy Be i pochodne
- BeOS
- BeIA
- NewOS/Haiku
- yellowTAB Zeta
[edytuj] systemy firmy Digital (DEC)/Compaq
[edytuj] systemy firmy IBM
[edytuj] 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
[edytuj] systemy firmy Novell
- NetWare
- Novell DOS
Zobacz też: SuSE Linux
[edytuj] NeXT
[edytuj] systemy firmy Unisys
- MCP(Master Control Program)
- OS 2200.
[edytuj] 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
[edytuj] systemy czasu rzeczywistego (realtime systems)
[edytuj] 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
[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. 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ż
- Historia systemu operacyjnego Unix
- testbed
- systemy operacyjne opisane na Wikipedii
- Kubuntu
- Ubuntu
- Gentoo
- Debian
- openSUSE
- Arch Linux
- Fedora Core
- Mandriva
- Slackware
- PLD