Typologie, funkcn skladba a architektury OS, prklady z Windows, Unix, Linux, Android PB 152 Operacn syst emy Jan Staudek http://www. .muni.cz/usr/staudek/vyuka/ Û¡¢£¤¥¦§¨ª«¬­Æ°±²³´µ·¸¹º»¼½¾¿Ý Verze: jaro 2017 Osnova dodatku predn asky 2 Windows 2 Unix 2 Linux 2 Android Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 1 Modulov e architektury 2 Soudobe metodologie navrhu OS pouzvaj pro vytvoren (modularnho) jadra OS OO programovac techniky 2 komponenty jadra jsou samostatne jednotky { moduly 2 moduly mezi sebou komunikuj pres znama rozhran komunikace pritom nen omezena na prsnou hierarchii 2 kazdy modul je samostatne zaveditelny modul jadra, zavad se, je-li potrebny do jadra se prida pro jisty hardware { driver sbernice, IO zarzen jako zaveditelne moduly se mohou doplnit podpory pro ruzne souborove systemy, programovac prostred, ... Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 2 Zkusenosti z v yvoje OS Windows 2 Systematicky prehled viz http://windows.microsoft.com/cs-cz/windows/history 2 MS-DOS 1.0, 1981 4000 radku v assembleru Intel 8086 microprocessor, provozovatelny i v 8 KB pameti textove orientovany jazyk prkazu pro OS, zadne GUI monoprogramovy, monouzivatelsky system 2 Windows 3.0, 1990 16 bitova architektura rozhran GUI, implementace { vrstva nad MS-DOS Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 3 Zkusenosti z v yvoje OS Windows 2 Windows NT (3.1), 1993 32 bitova architektura, mikrojadro, multitasking podpora starsch aplikac pro MS-DOS a Windows, pro OS/2 (IBM) a pro POSIX (Unix) 2 Windows 95, pokracovan Windows 3.0, 1995 32 bitova architektura, monoliticke jadro { poskytoval se vyss vykon nez NT nasledny vyvoj { 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 4 Zkusenosti z v yvoje OS Windows 2 Windows 2000, v linii NT podpora distribuovaneho zpracovan dat Active Directory { distribuovany adresar plug-and-play a power-management 2 Windows XP, 2001 { 2005 nahrada verz Windows zalozenych na MS-DOS verz zalozenou na NT navrat ke spse monoliticke architekture 2 Windows Vista, 2007, kosmeticke zmeny 2 Windows Server, 2008 { vceuzivatelsky system 2 Windows 7, 2009, kosmeticke zmeny 2 Windows 8, 2012, + cloud computing 2 Windows 10, 2015, kosmeticke zmeny Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 5 Windows Architecture 2 Vsechny verze Windows budovane na bazi NT maj na nami uvedene urovni shodnou strukturu 2 Separace jadra a aplikacne orientovaneho software Jadro: privilegovany rezim, vlastn jadro (Kernel), Executive, drivery, vrstva abstrakce hardware ostatn software bez v uzivatelskem rezimu 2 Modularn architektura Kazdou funkci (sluzbu) OS pln jedna komponenta OS OS a aplikace funkci OS se zprstupnuj pres relevantn komponenty pomoc standardnch rozhran Systemova data lze zprstupnovat pouze pres prslusne sluzby OS Kazdy modul lze odstranit, nahradit, inovovat bez prepisovan celeho systemu a API Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 6 Windows Architecture Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 7 Windows Architecture, komponenty v rezimu j adra 2 Executive: Zakladn sluzby poskytovane operacnm systemem Sprava pameti, procesu, vlaken, IO Bezpecnost Vymena zprav mezi procesy Vlaknova struktura, je mozna soubeznost behu sluzeb 2 Kernel sprava procesoru planovan vlaken, prepnan kontextu procesu sprava vyjimek a prerusen synchronizace multiprocesoru monoliticke resen, zadna vlakna jako v Executive a v uzivatelske oblasti Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 8 Windows Architecture, komponenty v rezimu j adra 2 Hardware abstraction layer (HAL) Konverze genericke hardwarove platformy na konkretne pouzitou hardwarovou platformu Jednotny pohled komponent Executive a jadra na systemovou sbernici, radic DMA, radic prerusen, casovac, radic pameti a podporu SMP ve vsech hardwarovych platformach 2 Device drivers Dynamicke knihovn podprogramy rozsirujc funkce Executive na konkretn IO zarzen Implementace softwarove podpory systemu souboru St'ove protokoly 2 Windowing and graphics system Implementace funkc GUI Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 9 Windows Architecture, Executive modules 2 I/O manager framework pro zprstupnovan IO zarzen, navazovan ovladacu implementace IO API, podpora bezpecnosti a pojmenovavan zarzen, st'ovych protokolu a systemu souboru (se spravcem objektu) 2 File system cache manager cache zvysujc vykon IO se soubory docasne uchovavan posledne modi kovanych dat v hlavn pameti 2 Object manager spravce objektu pro Executive objekty { reprezentace procesu, vlaken, semaforu ... Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 10 Windows Architecture, Executive modules 2 Plug-and-play manager Urcuje drivery /ovladace nutne pro podporu konkretnch zarzen a zavad je 2 Power manager sprava energie pri prostojch, vypnan, ... 2 Security reference monitor prosazovan pravidel pro rzen prstupu k ob jektu a generovan zprav pro audit objekty { soubory, procesy, adresove prostory, IO zarzen, ... 2 Virtual memory manager implementace konceptu virtualn pameti Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 11 Windows Architecture, Executive modules 2 Process/thread manager vytvar, ovlada, rus objekty procesu a vlaken 2 Con guration manager spravce databaze registry uchovavajc parametry systemovych i uzivatelskych objektu 2 Advanced local procedure call (ALPC) facility volan procedur mezi procesy { komunikacn nastroj mezi lokalnmi procesy, ktere implementuj sluzby a subsystemy ekv. RPC (remote procedure call) v distribuovanem prostred Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 12 Windows Architecture, procesy v uzivatelsk em rezimu 2 Special system processes, system support processes udrzovan relac s uzivateli (sessions) autentizace, prihlasovan, ... 2 Service processes vypis na systemovou tiskarnu (spooler), zaznamenavan udalost uzivatelska cast ovladacu, ... prostor pro rozsirovan funkcnosti OS 2 Environment subsystems rozhran sluzeb konkretnch operacnch systemu Win32 (Windows), POSIX (Unix) preklad volan sluzeb na ALPC volan (Advanced Local Procedure Call) nebo na Native NT volan sluzeb Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 13 Windows Architecture, procesy v uzivatelsk em rezimu 2 User applications provednschopne programy (.EXE, DLL), Executables Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 14 Windows Architecture, model klient { server 2 Windows OS services, environment subsystems (POSIX, WIN32) a aplikace jsou strukturovane do modelu klient{server klienti komunikuj se servery pomoc RPC asymetricky model, server obsluhuje klienty (sprava pameti, st'ove sluzby, ...) 2 Klient aplikace nebo jiny server klient pozada o sluzbu zaslanm zpravy serveru, zpravu Executive doruc spravnemu serveru, server provede pozadovanou sluzbu a vrat klientovi vysledek jinou zpravou 2 Prnosy zjednodusen Executive, zvysen spolehlivosti, jednotne rozhran na sluzby Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 15 Vol an sluzeb syst emu, System Calls 2 prklady API sluzeb OS Win32 API pro Windows, POSIX API (UNIX, Linux, Mac OS X), Java API pro Java virtual machine (JVM) 2 Neexistuje zadna norma speci kujc vycet a nazvy sluzeb OS, kazdy OS ma svoji sestavu sluzeb OS 2 Java { platforma nezavisla na OS nelze volat sluzby OS prmo z javovskych programu res se neprmo, volanm C/C++ funkcionality nativn pro dany OS Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 16 Ilustrace standardnho API { Win32 Funkce ReadFile() cten ze souboru dat HANDLE le { jmeno souboru, ze ktereho se cte LPVOID bu er { clova vyrovnavac pamet' DWORD bytesToRead { delka vyrovnavac pameti LPDWORD bytesRead { delka prectenych dat LPOVERLAPPED ovl { cekat / necekat na konec operace Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 17 Ilustrace standardnho Java API metoda read() z trdy java.io.InputStream metoda vrac int reprezentujc pocet prectenych bytu IOException { odbocka pro resen IO chyby byte [] b { clovy bu er int o { pocatecn o set v b, kam se zapisuj data int len maximum ctenych bytu Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 18 Prklady sluzeb POSIX (knihovna C) Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 19 Prklady sluzeb POSIX (knihovna C) Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 20 Rozhran program u Windows Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 21 Subsyst emy, DLL, sluzby 2 Subsystemy puvodn resen emulac rozhran sluzeb POSIX a OS/2 2 DLL, Dynamic Link Library dynamicky, pri behu procesu, zavadene knihovn programy, nikoli pri kompilaci ci sestavovan 2 User mode services, take NT Services analogie sluzeb implementovanych v jadru rozsren funkcionality systemu napr. lsass.exe, local service authentication service taskmgr.exe, generuje tabulkovy seznam bezcch sluzeb a aplikac snadno se napadaj, jsou dostupne vzdalene mnozstv trvale bezcch sluzeb je ,,obrovske" predstavuj rezii Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 22 Prklady vol an Native NT API 2 Prklady volan pouzvajc handles pro manipulaci s objekty mezi procesy madlo, reprezentace jine slozitejs struktury Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 23 Rozhran Win32 API 2 verejne dostupne, plne publikovane funkcn rozhran pro tvorbu aplikac 2 knihovn podprogramy bud' problem res prmo nebo pomoc sluzeb Native NT calls 2 V puvodnm resen Windows se podporovala dals dve rozhran POSIX { volan sluzeb identicke s prostredm Unix OS2 { volan sluzeb identicke s prostredm OS/2 Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 24 Rozhran Win32 API, prklady Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 25 Platforma .NET (.NET Framework) 2 Microsoft 2 virtualn stroj, pro ktery lze psat programy nezavisle na architekture systemu tento stroj hostujcho 2 program napsany pro .NET Framework se nestara o to, na jakem poctaci s jakym OS bez 2 .NET virtualn stroj { CLR, Common Language Runtime 2 programy napsane v C# nebo ve VB.NET jsou kompilovany na tzv. assemblies 2 pri spusten programu jsou assemblies v CLR (just-in-time compiler) prelozeny do nativnho kodu hostujcho systemu Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 26 Tradicn syst emy typu Unix 2 Vznik Bell Labs PDP-7, 1970, ..., 1978 Verze 7 { zaklad dnesnch Unixu, ..., UNIX System V 2 Paraleln vetev { 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 27 Tradicn Unix, historie Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 28 Tradicn Unix, j adro Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 29 Soudob e Unixy, j adro 2 System V Release 4 (SVR4) / Solaris, Berkeley Software Distribution (BSD) 2 Na FreeBSD 5.0 a mikrojadru Mach 3.0 je zalozeny Mac OS X Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 30 Linux 2 Puvodne Unix pro IBM PC s procesorem Intel 80386 2 Od. r. 1991 otevreny projekt, jsou dostupne zdrojove programy pod zastitou Free Software Foundation (FSF). 2 V soucasnosti plnohodnotna varianta Unixu 2 Dostupna na vce platformach Intel Pentium, Itanium, Motorola, IBM PowerPC, ... 2 Vysoce modularn koncepce, snadna kon gurovatelnost Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 31 Linux, modul arn monolitick e j adro 2 Nen aplikovan koncept mikrojadra Jadro virtualne obsahuje veskerou funkcnost OS v jednom velkem bloku programu, bez jako jeden proces s jednm adresovym prostorem Vsechny funkcn komponenty maj prstup ke vsem vnitrnm datovym strukturam a programum 2 Moduly jadra lze zavadet automaticky a na zadost odstranovat, jsou relativne nezavislymi bloky moduly jadra { zaveditelne moduly (Loadable Modules) modul je objekt (soubor), jehoz kod lze pri behu dynamicky navazovat a odstranovat do / z jadra moduly jsou usporadatelne hierarchicky (Stackable Modules) 2 Modul jadra je reseny na zaklade pokynu bezcho procesu Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 32 Ilustrace seznamu zaveden ych modul u j adra Linuxu Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 33 Komponenty j adra Linuxu (implementace na arch. IA-64) Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 34 Linuxovsk e sign aly Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 35 Modulov a architektura MAC OS X (Darwin) 2 hybridn struktura vrstvova struktura spodn vrstva { mikrojadro Mach horn vrstvy { aplikacn prostred a obecne sluzby gra ckeho rozhran pro aplikace 2 Jadro mikrojadro Mach { volan vzdalenych procedur (RPC, Remote Procedure Call), meziprocesova komunikace (IPC, InterProcess Communication), sprava pameti, vymena zprav, dispecer jadro BSD { rozhran na unixovske (BSD) prkazy, podpora st'ovan (sockets), system souboru, API de novana v POSIX vc. vlaken Pthreads rozsren jadra { IO kit pro vyvoj driveru a dynamicky zavadenych modulu 2 Aplikace a obecne sluzby si zprstupnuj vlastnosti BSD a Mach prmo Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 36 Modulov a architektura MAC OS X (Darwin) Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 37 Android 2 OS pro poctace s dotykovou obrazovkou na bazi Linuxu 2 Protokolovy zasobnk nad Linuxem, nikoli uplny OS Android je v podstate forma vestaven Linuxu do prostred mobilnho vypocetnho zarzen Zjednoduseny Linux, zachovany preemptivn multitasking Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 38 Android, protokolov y model, protocol stack Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 39 Android 2 Application Framework Activity Manager: start, zastaven, obnoven aplikace Window Manager: Javovske rozhran ovladan oken Package Manager: Instalace, rusen aplikac Telephony Manager: Interakce s telefonem, se sluzbami SMS MMS Content Providers: Sdlen dat mezi aplikacemi Resource Manager: Prace s lokalizovanymi retezci a bitmapami View System: Gesta, tlactka, ... Location Manager: Napojen na sluzby GPS, WiFi, ... Noti cation Manager: Spravce udalost, prchoz zpravy, akce, ... XMPP: Standardizovany messaging ( napr. Chat) Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 40 Android 2 System Libraries Surface Manager: spravce oken na nzke urovni OpenGL: API pro ztvarnen 2D a 3D gra ky Media Framework: podpora formatu pro zaznam a prehravan SQL Database: uchovavan persistentnch dat Browser Engine: zobrazovan HTML obsahu Bionic LibC: varianta standardn knihovny C systemu se standardnm rozhranm Java Native Interface (JNI) Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 41 Android, pohled v yvoj are aplikace 2 Vyvojari postac API z aplikacnho frameworku, umozn mu prstup ke sluzbam nizsch vrstev 2 Pro volan systemovych sluyeb Androidu ma nastroje IPC (Interprocess Communication) 2 Vetsina funkcnost viditelna pres API aplikacnho frameworku vyvolava systemove sluzby 2 K driverum se pristupuje pres HAL (Hardware Abstraction Layer), standardizovane rozhran driveru v jadru Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 42 Android, pohled v yvoj are aplikace Jan Staudek, FI MU Brno | PB152 Operacn syst emy { Typologie, funkcn skladba a architektury OS 43