operační systém
24.12.2013
vjj
1
co chce uživatel od OS • NIC • chce jen • • • • • • • 24.12.2013
spočítat trajektorii modulu přistávajícího na Marsu vypracovat měsíční bilanci podniku
přečíst/napsat e-mail brouzdat po webu
zahrát si svojí oblíbenou hru koukat na film prohlížet fotky vjj
2
proč OS •
co zvládne samotný program?
•
VŠECHNO !
•
ALE každý program by z 99% obsahoval kód pro nezbytné základní funkce, které potřebuje i každý další program, a které jsou navíc závislé na konkrétním HW
•
současný uživatel by byl nepříjemně překvapen
• • •
24.12.2013
spouštění programů multitasking … vjj
3
OS • užitečné služby pro aplikace • služby pro uživatele •
24.12.2013
User Interface – rezidentní aplikace
vjj
4
co chce program od OS • komunikace s uživatelem •
okna
• •
text grafika
• přístup k datům •
práce se soubory
• práce s periferiemi • •
24.12.2013
USB síť vjj
5
co chce uživatel od OS • používat program • •
(nainstalovat ?, spustit ! , zastavit ?) nahrát, zkopírovat, smazat, vytisknout data komunikovat s programem
• pohodlí • rychlost • bezpečnost • příjemné uživatelské prostředí • vizuální efekty 24.12.2013
vjj
6
uživatel • keyboard • mouse • joystick • touchpad • touchscreen • voice command • biometrie • ... 24.12.2013
vjj
7
OS • reakce na činnost uživatele – zajištění komunikace uživatele s programem:
•
HW interrupt – driver – RIT – message
• požadavky programu •
24.12.2013
SW interrupt – interrupt routine – …
vjj
8
OS •
přidělování procesoru, výběr procesu/vlákna, kterému má být přidělen procesor – task management
•
strategie, jakou je využívána paměť, přidělování paměti procesům – memory management
•
usnadnění přístupu procesů k datů na discích – file system management
•
administrace – potřebné údaje o procesech, vláknech, …
•
…
24.12.2013
vjj
9
historie • •
monolit
•
strukturovaný systém, vrstvy
• •
• •
z jakékoliv části OS lze volat jakoukoliv funkci OS a přistupovat k libovolným datům OS
lze volat pouze funkce vlastní a nejbližší nižší vrstvy a přistupovat pouze k datům vlastní vrstvy synchronní zpracování požadavků (tj. volání funkcí)
microkernel
• •
posílání zpráv místo volání funkcí asynchronní zpracování požadavků (tj. posílání zpráv do fronty)
Singularity, Metro
• •
24.12.2013
pipeline – jediný způsob komunikace s okolím, striktní kontrola parametrů kontrakty – oboustranná dohoda o vytvoření pipeline, komunikace pouze po vzájemné dohodě vjj
10
historie - hierarchie správ • správa prací / job manager • • • • •
operator job scheduler monitor reader
writer
• pracovní moduly / utility • správa prostředků • technické vybavení 24.12.2013
vjj
11
historie - správa prostředků • •
• •
správa dat / data manager
• •
správa souborů správa přídavných zařízení
správa procesů / task manager
• • • •
process/task creation program modules manager loader timer
správa paměti správa procesů
• • •
24.12.2013
concurrency manager interrupt manager scheduler , dispatcher vjj
12
microkernel • ring 0 - jádro OS • ring 1 - drivery a jednotlivé části OS • ring 2 - utility • ring 3 - uživatelské aplikace • přepínání a předávání informací mezi • •
jednotlivými úrovněmi je časově náročné (pomalý Int nahrazován rychlejším SysEnter) komunikace pomocí posílání zpráv asynchronní x synchronní NeXT
24.12.2013
vjj
13
struktura Windows
24.12.2013
vjj
14
24.12.2013
vjj
15
System support processes
Service processes
SCManager Service control manager
Svchost.exe
Lsass.exe Local Security Authentication Server
Winmgmt.exe
Winlogon.exe Logon Process Smss.exe Session manager
Applications User applications
Spooler
Task Manager
Services.exe
Windows Explorer
Subsystem DLLs
Environment subsystems Csrss.exe Win32 OS2SS.exe OS/2 PSXSS.exe POSIX
Kernel32.dll, Advapi32.dll, User32.dll, GDI32.dll
Ntdll.dll Int 2E / SysEnter
System threads
Win32k.sys Windowing and graphics
Ntoskrnl.exe
Win32
Executive
System service dispatcher
Executive support
WDM WMI routines
Configuration manager (registry)
Processes and threads
Object manager
Virtual memory
Security reference monitor
Power manager
Plug and Play manager
File system cache
I/O Manager
Local procedure call
User GDI
RTL
Kernel (Process Manager, Interrupt / Exception Dispatcher, Multiprocessor Synchronization) Device and file system drivers
Graphic device drivers
Hal.dll 24.12.2013
Hardware abstraction layer (HAL) vjj
16
System support processes
Service processes
Applications
Environment subsystems
Subsystem DLLs Ntdll.dll
Int 2E / SysEnter Ntoskrnl.exe
Win32k.sys Windowing and graphics Win32
System service dispatcher Executive
User
Kernel
GDI
Drivers
Graphic device drivers
Hal.dll Hardware abstraction layer (HAL) 24.12.2013
vjj
17
ring 3 -> ring 0 Csrss.exe Win32 subsystém
Aplikace
GDI32.dll
User32.dll
AdvAPI32.dll
RPCRT4.dll
Kernel32.dll NTdll.dll ring 3
INT 2E / SysEnter
LRPC
ring 0
Win32k.sys
24.12.2013
NTOSKrnl.exe
vjj
18
Csrss.exe •
Client/Server Runtime Subsystem
• • • • • •
Win32 subsystém zprostředkovatel služeb pro ostatní subsystémy okna textových konsol vytváření a rušení procesů a vláken část podpory pro VDM (16-bit virtual DOS machine) procesy různé funkce
• • • • 24.12.2013
GetTempFile DefineDosDevice ExitWindowsEx ... vjj
19
Ntdll.dll •
System service dispatch stubs
• •
•
více než 200 API funkcí (NtCreateFile, NtSetEvent, ...) stubs - Int 2E – volání stejně pojmenované funkce z jádra Windows (Ntoskrnl.exe)
Internal support functions
• • • • • 24.12.2013
heap manager Win32 subsystem process communication functions
Run-time library routines user-mode asynchronous procedure call (APC) dispatcher exception dispatcher vjj
20
Win32k.sys •
správce oken (Window Manager)
• • • •
•
řídí zobrazování oken řídí výstup na obrazovku
spravuje vstup z klávesnice, od myši, . . . předává uživatelské zprávy aplikacím
Graphics Device Interface (GDI)
•
knihovna funkcí pro zařízení s grafickým výstupem
•
24.12.2013
obsahuje funkce pro text, čárové a bitmapové kreslení a pro manipulaci s grafikou
vjj
21
NTOSKrnl.exe •
System service dispatcher
•
Executive – horní vrstva NTOSKrnl.exe
• •
• • •
•
System Services - exportované funkce - většinu z nich lze volat z uživatelského módu (API funkce) exportované a dokumentované funkce
• •
Windows DDK Windows 2000 Installable File System (IFS) Kit
exportované a nedokumentované funkce neexportované funkce jejichž názvy jsou ale definovány jako globální symboly interní funkce jednotlivých modulů, které nejsou definovány jako globální symboly
Kernel – dolní vrstva NTOSKrnl.exe
24.12.2013
vjj
22
struktura OS •
Marc Russinovich: "Windows is similar to most UNIX systems in that it's a monolithic operating system in the sense that the bulk of the operating system and device driver code shares the same kernel mode protected memory space. This means that any operating system component or device driver can potentially corrupt data being used by other operating system components"
24.12.2013
vjj
23
Singularity •
Microsoft Research
•
project Singularity (Andrew Birrell - Mountain View) a research operating system prototype Software Isolated Processes - pro všechny programy, drivery a rozšíření systému
•
project Sing# (Wolfram Schulte - Redmont) type safe language experimentální rozšíření Spec# (rozšíření C# - průběžné hlídání podmínek,...) kontrakty, pipelines
24.12.2013
vjj
24
Metro •
•
•
UI pro touchscreens
• •
WinPhone tablet
nové API – nadstavba nad Win32 API
• • •
striktní omezení grafických možností odstraněna vizuální nápověda vynucené asynchronní volání funkcí
oddělení procesů – viz Singularity
24.12.2013
vjj
25