Typologie, funkcn skladba a architektury OS, prklady z Windows, Unix, Linux, MAC OSx PB 152 Operacn syst emy Jan Staudek http://www..muni.cz/usr/staudek/vyuka/ Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Verze : jaro 2016
Osnova dodatku predn asky Windows Unix Linux MAC OS X Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 1
Zkusenosti z v yvoje OS Windows Systematick y prehled viz http://windows.microsoft.com/cs-cz/windows/history MS-DOS 1.0, 1981 4 000 r adk u v assembleru Intel 8086 microprocessor, provozovateln y i v 8 KB pam eti textove orientovan y jazyk prkaz u pro OS, z adn e GUI monoprogramov y, monouzivatelsk y syst em Windows 3.0, 1990 16 bitov a architektura rozhran GUI, implementace { vrstva nad MS-DOS Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 2
Zkusenosti z v yvoje OS Windows Windows NT (3.1), 1993 32 bitov a architektura, mikroj adro, multitasking podpora starsch aplikac pro MS-DOS a Windows, pro OS/2 (IBM) a pro POSIX (Unix) Windows 95, pokracov an Windows 3.0, 1995 32 bitov a architektura, monolitick e j adro { poskytoval se vyss v ykon nez NT n asledn y v yvoj { Windows 98 a Windows Me a tm konc tato vetev Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 3
Zkusenosti z v yvoje OS Windows Windows 2000, v linii NT podpora distribuovan eho zpracov an dat Active Directory { distribuovan y adres ar plug-and-play a power-management Windows XP, 2001 { 2005 n ahrada verz Windows zalozen ych na MS-DOS verz zalozenou na NT n avrat ke spse monolitick e architekture Windows Vista, 2007, kosmetick e zm eny Windows Server, 2008 { vceuzivatelsk y syst em Windows 7, 2009, kosmetick e zm eny Windows 8, 2012, + cloud computing Windows 10, 2015, kosmetick e zm eny Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 4
Windows Vista Architecture Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 5
Windows Vista Architecture, komponenty v rezimu j adra Executive: Z akladn funkce j adra { API pro software v user m odu Spr ava pameti, proces u, vl aken, IO Bezpecnost V ymena zpr av mezi procesy Vl aknov a struktura Kernel spr ava procesor u pl anov an vl aken, prepn an kontextu proces u spr ava v yjimek a prerusen synchronizace multiprocesoru monolitick e resen, z adn a vl akna jako v Executive a v uzivatelsk e oblasti Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 6
Windows Vista Architecture, komponenty v rezimu j adra Hardware abstraction layer (HAL) Konverze generick e hradwarov e platformy na konkr etn e pouzitou hardwarovou platformu Prstup na syst emovou sb ernici, radic DMA, radic prrusen, casovac, radic pam eti, podpora SMP Device drivers Dynamick e knihovn podporgramy rozsirujc funkce Executive na konkr etn IO zarzen Implementace softwarov e podpory syst emu soubor u St'ov e protokoly Windowing and graphics system Implementace funkc GUI Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 7
Windows Vista Architecture, Executive modules I/O manager framework pro zprstup nov an IO zarzen, navazov an ovladac u implementace IO API, podpora bezpecnosti a pojmenov av an zarzen, st'ov ych protokol u a syst emu soubor u (se spr avcem objekt u) File system cache manager cache zvysujc v ykon IO se soubory docasn e uchov av an posledne modikovan ych dat v hlavn pameti Object manager spr avce objekt u pro Executive objekty { reprezentace proces u, vl aken, semafor u... Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 8
Windows Vista Architecture, Executive modules Plug-and-play manager Urcuje drivery /ovladace nutn e pro podporu konkr etnch zarzen a zav ad je Power manager spr ava energie pri prostojch, vypn an,... Security reference monitor prosazov an pravidel pro rzen prstupu k ob jekt u a generov an zpr av pro audit objekty { soubory, procesy, adreesov e prostory, IO zarzen,... Virtual memory manager implementace konceptu virtu aln pam eti Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 9
Windows Vista Architecture, Executive modules Process/thread manager vytv ar, ovl ad a, rus objkety proces u a vl aken Conguration manager spr avce datab aze registry uchov avajc parametry syst emov ych i uzivatelsk ych objekt u Advanced local procedure call (ALPC) facility vol an procedur mezi procesy { komunikacn n astroj mezi lok alnmi procesy, kter e implementuj sluzby a subsyst emy ekv. RPC (remote procedure call) v ditribuovan em prstred Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 10
Windows Vista Architecture, procesy v uzivatelsk em rezimu Special system processes, system support processes udrzov an relac s uzivateli (sessions) aautentizace, prihlasov an,... Service processes v ypis na syst emovou tisk arnu (spooler), z aznamen av an ud alost uzivatelsk a c ast ovladac u, ldots prostor pro rozsirov an funkcnosti OS Environment subsystems rozhran sluzeb operacnch syst em u Win32, POSIX preklad vol an sluzeb ze syst emu aplikace na ALPC vol an nebo na Native NT vol an Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 11
Windows Vista Architecture, procesy v uzivatelsk em rezimu User applications provednschopn e programy (.EXE, DLL), Executables Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 12
Windows 7 Architecture, model klient { server Windows OS services, environment subsystems (POSIX, WIN32) a aplikace jsou strukturovan e do modelu klient{server klienti komunikuj se srvery pomoc RPC asymetrick y model, server obsluhuje klienty (spr ava pameti, st'ov e sluzby,... ) Klient aplikace nebo jin y server klient poz ad a o sluzbu zasl anm zpr avy server, zpr avu Executive doruc spr avn emu serveru, server provede pozadovanou sluzbu a vr at klientovi v ysledek jinou zpr avou Prnosy zjednodusen Executive, zv ysen spolehlivosti, jednotn e rozhran na sluzby Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 13
Modulov a architektura nejleps soudob e metodologie n avrhu OS pouzvaj pro vytvoren (modul arnho) j adra OO programovac techniky komponenty j adra jsou samostatn e jednotky { moduly moduly mezi sebou komunikuj pres zn am a rozhran komunikace nen omezena na prsnou hierarchii kazd y modul je zavediteln y modul j adra, zav ad se, je-li potrebn y do j adra se prid a pro jist y hardware { driver sbernice, IO zarzen jako zavediteln e moduly se mohou doplnit podpory pro r uzn e souborov e syst emy Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 14
Tradicn syst emy typu Unix Vznik Bell Labs PDP-7, 1970,..., 1978 Verze 7 { z aklad dnesnch Unix u,..., UNIX System V Paraleln v etev { University of California at Berkeley, UNIX BSD (Berkeley Software Distribution) Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 15
Tradicn Unix, historie Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 16
Tradicn Unix, j adro Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 17
Soudob e Unixy, j adro Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 18
Linux P uvodne Unix pro IBM PC s procesorem Intel 80386 Od. r. 1991 otevren y projekt, jsou dostupn e zdrojov e programy pod z astitou Free Software Foundation (FSF). V soucasnosti plnohodnotn a varianta Unixu Dostupn a na vce platform ach Intel Pentium, Itanium, Motorola, IBM PowerPC,... Vysoce modul arn koncepce, snadn a kongurovatelnost Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 19
Linux, modul arn monolitick e j adro Nen aplikov an koncept mikroj adra J adro virtu aln e obsahuje veskerou funkcnost OS v jednom velk em bloku programu, bez jako jeden proces s jednm adresov ym prostorem Vsechny funkcn komponenty maj prstup ke vsem vnitrnm datov ym struktur am a program um Moduly j adra lze zav adet automaticky a na z adost odstra novat, jsou relativn e nez avisl ymi bloky moduly j adra { zavediteln e moduly (Loadable Modules) modul je objekt (soubor), jehoz k od lze pri behu dynamicky navazovat a odstra novat do / z j adra moduly jsou usporadateln e hierarchicky (Stackable Modules) Modul j adra je resen y na z aklade pokynu bezcho procesu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 20
Ilustrace seznamu zaveden ych modul u j adra Linuxu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 21
Komponenty j adra Linuxu (implementace na arch. IA-64 Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 22
Linuxovsk e sign aly Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 23
Modulov a architektura MAC OS X (Darwin) hybridn struktura vrstvov a struktura spodn vrstva { mikroj adro Mach horn vrstvy { aplikacn prostred a obecn e sluzby grack eho rozhran pro aplikace J adro mikroj adro Mach { vol an vzd alen ych procedur (RPC, Remote Procedure Call), meziprocesov a komunikace (IPC, InterProcess Communication), spr ava pam eti, v ym ena zpr av, dispecer j adro BSD { rozhran na unixovsk e (BSD) prkazy, podpora st'ov an (sockets), syst em soubor u, API denovan a v POSIX vc. vl aken Pthreads rozsren j adra { IO kit pro v yvoj driver u a dynamicky zav aden ych modul u Aplikace a obecn e sluzby si zprstup nuj vlastnosti BSD a Mach prmo Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 24
Modulov a architektura MAC OS X (Darwin) Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 25
Vol an sluzeb syst emu, System Calls prklady API sluzeb OS Win32 API pro Windows, POSIX API (UNIX, Linux, Mac OS X), Java API pro Java virtual machine (JVM) Neexistuje z adn a norma specikujc v ycet a n azvy sluzeb OS, kazd y OS m a svoji sestavu sluzeb OS Java { platforma nez avisl a na OS nelze volat sluzby OS prmo z javovsk ych program u res se neprmo, vol anm C/C++ funkcionality nativn pro dan y OS Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 26
Ilustrace standardnho API { Win32 Funkce ReadFile() cten ze souboru dat HANDLE le { jm eno souboru, ze kter eho se cte LPVOID buer { clov a vyrovn avac pam et' DWORD bytestoread { d elka vyrovn avac pam eti LPDWORD bytesread { d elka precten ych dat LPOVERLAPPED ovl { cekat / necekat na konec operace Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 27
Ilustrace standardnho Java API metoda read() z trdy java.io.inputstream metoda vrac int reprezentujc pocet precten ych byt u IOException { odbocka pro resen IO chyby byte [] b { clov y buer int o { poc atecn oset v b, kam se zapisuj data int len maximum cten ych byt u Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 28
Prklady sluzeb POSIX (knihovna C) Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 29
Prklady sluzeb POSIX (knihovna C) Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 30
Rozhran programu Windows Vista Jan Staudek, FI MU Brno PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS 31
Subsyst emy, DLL, sluzby Subsyst emy p uvodn resen emulac rozhran sluzeb POSIX a OS/2 DLL, Dynamic Link Library dynamicky, pri b ehu procesu, zav ad en e knihovn programy, nikoli pri kompilaci ci sestavov an User mode services, tak e NT Services analogie sluzeb implementovan ych v j adru rozsren funkcionality syst emu napr. lsass.exe, local service authentication service taskmgr.exe, generuje tabulkov y seznam bezcch sluzeb a aplikac snadno se napadaj, jsou dostupn e vzd alen e mnozstv trvale b ezcch sluzeb je,,obrovsk e" predstavuj rezii Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 32
Prklady vol an Native NT API Prklady vol an pouzvajc handles pro manipulaci s objekty mezi procesy madlo, reprezentace jin e slozit ejs struktury Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 33
Rozhran Win32 API verejn e dostupn e, pln e publikovan e funkcn rozhran pro tvorbu aplikac knihovn podprogramy bud' probl em res prmo nebo pomoc sluzeb Native NT calls V p uvodnm resen Windows se podporovala dals dv e rozhran POSIX { vol an sluzeb identick e s prostredm Unix OS2 { vol an sluzeb identick e s prostredm OS/2 Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 34
Rozhran Win32 API, prklady Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 35
Microsoft Platforma.NET (.NET Framework) virtu aln stroj, pro kter y lze ps at programy nez avisl e na architekture syst emu tento stroj hostujcho program napsan y pro.net Framework se nestar a o to, na jak em poctaci s jak ym OS bez.net virtu aln stroj { CLR, Common Language Runtime programy napsan e v C# nebo ve VB.NET jsou kompilov any na tzv. assemblies pri spust en programu jsou assemblies v CLR (just-in-time compiler) prelozeny do nativnho k odu hostujcho syst emu Jan Staudek, FI MU Brno PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 36