operační systém 24.12.2013 vjj 1
24.12.2013 vjj 2 co chce uživatel od OS NIC chce jen 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
24.12.2013 vjj 3 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 spouštění programů multitasking
24.12.2013 vjj 4 OS užitečné služby pro aplikace služby pro uživatele User Interface rezidentní aplikace
24.12.2013 vjj 5 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 USB síť
24.12.2013 vjj 6 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 7 uživatel keyboard mouse joystick touchpad touchscreen voice command biometrie...
24.12.2013 vjj 8 OS reakce na činnost uživatele zajištění komunikace uživatele s programem: HW interrupt driver RIT message požadavky programu SW interrupt interrupt routine
24.12.2013 vjj 9 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 10 historie monolit z jakékoliv části OS lze volat jakoukoliv funkci OS a přistupovat k libovolným datům OS strukturovaný systém, vrstvy 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 pipeline jediný způsob komunikace s okolím, striktní kontrola parametrů kontrakty oboustranná dohoda o vytvoření pipeline, komunikace pouze po vzájemné dohodě
24.12.2013 vjj 11 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 12 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ů concurrency manager interrupt manager scheduler, dispatcher
24.12.2013 vjj 13 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
struktura Windows 24.12.2013 vjj 14
24.12.2013 vjj 15
24.12.2013 vjj 16 System support processes Service processes Applications Environment subsystems SCManager Service control manager Svchost.exe Csrss.exe User applications Win32 Lsass.exe Winmgmt.exe Local Security Authentication Server OS2SS.exe Winlogon.exe Spooler Task Manager OS/2 Logon Process PSXSS.exe Services.exe Windows Explorer POSIX Smss.exe Session manager Subsystem DLLs Kernel32.dll, Advapi32.dll, User32.dll, GDI32.dll System threads Ntoskrnl.exe Executive Ntdll.dll Int 2E / SysEnter System service dispatcher Win32k.sys Windowing and graphics Win32 User I/O Manager File system cache Plug and Play manager Power manager Security reference monitor Virtual memory Processes and threads Configuration manager (registry) WDM WMI routines GDI Local procedure call Object manager Executive support RTL Kernel (Process Manager, Interrupt / Exception Dispatcher, Multiprocessor Synchronization) Device and file system drivers Graphic device drivers Hal.dll Hardware abstraction layer (HAL)
24.12.2013 vjj 17 System support processes Service processes Applications Environment subsystems Subsystem DLLs Int 2E / SysEnter Ntdll.dll Ntoskrnl.exe System service dispatcher Executive Kernel Drivers Win32k.sys Windowing and graphics Win32 User GDI Graphic device drivers Hal.dll Hardware abstraction layer (HAL)
24.12.2013 vjj 18 ring 3 -> ring 0 Aplikace Csrss.exe Win32 subsystém GDI32.dll User32.dll AdvAPI32.dll RPCRT4.dll Kernel32.dll NTdll.dll ring 3 ring 0 Win32k.sys NTOSKrnl.exe INT 2E / SysEnter LRPC
24.12.2013 vjj 19 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 GetTempFile DefineDosDevice ExitWindowsEx...
24.12.2013 vjj 20 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 heap manager Win32 subsystem process communication functions Run-time library routines user-mode asynchronous procedure call (APC) dispatcher exception dispatcher
24.12.2013 vjj 21 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 obsahuje funkce pro text, čárové a bitmapové kreslení a pro manipulaci s grafikou
24.12.2013 vjj 22 System service dispatcher NTOSKrnl.exe 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 23 Marc Russinovich: struktura OS "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 24 Microsoft Research Singularity 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 25 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