Osnova dodatku predn asky Typologie, funkcn skladba a architektury OS, prklady z Windows, Unix, Linux, Android PB 15 Operacn syst emy Windows Unix Linux Android Jan Staudek http://www..muni.cz/usr/staudek/vyuka/ Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Verze : jaro 017 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 1 Modulov e architektury Soudob e metodologie n avrhu OS pouzvaj pro vytvoren (modul arnho) j adra OS OO programovac techniky komponenty j adra jsou samostatn e jednotky { moduly moduly mezi sebou komunikuj pres zn am a rozhran komunikace pritom nen omezena na prsnou hierarchii kazd y modul je samostatne 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, programovac prostred,... 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 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
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 POSI (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 Windows 000, v linii NT Zkusenosti z v yvoje OS Windows podpora distribuovan eho zpracov an dat Active Directory { distribuovan y adres ar plug-and-play a power-management Windows P, 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 Architecture Windows Architecture Vsechny verze Windows budovan e na b azi NT maj na n ami uveden e urovni shodnou strukturu Separace j adra a aplikacn e orientovan eho software J adro: privilegovan y rezim, vlastn j adro (Kernel), Executive, drivery, vrstva abstrakce hardware ostatn software bez v uzivatelsk em rezimu Modul arn architektura Kazdou funkci (sluzbu) OS pln jedna komponenta OS OS a aplikace funkci OS se zprstup nuj pres relevantn komponenty pomoc standardnch rozhran Syst emov a data lze zprstup novat pouze pres prslusn e sluzby OS Kazd y modul lze odstranit, nahradit, inovovat bez prepisov an cel eho syst emu a API PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 6 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 7
Windows Architecture, komponenty v rezimu j adra Executive: Z akladn sluzby poskytovan e operacnm syst emem Spr ava pameti, proces u, vl aken, IO Bezpecnost V ymena zpr av mezi procesy Vl aknov a struktura, je mozn a soubeznost beh u sluzeb 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 Architecture, komponenty v rezimu j adra Hardware abstraction layer (HAL) Konverze generick e hardwarov e platformy na konkr etne pouzitou hardwarovou platformu Jednotn y pohled komponent Executive a j adra na syst emovou sbernici, radic DMA, radic prerusen, casovac, radic pameti a podporu SMP ve vsech hardwarov ych platform ach Device drivers Dynamick e knihovn podprogramy 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 8 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 9 Windows Architecture, Executive modules Windows 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... 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, adresov e prostory, IO zarzen,... Virtual memory manager implementace konceptu virtu aln pameti PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 10 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 11
Windows Architecture, Executive modules Process/thread manager vytv ar, ovl ad a, rus objekty 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 distribuovan em prostred Windows Architecture, procesy v uzivatelsk em rezimu Special system processes, system support processes udrzov an relac s uzivateli (sessions) autentizace, prihlasov an,... Service processes v ypis na syst emovou tisk arnu (spooler), z aznamen av an ud alost uzivatelsk a c ast ovladac u,... prostor pro rozsirov an funkcnosti OS Environment subsystems rozhran sluzeb konkr etnch operacnch syst em u Win3 (Windows), POSI (Unix) preklad vol an sluzeb na ALPC vol an (Advanced Local Procedure Call) nebo na Native NT vol an sluzeb PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 1 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 13 Windows Architecture, procesy v uzivatelsk em rezimu User applications provednschopn e programy (.EE, DLL), Executables Windows Architecture, model klient { server Windows OS services, environment subsystems (POSI, WIN3) a aplikace jsou strukturovan e do modelu klient{server klienti komunikuj se servery 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 serveru, 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 14 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 15
Ilustrace standardn ho API { Win3 Volan slu zeb systemu, System Calls Funkce ReadFile() c ten ze souboru dat p r klady API slu zeb OS Win3 API pro Windows, POSI API (UNI, Linux, Mac OS ), Java API pro Java virtual machine (JVM) Neexistuje z adn a norma specikuj c vy cet a nazvy slu zeb OS, ka zdy OS ma svoji sestavu slu zeb OS Java { platforma nezavisl a na OS nelze volat slu zby OS p r mo z javovskych programu r e s se nep r mo, volan m C/C++ funkcionality nativn pro dany OS PB15 Operacn { Typologie, funkcn 16 Ilustrace standardn ho Java API HANDLE le { jmeno souboru, ze ktereho se c te LPVOID bu er { c lova vyrovnavac pam et' DWORD bytestoread { delka vyrovnavac pam eti LPDWORD bytesread { delka p re ctenych dat LPOVERLAPPED ovl { c ekat / ne cekat na konec operace PB15 Operacn { Typologie, funkcn 17 P r klady slu zeb POSI (knihovna C) metoda read() z t r dy java.io.inputstream metoda vrac int reprezentuj c po cet p re ctenych bytu 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 18 PB15 Operacn { Typologie, funkcn 19
Rozhran programu Windows P r klady slu zeb POSI (knihovna C) PB15 Operacn { Typologie, funkcn 0 Subsystemy, DLL, slu zby PB15 Operacn { Typologie, funkcn 1 P r klady volan Native NT API Subsystemy puvodn r e sen emulac rozhran slu zeb POSI a OS/ DLL, Dynamic Link Library dynamicky, p ri b ehu procesu, zavad ene knihovn programy, nikoli p ri kompilaci c i sestavovan User mode services, take NT Services analogie slu zeb implementovanych v jadru roz s r en funkcionality systemu nap r. lsass.exe, local service authentication service taskmgr.exe, generuje tabulkovy seznam be z c ch slu zeb a aplikac snadno se napadaj, jsou dostupne vzdalen e mno zstv trvale b ez c ch slu zeb je,,obrovske" p redstavuj re zii PB15 Operacn { Typologie, funkcn P r klady volan pou z vaj c handles pro manipulaci s objekty mezi procesy madlo, reprezentace jine slo zit ej s struktury PB15 Operacn { Typologie, funkcn 3
Rozhran Win3 API Rozhran Win3 API, prklady 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 POSI { vol an sluzeb identick e s prostredm Unix OS { vol an sluzeb identick e s prostredm OS/ PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 4 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 5 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 Tradicn syst emy typu Unix Vznik Bell Labs PDP-7, 1970,..., 1978 Verze 7 { z aklad dnesnch Unix u,..., UNI System V Paraleln v etev { University of California at Berkeley, UNI BSD (Berkeley Software Distribution).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 6 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 7
Tradicn Unix, historie PB15 Operacn { Typologie, funkcn Tradicn Unix, jadro 8 Soudobe Unixy, jadro PB15 Operacn { Typologie, funkcn 9 Linux System V Release 4 (SVR4) / Solaris, Berkeley Software Distribution (BSD) Na FreeBSD 5.0 a mikrojadru Mach 3.0 je zalo zeny Mac OS Puvodn e Unix pro IBM PC s procesorem Intel 80386 Od. r. 1991 otev reny projekt, jsou dostupne zdrojove programy pod za stitou Free Software Foundation (FSF ). V sou casnosti plnohodnotna varianta Unixu Dostupna na v ce platformach Intel Pentium, Itanium, Motorola, IBM PowerPC,... PB15 Operacn { Typologie, funkcn 30 Vysoce modularn koncepce, snadna kongurovatelnost PB15 Operacn { Typologie, funkcn 31
Ilustrace seznamu zavedenych modulu jadra Linuxu Linux, modularn monoliticke jadro Nen aplikovan koncept mikrojadra Jadro virtualn e obsahuje ve skerou funk cnost OS v jednom velkem bloku programu, b ez jako jeden proces s jedn m adresovym prostorem 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 moduly jadra { zaveditelne moduly (Loadable Modules) modul je objekt (soubor), jeho z kod lze p ri b ehu dynamicky navazovat a odstranovat do / z jadra 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 3 Komponenty jadra Linuxu (implementace na arch. IA-64) PB15 Operacn { Typologie, funkcn PB15 Operacn { Typologie, funkcn 33 Linuxovske signaly 34 PB15 Operacn { Typologie, funkcn 35
Modulov a architektura MAC OS (Darwin) Modulov a architektura MAC OS (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 POSI 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 36 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 37 Android Android, protokolov y model, protocol stack OS pro poctace s dotykovou obrazovkou na b azi Linuxu Protokolov y z asobnk nad Linuxem, nikoli upln y OS Android je v podstate forma vestaven Linuxu do prostred mobilnho v ypocetnho zarzen Zjednodusen y Linux, zachovan y preemptivn multitasking PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 38 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 39
Android Android Application Framework Activity Manager: start, zastaven, obnoven aplikace Window Manager: Javovsk e rozhran ovl ad an oken Package Manager: Instalace, rusen aplikac Telephony Manager: Interakce s telefonem, se sluzbami SMS MMS Content Providers: Sdlen dat mezi aplikacemi Resource Manager: Pr ace s lokalizovan ymi retezci a bitmapami View System: Gesta, tlactka,... Location Manager: Napojen na sluzby GPS, WiFi,... Notication Manager: Spr avce ud alost, prchoz zpr avy, akce,... MPP: Standardizovan y messaging ( napr. Chat) System Libraries Surface Manager: spr avce oken na nzk e urovni OpenGL: API pro ztv arnen D a 3D graky Media Framework: podpora form at u pro z aznam a prehr av an SQL Database: uchov av an persistentnch dat Browser Engine: zobrazov an HTML obsah u Bionic LibC: varianta standardn knihovny C syst emu se standardnm rozhranm Java Native Interface (JNI) PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 40 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 41 Android, pohled v yvoj are aplikace Android, pohled v yvoj are aplikace V yvoj ari postac API z aplikacnho frameworku, umozn mu prstup ke sluzb am nizsch vrstev Pro vol an syst emov ych slu yeb Androidu m a n astroje IPC (Interprocess Communication) V etsina funkcnost viditeln a pres API aplikacnho frameworku vyvol av a syst emov e sluzby K driver um se pristupuje pres HAL (Hardware Abstraction Layer), standardizovan e rozhran driver u v j adru PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 4 PB15 Operacn systemy { Typologie, funkcn skladba a architektury OS 43