Osnova dodatku p redna sky
Typologie, funkcn skladba a architektury OS, p r klady z Windows, Unix, Linux, MAC OSx
2 2 2 2
Windows Unix Linux MAC OS X
PB 152 Operacn systemy
Jan Staudek http://www. .muni.cz/usr/staudek/vyuka/ }
w A| y < 5 4 23 1 0 / -. , )+ ( %&' $ # !"
Æ
Verze : jaro 2016 Jan Staudek, FI MU Brno
Zkusenosti z vyvoje OS Windows
2
Systematicky prehled viz
2
2
1
Windows NT (3.1), 1993 X 32 bitova architektura, mikrojadro, multitasking X podpora starsch aplikac pro MS-DOS a Windows,
MS-DOS 1.0, 1981 X X X X
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
Zkusenosti z vyvoje OS Windows
http://windows.microsoft.com/cs-cz/windows/history 2
|
pro OS/2 (IBM) a pro POSIX (Unix)
4 000 r adk u v assembleru Intel 8086 microprocessor, provozovatelny i v 8 KB pameti textove orientovany jazyk prkazu pro OS, z adn e GUI monoprogramovy, monouzivatelsky system
2
Windows 95, pokracovan Windows 3.0, 1995 X 32 bitova architektura,
monoliticke jadro { poskytoval se vyss vykon nez NT X nasledn y vyvoj { Windows 98 a Windows Me a tm konc tato vetev
Windows 3.0, 1990 X 16 bitova architektura X rozhran GUI, implementace { vrstva nad MS-DOS
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
2
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
3
Windows Vista Architecture
Zkusenosti z vyvoje OS Windows
2
Windows 2000, v linii NT X podpora distribuovaneho zpracovan dat X Active Directory { distribuovany adresa r plug-and-play a power-management
2
Windows XP, 2001 { 2005 X nahrada verz Windows zalozenych na MS-DOS verz zalozenou na NT X navrat ke sps e monoliticke architekture
2 2 2 2 2
Windows Vista, 2007, kosmeticke zmeny Windows Server, 2008 { vceuzivatelsky system Windows 7, 2009, kosmeticke zmeny Windows 8, 2012, + cloud computing Windows 10, 2015, kosmeticke zmeny Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
4
Jan Staudek, FI MU Brno
Windows Vista Architecture, komponenty v re zimu jadra
2
2
2
Zakladn funkce jadra { API pro software v user modu Sprava pameti, procesu, vlaken, IO Bezpecnost Vym ena zprav mezi procesy Vlaknov a struktura
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
Hardware abstraction layer (HAL) hardwarovou platformu X Prstup na systemovou sbernici, r adic DMA, r adic prrusen, c asovac, r adic pameti, podpora SMP
2
Device drivers X Dynamicke knihovn podporgramy rozsirujc funkce Executive
na konkretn IO zarzen X Implementace softwarove podpory systemu souboru X St'ove protokoly
sprava procesoru planov an vlaken, prepnan kontextu procesu sprava vyjimek a prerusen synchronizace multiprocesoru monoliticke r esen, z adn a vlakna jako v Executive a v uzivatelske oblasti Jan Staudek, FI MU Brno
5
X Konverze genericke hradwarove platformy na konkretn e pouzitou
Kernel X X X X X
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
Windows Vista Architecture, komponenty v re zimu jadra
Executive: X X X X X
|
2
Windowing and graphics system X Implementace funkc GUI
6
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
7
Windows Vista Architecture, Executive modules
2
Windows Vista Architecture, Executive modules
I/O manager
2
X framework pro zprstupnov an IO zarzen, navazovan ovladacu X implementace IO API, X podpora bezpecnosti a pojmenovav an zarzen, st'ovych protokolu a
X Urcuje drivery /ovladace nutne pro podporu konkretn ch zarzen
a zavad je
2
systemu souboru (se spravcem objektu)
2
2
generovan zprav pro audit
Object manager
X objekty { soubory, procesy, adreesove prostory, IO zarzen, . . .
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
2
8
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
9
Windows Vista Architecture, procesy v u zivatelskem re zimu
Process/thread manager
2
Special system processes, system support processes X udrzovan relac s uzivateli (sessions) X aautentizace, prihlasovan , . . .
X vytva r, ovlad a, rus objkety procesu a vlaken
Con guration manager
2
X spravce databaze registry uchovavaj c parametry
systemov ych i uzivatelskych objektu
2
Virtual memory manager X implementace konceptu virtualn pameti
Windows Vista Architecture, Executive modules
2
Security reference monitor X prosazovan pravidel pro r zen prstupu k ob jektu a
X spravce objektu pro Executive X objekty { reprezentace procesu, vlaken, semaforu . . .
2
Power manager X sprava energie pri prostojch, vypnan , . . .
File system cache manager X cache zvysujc vykon IO se soubory X docasne uchovav an posledne modi kovanych dat v hlavn pameti
2
Plug-and-play manager
Service processes X vypis na systemovou tiskarnu (spooler), zaznamen av an udalost X uzivatelska c ast ovladacu, ldots X prostor pro rozsirovan funkcnosti OS
Advanced local procedure call (ALPC) facility X volan procedur mezi procesy { komunikacn nastroj
mezi lokaln mi procesy, ktere implementuj sluzby a subsystemy X ekv. RPC (remote procedure call) v ditribuovanem prstred
2
Environment subsystems X rozhran sluzeb operacnch system u X Win32, POSIX X preklad volan sluzeb ze systemu aplikace na ALPC volan nebo
na Native NT volan
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
10
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
11
Windows 7 Architecture, model klient { server
Windows Vista Architecture, procesy v u zivatelskem re zimu
2
2 Windows OS services, environment subsystems
(POSIX, WIN32) a aplikace jsou strukturovane do modelu klient{server
User applications X provednschopne programy (.EXE, DLL), Executables
X klienti komunikuj se srvery pomoc RPC X asymetricky model,
server obsluhuje klienty (sprava pameti, st'ove sluzby, . . . )
2
Klient X aplikace nebo jiny server X klient pozad a o sluzbu zaslan m zpravy server, zpravu Executive
doruc spravn emu serveru, server provede pozadovanou sluzbu a vrat klientovi vysledek jinou zpravou
2
Prnosy X zjednodusen Executive, zvy sen spolehlivosti,
jednotne rozhran na sluzby
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
12
Jan Staudek, FI MU Brno
2 2 2
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
13
Tradicn systemy typu Unix
Modulova architektura
2
|
nejleps soudobe metodologie navrhu OS pouzvaj pro vytvoren (modularn ho) jadra OO programovac techniky komponenty jadra jsou samostatne jednotky { moduly moduly mezi sebou komunikuj pres znam a rozhran komunikace nen omezena na prsnou hierarchii kazdy modul je zaveditelny modul jadra, zavad se, je-li potrebny
2 2
Vznik Bell Labs PDP-7, 1970, . . . , 1978 Verze 7 { zaklad dnesnch Unixu, . . . , UNIX System V Paraleln vetev { University of California at Berkeley, UNIX BSD (Berkeley Software Distribution)
X do jadra se prida pro jisty hardware { driver sbernice, IO zarzen X jako zaveditelne moduly se mohou doplnit podpory pro ruzn e
souborove systemy
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
14
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
15
Tradicn Unix, historie
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
Tradicn Unix, jadro
16
Jan Staudek, FI MU Brno
|
Soudobe Unixy, jadro
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
17
Linux
2 2
Puvodn e Unix pro IBM PC s procesorem Intel 80386 Od. r. 1991 otevreny projekt, jsou dostupne zdrojove programy X pod za stitou Free Software Foundation (FSF ).
2 2
V soucasnosti plnohodnotna varianta Unixu Dostupna na vce platformach X Intel Pentium, Itanium, Motorola, IBM PowerPC, . . .
2
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
18
Vysoce modularn koncepce, snadna kon gurovatelnost
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
19
Ilustrace seznamu zavedenych modulu jadra Linuxu
Linux, modularn monoliticke jadro
2
Nen aplikovan koncept mikrojadra X Jadro virtualn e obsahuje veskerou funkcnost OS v jednom velkem
bloku programu, bez jako jeden proces s jednm adresovym prostorem
X Vsechny funkcn komponenty maj prstup ke vsem vnitrnm datovym
strukturam a programum
2
Moduly jadra lze zavad et automaticky a na z adost odstranovat, jsou relativne nezavisl ymi bloky X moduly jadra { zaveditelne moduly (Loadable Modules) X modul je objekt (soubor), jehoz kod lze pri behu dynamicky
navazovat a odstranovat do / z jadra X moduly jsou usporadatelne hierarchicky (Stackable Modules) 2
Modul jadra je r eseny na zaklad e pokynu bez cho procesu Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
20
Komponenty jadra Linuxu (implementace na arch. IA-64
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
21
Linuxovske signaly
22
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
23
Modulova architektura MAC OS X (Darwin)
2
Modulova architektura MAC OS X (Darwin)
hybridn struktura
X vrstvova struktura X spodn vrstva { mikrojadro Mach X horn vrstvy {
aplikacn prostred a obecne sluzby gra ckeho rozhran pro aplikace
2
Jadro
X mikrojadro Mach { volan vzdalen ych procedur (RPC, Remote Procedure Call), meziprocesova komunikace (IPC, InterProcess Communication), sprava pameti, vym ena zprav, dispecer X jadro BSD { rozhran na unixovske (BSD) prkazy, podpora st'ovan
(sockets), system souboru, API de novana v POSIX vc. vlaken Pthreads X rozsr en jadra { IO kit pro vyvoj driveru a dynamicky zavad enych modulu 2
Aplikace a obecne sluzby si zprstupnuj vlastnosti BSD a Mach prmo Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
Jan Staudek, FI MU Brno
24
2
25
X Funkce ReadFile() X c ten ze souboru dat
prklady API sluzeb OS X Win32 API pro Windows, X POSIX API (UNIX, Linux, Mac OS X), X Java API pro Java virtual machine (JVM)
2
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
Ilustrace standardnho API { Win32
Volan slu zeb systemu, System Calls
2
|
Neexistuje z adn a norma speci kujc vy cet a nazvy sluzeb OS, kazdy OS ma svoji sestavu sluzeb OS Java { platforma nezavisl a na OS X nelze volat sluzby OS prmo z javovskych programu X r es se neprmo, volan m C/C++ funkcionality nativn pro dany OS
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
X X X X X 26
HANDLE le { jmeno souboru, ze ktereho se c te LPVOID buer { clova vyrovnavac pamet' DWORD bytesToRead { delka vyrovnavac pameti LPDWORD bytesRead { delka prectenych dat LPOVERLAPPED ovl { c ekat / necekat na konec operace Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
27
Ilustrace standardnho Java API
P r klady slu zeb POSIX (knihovna C)
X metoda read() z trdy java.io.InputStream X metoda vrac int reprezentujc pocet prectenych bytu
X X X X
IOException { odbocka pro r esen IO chyby byte [] b { clovy buer int o { pocate cn oset v b, kam se zapisuj data int len maximum c tenych bytu Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
28
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
29
Rozhran programu Windows Vista
P r klady slu zeb POSIX (knihovna C)
Jan Staudek, FI MU Brno
Jan Staudek, FI MU Brno
30
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
31
Subsystemy, DLL, slu zby
2
P r klady volan Native NT API
Subsystemy X puvodn r esen emulac rozhran sluzeb POSIX a OS/2
2
DLL, Dynamic Link Library X dynamicky, pri behu procesu, zavad ene knihovn programy,
nikoli pri kompilaci c i sestavovan
2
User mode services, take NT Services X analogie sluzeb implementovanych v jadru X rozsr en funkcionality systemu X napr. lsass.exe, local service authentication service taskmgr.exe, generuje tabulkovy seznam bezcch sluzeb a aplikac X snadno se napadaj, jsou dostupne vzdalen e X mnozstv trvale bez cch sluzeb je ,,obrovske" X predstavuj rezii Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
2
X madlo, reprezentace jine slozitejs struktury
32
Rozhran Win32 API
2 2
Prklady volan pouzvajc handles pro manipulaci s objekty mezi procesy
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
33
Rozhran Win32 API, p r klady
verejne dostupne, plne publikovane funkcn rozhran pro tvorbu aplikac knihovn podprogramy X bud' problem r es prmo nebo pomoc sluzeb Native NT calls
2
V puvodn m r esen Windows se podporovala dals dve rozhran X POSIX { volan sluzeb identicke s prostredm Unix X OS2 { volan sluzeb identicke s prostredm OS/2
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
34
Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
35
Platforma .NET (.NET Framework)
2 2 2 2 2 2
Microsoft virtualn stroj, pro ktery lze psat programy nezavisl e na architekture systemu tento stroj hostujcho program napsany pro .NET Framework se nestara o to, na jakem poctaci s jakym OS bez .NET virtualn stroj { CLR, Common Language Runtime programy napsane v C# nebo ve VB.NET jsou kompilovany na tzv. assemblies pri spusten programu jsou assemblies v CLR (just-in-time compiler) prelozeny do nativnho kodu hostujcho systemu Jan Staudek, FI MU Brno
|
PB152 Operacn systemy { Typologie, funkcn skladba a architektury OS
36