Osnova dodatku predn asky Typologie, funkcn skladba a architektury OS, prklady z Windows, Unix, Linux, MAC OSx PB 15 Operacn syst emy Windows Unix Linux MAC OS X Jan Staudek http://www..muni.cz/usr/staudek/vyuka/ Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Verze : jaro 016 PB15 Operacn systemy { 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 pameti textove orientovan y jazyk prkaz u pro OS, z adn e GUI monoprogramov y, monouzivatelsk y syst em Windows 3.0, 1990 Windows NT (3.1), 1993 Zkusenosti z v yvoje OS Windows 3 bitov a architektura, mikroj adro, multitasking podpora starsch aplikac pro MS-DOS a Windows, pro OS/ (IBM) a pro POSIX (Unix) Windows 95, pokracov an Windows 3.0, 1995 3 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 16 bitov a architektura rozhran GUI, implementace { vrstva nad MS-DOS PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 3
Zkusenosti z v yvoje OS Windows Windows Vista Architecture Windows 000, v linii NT podpora distribuovan eho zpracov an dat Active Directory { distribuovan y adres ar plug-and-play a power-management Windows XP, 001 { 005 n ahrada verz Windows zalozen ych na MS-DOS verz zalozenou na NT n avrat ke spse monolitick e architekture Windows Vista, 007, kosmetick e zm eny Windows Server, 008 { vceuzivatelsk y syst em Windows 7, 009, kosmetick e zm eny Windows 8, 01, + cloud computing Windows 10, 015, kosmetick e zm eny PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 4 PB15 Operacn systemy { 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 Windows Vista Architecture, komponenty v rezimu j adra Hardware abstraction layer (HAL) Konverze generick e hradwarov e platformy na konkr etne pouzitou hardwarovou platformu Prstup na syst emovou sbernici, radic DMA, radic prrusen, casovac, radic pameti, 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 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 6 PB15 Operacn systemy { 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... 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 pameti PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 8 PB15 Operacn systemy { 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 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 Win3, POSIX preklad vol an sluzeb ze syst emu aplikace na ALPC vol an nebo na Native NT vol an PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 10 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 11
Windows Vista Architecture, procesy v uzivatelsk em rezimu User applications provednschopn e programy (.EXE, DLL), Executables Windows 7 Architecture, model klient { server Windows OS services, environment subsystems (POSIX, WIN3) 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 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 1 PB15 Operacn systemy { 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 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) 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 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 14 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 15
Tradicn Unix, historie PB15 Operacn { Typologie, funkcn Tradicn Unix, jadro 16 Soudobe Unixy, jadro PB15 Operacn { Typologie, funkcn 17 Linux Puvodn e Unix pro IBM PC s procesorem Intel 80386 Od. r. 1991 otev reny projekt, jsou dostupne zdrojove programy X pod za stitou Free Software Foundation (FSF ). V sou casnosti plnohodnotna varianta Unixu Dostupna na v ce platformach X Intel Pentium, Itanium, Motorola, IBM PowerPC,... PB15 Operacn { Typologie, funkcn 18 Vysoce modularn koncepce, snadna kon gurovatelnost PB15 Operacn { Typologie, funkcn 19
Ilustrace seznamu zavedenych modulu jadra Linuxu Linux, modularn monoliticke jadro Nen aplikovan koncept mikrojadra X Jadro virtualn e obsahuje ve skerou funk cnost OS v jednom velkem bloku programu, b ez jako jeden proces s jedn m adresovym prostorem X V sechny funk cn komponenty maj p r stup ke v sem vnit rn m datovym strukturam a programum Moduly jadra lze zavad et automaticky a na z adost odstranovat, jsou relativn e nezavisl ymi bloky X moduly jadra { zaveditelne moduly (Loadable Modules) X modul je objekt (soubor), jeho z kod lze p ri b ehu dynamicky navazovat a odstranovat do / z jadra X moduly jsou uspo radatelne hierarchicky (Stackable Modules) Modul jadra je r e seny na zaklad e pokynu b ez c ho procesu PB15 Operacn { Typologie, funkcn 0 Komponenty jadra Linuxu (implementace na arch. IA-64 PB15 Operacn { Typologie, funkcn PB15 Operacn { Typologie, funkcn 1 Linuxovske signaly PB15 Operacn { Typologie, funkcn 3
Modulov a architektura MAC OS X (Darwin) 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 pameti, v ymena 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 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 4 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 5 Vol an sluzeb syst emu, System Calls Ilustrace standardnho API { Win3 prklady API sluzeb OS Win3 API pro Windows, POSIX API (UNIX, Linux, Mac OS X), Java API pro Java virtual machine (JVM) Funkce ReadFile() cten ze souboru dat 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 HANDLE le { jm eno souboru, ze kter eho se cte LPVOID buer { clov a vyrovn avac pamet' DWORD bytestoread { d elka vyrovn avac pameti LPDWORD bytesread { d elka precten ych dat LPOVERLAPPED ovl { cekat / necekat na konec operace PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 6 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 7
Ilustrace standardn ho Java API P r klady slu zeb POSIX (knihovna C) X metoda read() z t r dy java.io.inputstream X metoda vrac int reprezentuj c po cet p re ctenych bytu X X X X IOException { odbo cka pro r e sen IO chyby byte [] b { c lovy bu er int o { po cate cn o set v b, kam se zapisuj data int len maximum c tenych bytu PB15 Operacn { Typologie, funkcn 8 PB15 Operacn { Typologie, funkcn PB15 Operacn { Typologie, funkcn 9 Rozhran programu Windows Vista P r klady slu zeb POSIX (knihovna C) 30 PB15 Operacn { Typologie, funkcn 31
Subsystemy, DLL, slu zby P r klady volan Native NT API Subsystemy X puvodn r e sen emulac rozhran slu zeb POSIX a OS/ DLL, Dynamic Link Library X dynamicky, p ri b ehu procesu, zavad ene knihovn programy, nikoli p ri kompilaci c i sestavovan User mode services, take NT Services X analogie slu zeb implementovanych v jadru X roz s r en funkcionality systemu X nap r. lsass.exe, local service authentication service taskmgr.exe, generuje tabulkovy seznam be z c ch slu zeb a aplikac X snadno se napadaj, jsou dostupne vzdalen e X mno zstv trvale b ez c ch slu zeb je,,obrovske" X p redstavuj re zii PB15 Operacn { Typologie, funkcn X madlo, reprezentace jine slo zit ej s struktury 3 Rozhran Win3 API P r klady volan pou z vaj c handles pro manipulaci s objekty mezi procesy PB15 Operacn { Typologie, funkcn 33 Rozhran Win3 API, p r klady ve rejn e dostupne, pln e publikovane funk cn rozhran pro tvorbu aplikac knihovn podprogramy X bud' problem r e s p r mo nebo pomoc slu zeb Native NT calls V puvodn m r e sen Windows se podporovala dal s dv e rozhran X POSIX { volan slu zeb identicke s prost red m Unix X OS { volan slu zeb identicke s prost red m OS/ PB15 Operacn { Typologie, funkcn 34 PB15 Operacn { Typologie, funkcn 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 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 36