Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem ČR. Název SŠ:SOU Uherský Brod Autoři:Ing. Radim Bublík Název prezentace: (DUMu) Struktura OS unixového typu Tematická oblast:Operační systémy Ročník: 1. ročník oboru Mechanik opravář motorových vozidel Číslo projektu:CZ.1.07/1.5.00/ Datum vzniku:
Záměrem této sady výukových materiálů s názvem Operační systémy je poskytnout žákům potřebné informace o logické struktuře a fundamentálních principech fungování moderních operačních systémů, s nimiž (nebo jejich obdobami) se budou velmi pravděpodobně setkávat po celý svůj život. Jednotlivé DUMy (prezentace a pracovní listy) v této sadě pokrývají vybrané tematické oblasti, které jsou probírány v předmětu Informační a komunikační technologie na naší SŠ. Tato prezentace je konkrétně zaměřena na tematický celek Struktura konkrétních OS.
Většina Unixových systémů má hodně podobnou strukturu (kromě těch, které byly upraveny pro real- time provoz). Jádro běží v privilegovaném režimu (režimu jádra), je často tvořeno jediným souborem, proto je nazýváno monolitické, přestože jeho vnitřní struktura je přesně rozvržena, například u linuxu je to soubor /boot/vmlinuz [1]
Unixové systémy jsou víceprocesorové víceuživatelské multitaskové univerzální síťové systémy již od svého počátku. Na to byl brán zřetel už při navrhování jejich struktury, proto za dlouhá desetiletí existence Unixů ani nebylo třeba ji výrazně měnit. Tato struktura také zřejmě posloužila jako jeden ze vzorů při návrhu struktury Windows řady NT. [1]
[1]
Jádro systému běží v privilegovaném režimu (kernel mode, vše ostatní běží v user mode) a skládá se ze dvou oddělených částí: HAL (Hardware Abstraction Layer) je část jádra, závislá na HW, jsou zde především ovladače zařízení Kernel je jádro nezávislé na HW, běží zde také démoni (daemons) - systémové procesy obdobné službám ve Windows řady NT. Běží na pozadí často bez ohledu na běh uživatelských procesů či přihlašování a odhlašování uživatelů.
Knihovny v Unixu mají obdobnou roli jako DLL ve Windows, tedy obsahují objekty a různé rutiny. Mnohé z nich jsou součástí grafického subsystému (např. X Window). [1] Shell je rozhraní pro komunikaci s uživatelem. Unixové systémy obvykle nabízejí více různých shellů. Komunikace probíhá v textové formě (uživatel zadává příkazy, OS reaguje textovými výpisy), ale současné Unixové systémy nabízí také často neobyčejně propracované GUI a běžný uživatel tak s textovým Shellem ani nemusí přijít do styku. Stejně jako ve Windows příkazy můžeme shrnovat do textových souborů – skriptů. [1]
Vrstva HAL je tvořena především ovladači periferních zařízení. Následuje vrstva, která přistupuje k zařízením na abstraktnější úrovni - jsou zde ovladače souborových systémů (FS) na paměťových médiích a ovladač TCP/IP komunikující s ovladačem síťové karty. [1]
[1]
Souborový systém je rozhraní mezi ovladačem vnějšího paměťového média a vyššími vrstvami jádra. V Unixových OS jsou FS implementovány přímo v jádru včetně podpory přidávání nových FS. Protože v Unixech platí, že “všechno je soubor”, jsou zde nejen FS pro vnější paměťová média, ale i další, abstraktní, zprostředkující přístup k informacím o momentálním stavu OS, konfiguraci apod. (např. v Linuxech s jádrem 2.4 souborový systém /proc) nebo sdružující jiné FS či představující části jiného FS (v Linuxech to může být např. /etc). [1]
VFS (Virtual File System) představuje rozhraní pro podobný způsob přístupu k různým FS. Všechny FS sdružuje v jedné “stromové” struktuře. Pokud uživatel chce s konkrétním FS pracovat, připojí ho na stanovené místo do této struktury a tím ho zpřístupní (připojování je obvykle automatizováno). Důležitou funkcí VFS je zajištění stejného způsobu zacházení s daty, ať už se nacházejí v jakémkoliv FS (tedy uživatel se nemusí starat o fyzické umístění souboru, atributy - např. nastavení času posledního přístupu k souboru, konvence pro práci se soubory -jak sdělit FS, že chci otevřít určitý soubor - apod. [1]
Rozhraní systémových volání je rozhraní mezi jádrem a čímkoliv, co může přímo ovlivnit uživatel (programy, příkazy shellu, skripty). S touto vrstvou lze komunikovat přes knihovny obsahující definice API funkcí (obdoba WinAPI, Win32 API). Hlavní úlohou je zajištění bezpečnosti, znemožnění zásahu uživatele do jádra (zde se Microsoft inspiroval při programování knihovny NTDLL.DLL, která má podobnou funkci), znamená také zjednodušení práce programátorů, kteří se nemusejí zabývat jednotlivými systémovými voláními a mohou používat API funkce. [1]
[1] VAVREČKOVÁ, Šárka. SLEZSKÁ UNIVERZITA V OPAVE. Operační systémy: Přednášky [online]. 2006, [cit ]. Dostupné z: