Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A Windows operációs rendszer dr. Micskei Zoltán

Hasonló előadás


Az előadások a következő témára: "Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A Windows operációs rendszer dr. Micskei Zoltán"— Előadás másolata:

1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A Windows operációs rendszer dr. Micskei Zoltán Operációs rendszerek (vimia219)

2 Copyright Notice  These materials are part of the Windows Operating System Internals Curriculum Development Kit, developed by David A. Solomon and Mark E. Russinovich with Andreas Polze  Microsoft has licensed these materials from David Solomon Expert Seminars, Inc. for distribution to academic organizations solely for use in academic environments (and not for commercial use)   © David A. Solomon and Mark Russinovich 2

3 Windows családfa MS-DOS Windows 3.1 Windows 95/98/Me Windows 2000 (5.0) Windows Server 2003 (5.2) Windows Vista (6.0) Windows Mobile OS / 2 Windows NT (3.51, 4.0) Windows XP (5.1) VMS Windows NT Windows Server 2008 R2 ( 6.1 ) Windows 7 (6.1) 3 Windows 8 (6.2) Windows Server 2012 R2 ( 6.3 ) Windows 8.1 (6.3) Windows Phone

4 A Windows NT története  Új operációs rendszer írása 1988-ban o Eredetileg: OS/2 3.0 o Változás: Windows 3.0 utódját elkészíteni  Megalkotói: o Dave Cutler (Digitalnál a VMS tervezője)  Windows NT név o NT = New Technology o Windows NT = WNT = ? (Mostantól a “Windows” az NT alapú Windowsokat takarja) 4

5 Kiadások  Terméknév ↔ Build szám o Minden fordításnál növekszik (hetente 5-6 alkalom) Build#VersionDate 297PDC developer releaseJul NT 3.1Jul NT 3.51May NT 4.0Jul Windows 2000 (NT 5.0) Dec Windows XP (NT 5.1) Aug Windows Vista (6.0)Nov Windows 7 (6.1)July Windows 8 (6.2)August Windows 8.1 (6.3)October

6 Build#VersionDate 297PDC developer releaseJul NT 3.1Jul NT 3.51May NT 4.0Jul Windows 2000 (NT 5.0) Dec Windows XP (NT 5.1) Aug Windows Vista (6.0)Nov Windows 7 (6.1)July Windows 8 (6.2)August Windows 8.1 (6.3)October 2013 Kiadások  Terméknév ↔ Build szám o Minden fordításnál növekszik (hetente 5-6 alkalom) 6 fejlesztővel indult 200 fejlesztő, 140 tesztelő a végén 6M LOC Teljes fordítás 5 óra egy 486-oson 6 fejlesztővel indult 200 fejlesztő, 140 tesztelő a végén 6M LOC Teljes fordítás 5 óra egy 486-oson 1400 fejlesztő, 1700 tesztelő 29M LOC, 50 GB forrásfájl Teljes fordítás 8 óra egy 4 processzoros PIII Xeonon Stressz tesztelés: 1000 gépen 1400 fejlesztő, 1700 tesztelő 29M LOC, 50 GB forrásfájl Teljes fordítás 8 óra egy 4 processzoros PIII Xeonon Stressz tesztelés: 1000 gépen DEMO cmd.exe winver.exe DEMO cmd.exe winver.exe Teljes fordítás 12 óra, 30 gépen Egy build: 13 TB (!) 3300 különböző ISO Teljes fordítás 12 óra, 30 gépen Egy build: 13 TB (!) 3300 különböző ISO 6

7 Windows és a Linux VMS v1.0 Windows NT 3.1 NT 4.0 Windows 2000 Windows XP Server UNIX born UNIX public UNIX V6 Linux v1.0 v2.0 v2.2v2.3v2.4 v2.6 7

8 A Windows felépítése

9 Kvíz Mi az smss.exe, és miért fut a gépemen? Miért voltak az XP telepítő CD-n a fájlok nagyrésze egy i386 könyvtárban? Minek a rövidítése a WoW? 9

10 Tervezési célok  Hordozhatóság (Portability) o Többféle processzor architektúra: Kezdetben: Intel x86, MIPS, Alpha, PowerPC Windows XP: Intel x86 Windows Server 2003: x86, x64, IA64 (Itanium) Windows 8: x86, x64, ARM* o HW specifikus rész elkülönítve o Kernel: C nyelven 10

11 Tervezési célok  Hordozhatóság (Portability)  Kiterjeszthetőség (Extensibility) o Moduláris felépítés o Jól definiált interfészek o Unicode használata (kernel is) 11

12 Tervezési célok  Hordozhatóság (Portability)  Kiterjeszthetőség (Extensibility)  Megbízhatóság (Reliability) o Windows 3.0: közös címtér mindenkinek o Biztonsági szabványok támogatása 12

13 Tervezési célok  Hordozhatóság (Portability)  Kiterjeszthetőség (Extensibility)  Megbízhatóság (Reliability)  Teljesítmény (Performance) o 32 bites, preemptív, többszálú, újrahívható o Symmetric Multiprocessing (SMP) o Aszinkron I/O kezelés 13

14 Tervezési célok  Hordozhatóság (Portability)  Kiterjeszthetőség (Extensibility)  Megbízhatóság (Reliability)  Teljesítmény (Performance)  Kompatibilitás (Compatibility) o DOS és 16 bites Windows API támogatás o POSIX o OS/2 14

15 Application Programming Interface (API)  Kívülről milyen függvényeken, adatstruktúrákon keresztül érhető el egy alkalmazás  Pl. Google Maps API o GMap2, GDirections… o google.maps.GMap2: setCenter(), zoomIn()…  Operációs rendszer esetén: o tipikusan a rendszerhívások elérésére szolgál o POSIX: fopen(), fork(), select()… o Win32: CreateFile(), ReadFile()… o…o… 15

16 Többféle személyiség  Hogyan lehet Win32, POSIX és OS/2 API-ja is a Windowsnak?  Megoldás: környezeti alrendszer (environment subsystem) Alkalmazás 1 Alkalmazás 2 Windows alrendszer POSIX alrendszer Windows API POSIX API NT Kernel NT API 16

17 DEMO  Melyik alrendszerhez való? o cmd.exe o notepad.exe o smss.exe exetype.exe 17

18 Tartalom  Bevezető  Tervezési célok  Egyszerűsített architektúra  (Kevésbé) egyszerűsített architektúra 18

19 Egyszerűsített architektúra 19

20 Egyszerűsített architektúra Alapvető HW részletek elrejtése Egységes felület hal.dll Alapvető HW részletek elrejtése Egységes felület hal.dll 20

21 Egyszerűsített architektúra Kernel módú modulok Rétegzett strúktúra Fájlrendszer, hálózatkezelés is *.sys Kernel módú modulok Rétegzett strúktúra Fájlrendszer, hálózatkezelés is *.sys 21

22 Egyszerűsített architektúra Alap szolgáltatások Ütemezés, megszakításkezelés Multiprocesszoros szinkronizáció ntoskrnl.exe Alap szolgáltatások Ütemezés, megszakításkezelés Multiprocesszoros szinkronizáció ntoskrnl.exe 22

23 Egyszerűsített architektúra Operációs rendszer szolgáltatások Memória és folyamatkezelés OO szemlélet Biztonság, I/O szintén az ntoskrnl.exe-ben Operációs rendszer szolgáltatások Memória és folyamatkezelés OO szemlélet Biztonság, I/O szintén az ntoskrnl.exe-ben 23

24 Egyszerűsített architektúra Processor Access Mode CPU támogatás Védelem Kernelt a felhasználói folyamatoktól Felhasználói folyamatokat egymástól Processor Access Mode CPU támogatás Védelem Kernelt a felhasználói folyamatoktól Felhasználói folyamatokat egymástól 24

25 DEMO  Feladatkezelő  Teljesítmény- számlálók Felhasználói és védett módban eltöltött idő 25

26 Egyszerűsített architektúra Alapvető rendszerfunkciók Inicializálás, bejelentkezés, hitelesítés... Induláskor ezek indulnak el először Alapvető rendszerfunkciók Inicializálás, bejelentkezés, hitelesítés... Induláskor ezek indulnak el először 26

27 Egyszerűsített architektúra Háttérben futó folyamatok Hasonló, mint a UNIX daemon Pl.: DNS kliens, Indexelés, RPC... Háttérben futó folyamatok Hasonló, mint a UNIX daemon Pl.: DNS kliens, Indexelés, RPC... 27

28 Egyszerűsített architektúra Folyamatok felhasználói módú kezelése, állapottárolás Windows: csrss.exe Folyamatok felhasználói módú kezelése, állapottárolás Windows: csrss.exe 28

29 Egyszerűsített architektúra Alrendszer API hívásokat fordítják az Executive hívásaira Pl. Windows: kernel32.dll ReadFile() -> NtReadFile() Alrendszer API hívásokat fordítják az Executive hívásaira Pl. Windows: kernel32.dll ReadFile() -> NtReadFile() 29

30 Egyszerűsített architektúra GUI kernel módban fut (teljesítmény) Ablakkezés, rajzolás Grafikus eszközmeghajtók Pl. win32k.sys GUI kernel módban fut (teljesítmény) Ablakkezés, rajzolás Grafikus eszközmeghajtók Pl. win32k.sys 30

31 Munkamenet  Munkamenet (session)  Több felhasználó bejelentkezve egy gépen  0-s munkamenet: rendszerszolgáltatások 31

32 Windows rendszerhívás meghívása call ReadFile(…) call ZwReadFile do the operation Int 2E or SYSCALL or SYSENTER call ZwReadFile Saját alkalmazás ReadFile a Kernel32.dll-ben ZwReadFile az NtDll.dll-ben KiSystemService az NtosKrnl.exe-ben ZwReadFile az NtosKrnl.exe-ben Windows alrendszer specifikus Mindegyik alrendszer software interrupt UKUK System Service Dispatcher 32

33 DEMO  Windows API függvény o Pl. ReadFile o SDK-ban dokumentált  Rendszer szolgáltatás o Executive felhasználói módból hívható függvényei  Windows belső függvények o Csak védett módból hívható  Hívás követése: o alkalmazás → kernel32.dll → ntdll.dll o Dependency Walker eszköz Windows API használata 33

34 DEMO Sysinternals Proces Monitor eszközben: ReadFile() hívás 34

35 Windows 8: Windows Runtime (WinRT)  Még egy réteg jelenik meg 35 Forrás:

36 Windows RT (Windows on ARM)  Külön OS verzió, csak eszközzel együtt vehető o ~ „consumer device”  Új tervezési célok o Sokféle képességű eszköz o Minimális energia-használat o Integrált megoldás  Windows RT ≠ WinRT 36

37 (Kiegészítés: MinWin)  Monolitikus kernel „rendbe rakása” o Belső változtatások, refactoring o Függőségek felderítése és átszervezése o MinWin: minimális mag, ami önállóan bootolható  Látható eredmény: o kernel32.dll feldarabolása, „virtuális dll-ek” Pl. api-ms-win-core-file-l1-1-0.dll (L1 – layer 1) 37

38 Tartalom  Bevezető  Tervezési célok  Egyszerűsített architektúra  (Kevésbé) egyszerűsített architektúra 38

39 (Kevésbé) egyszerűsített architektúra 39 hardware interfaces (buses, I/O devices, interrupts, interval timers, DMA, memory cache control, etc., etc.) System Service Dispatcher Task Manager Explorer SvcHost.ExeWinMgt.ExeSpoolSv.Exe Service Control Mgr. LSASS Object Mgr. Windows USER, GDI File System Cache I/O Mgr Alrendszerek User Application Subsystem DLLs Rendszer folyamatokSzolgáltatásokAlkalmazások Original copyright by Microsoft System Threads User Mode Kernel Mode NTDLL.DLL Device & File Sys. Drivers WinLogon Session Manager SvcHost.exe POSIX (SUA) Windows DLLs Plug and Play Mgr. Power Mgr. Security Reference Monitor Virtual Memory Processes & Threads Local Procedure Call Graphics Drivers Kernel Hardware Abstraction Layer (HAL) (kernel mode callable interfaces) Configura- tion Mgr (registry) Windows

40 (Kevésbé) egyszerűsített architektúra 40 hardware interfaces (buses, I/O devices, interrupts, interval timers, DMA, memory cache control, etc., etc.) System Service Dispatcher Task Manager Explorer SvcHost.ExeWinMgt.ExeSpoolSv.Exe Service Control Mgr. LSASS Object Mgr. Windows USER, GDI File System Cache I/O Mgr Alrendszerek User Application Subsystem DLLs Rendszer folyamatokSzolgáltatásokAlkalmazások Original copyright by Microsoft System Threads User Mode Kernel Mode NTDLL.DLL Device & File Sys. Drivers WinLogon Session Manager SvcHost.exe POSIX (SUA) Windows DLLs Plug and Play Mgr. Power Mgr. Security Reference Monitor Virtual Memory Processes & Threads Local Procedure Call Graphics Drivers Kernel Hardware Abstraction Layer (HAL) (kernel mode callable interfaces) Configura- tion Mgr (registry) Windows Session Manager: munkamenetek kezelése Wininit: rendszer folyamatok indítása Winlogon: bejelentkezés, Ctrl+Alt+Del kezelés LSASS: Local Sercurity Authentication SubSystem, biztonság Service Control Manager: szolgáltatások elindítása, leállítása Session Manager: munkamenetek kezelése Wininit: rendszer folyamatok indítása Winlogon: bejelentkezés, Ctrl+Alt+Del kezelés LSASS: Local Sercurity Authentication SubSystem, biztonság Service Control Manager: szolgáltatások elindítása, leállítása

41 (Kevésbé) egyszerűsített architektúra 41 hardware interfaces (buses, I/O devices, interrupts, interval timers, DMA, memory cache control, etc., etc.) System Service Dispatcher Task Manager Explorer SvcHost.ExeWinMgt.ExeSpoolSv.Exe Service Control Mgr. LSASS Object Mgr. Windows USER, GDI File System Cache I/O Mgr Alrendszerek User Application Subsystem DLLs Rendszer folyamatokSzolgáltatásokAlkalmazások Original copyright by Microsoft System Threads User Mode Kernel Mode NTDLL.DLL Device & File Sys. Drivers WinLogon Session Manager SvcHost.exe POSIX (SUA) Windows DLLs Plug and Play Mgr. Power Mgr. Security Reference Monitor Virtual Memory Processes & Threads Local Procedure Call Graphics Drivers Kernel Hardware Abstraction Layer (HAL) (kernel mode callable interfaces) Configura- tion Mgr (registry) Windows Felhasználói bejelentkezés nélkül is futnak >150 alapból svchost : általános futtató folyamat szolgáltatásoknak Felhasználói bejelentkezés nélkül is futnak >150 alapból svchost : általános futtató folyamat szolgáltatásoknak

42 (Kevésbé) egyszerűsített architektúra 42 hardware interfaces (buses, I/O devices, interrupts, interval timers, DMA, memory cache control, etc., etc.) System Service Dispatcher Task Manager Explorer SvcHost.ExeWinMgt.ExeSpoolSv.Exe Service Control Mgr. LSASS Object Mgr. Windows USER, GDI File System Cache I/O Mgr Alrendszerek User Application Subsystem DLLs Rendszer folyamatokSzolgáltatásokAlkalmazások Original copyright by Microsoft System Threads User Mode Kernel Mode NTDLL.DLL Device & File Sys. Drivers WinLogon Session Manager SvcHost.exe POSIX (SUA) Windows DLLs Plug and Play Mgr. Power Mgr. Security Reference Monitor Virtual Memory Processes & Threads Local Procedure Call Graphics Drivers Kernel Hardware Abstraction Layer (HAL) (kernel mode callable interfaces) Configura- tion Mgr (registry) Windows Legtöbb program alrendszer DLL-eken keresztül használja az OS-t

43 (Kevésbé) egyszerűsített architektúra 43 hardware interfaces (buses, I/O devices, interrupts, interval timers, DMA, memory cache control, etc., etc.) System Service Dispatcher Task Manager Explorer SvcHost.ExeWinMgt.ExeSpoolSv.Exe Service Control Mgr. LSASS Object Mgr. Windows USER, GDI File System Cache I/O Mgr Alrendszerek User Application Subsystem DLLs Rendszer folyamatokSzolgáltatásokAlkalmazások Original copyright by Microsoft System Threads User Mode Kernel Mode NTDLL.DLL Device & File Sys. Drivers WinLogon Session Manager SvcHost.exe POSIX (SUA) Windows DLLs Plug and Play Mgr. Power Mgr. Security Reference Monitor Virtual Memory Processes & Threads Local Procedure Call Graphics Drivers Kernel Hardware Abstraction Layer (HAL) (kernel mode callable interfaces) Configura- tion Mgr (registry) Windows Executive függvények csonkjai (stub) Belső függvények az alrendszereknek Executive függvények csonkjai (stub) Belső függvények az alrendszereknek

44 (Kevésbé) egyszerűsített architektúra 44 hardware interfaces (buses, I/O devices, interrupts, interval timers, DMA, memory cache control, etc., etc.) System Service Dispatcher Task Manager Explorer SvcHost.ExeWinMgt.ExeSpoolSv.Exe Service Control Mgr. LSASS Object Mgr. Windows USER, GDI File System Cache I/O Mgr Alrendszerek User Application Subsystem DLLs Rendszer folyamatokSzolgáltatásokAlkalmazások Original copyright by Microsoft System Threads User Mode Kernel Mode NTDLL.DLL Device & File Sys. Drivers WinLogon Session Manager SvcHost.exe POSIX (SUA) Windows DLLs Plug and Play Mgr. Power Mgr. Security Reference Monitor Virtual Memory Processes & Threads Local Procedure Call Graphics Drivers Kernel Hardware Abstraction Layer (HAL) (kernel mode callable interfaces) Configura- tion Mgr (registry) Windows Rendszerhívások elkapása Paraméter ellenőrzés Továbbhívás a megfelelő komponensbe Rendszerhívások elkapása Paraméter ellenőrzés Továbbhívás a megfelelő komponensbe

45 (Kevésbé) egyszerűsített architektúra 45 hardware interfaces (buses, I/O devices, interrupts, interval timers, DMA, memory cache control, etc., etc.) System Service Dispatcher Task Manager Explorer SvcHost.ExeWinMgt.ExeSpoolSv.Exe Service Control Mgr. LSASS Object Mgr. Windows USER, GDI File System Cache I/O Mgr Alrendszerek User Application Subsystem DLLs Rendszer folyamatokSzolgáltatásokAlkalmazások Original copyright by Microsoft System Threads User Mode Kernel Mode NTDLL.DLL Device & File Sys. Drivers WinLogon Session Manager SvcHost.exe POSIX (SUA) Windows DLLs Plug and Play Mgr. Power Mgr. Security Reference Monitor Virtual Memory Processes & Threads Local Procedure Call Graphics Drivers Kernel Hardware Abstraction Layer (HAL) (kernel mode callable interfaces) Configura- tion Mgr (registry) Windows Kernel és meghajtók szálai Feladatok, amihez várni kell Ezek is felfüggeszthetőek! „System” folyamatban a Feladatkezelőben Pl. felszabadított memórialapok nullázása (zero page thread) Kernel és meghajtók szálai Feladatok, amihez várni kell Ezek is felfüggeszthetőek! „System” folyamatban a Feladatkezelőben Pl. felszabadított memórialapok nullázása (zero page thread)

46 (Kevésbé) egyszerűsített architektúra 46 hardware interfaces (buses, I/O devices, interrupts, interval timers, DMA, memory cache control, etc., etc.) System Service Dispatcher Task Manager Explorer SvcHost.ExeWinMgt.ExeSpoolSv.Exe Service Control Mgr. LSASS Object Mgr. Windows USER, GDI File System Cache I/O Mgr Alrendszerek User Application Subsystem DLLs Rendszer folyamatokSzolgáltatásokAlkalmazások Original copyright by Microsoft System Threads User Mode Kernel Mode NTDLL.DLL Device & File Sys. Drivers WinLogon Session Manager SvcHost.exe POSIX (SUA) Windows DLLs Plug and Play Mgr. Power Mgr. Security Reference Monitor Virtual Memory Processes & Threads Local Procedure Call Graphics Drivers Kernel Hardware Abstraction Layer (HAL) (kernel mode callable interfaces) Configura- tion Mgr (registry) Windows Az Executive komponensei

47 DEMO Alap OS komponensek:  NTOSKRNL.EXE: Executive és a kernel  HAL.DLL: Hardware abstraction layer  NTDLL.DLL: Executive hívások csonkjai, belső függvények Rendszer folyamatok:  SMSS.EXE: Session manager process  WINLOGON.EXE: Logon folyamat  SERVICES.EXE: Service controller process  LSASS.EXE: Local Security Authority Subsystem Windows alrendszer, ablakkezelés:  CSRSS.EXE: Windows subsystem process  WIN32K.SYS: USER and GDI kernel-mode components  KERNEL32/USER32/GDI32.DLL: Windows subsystem DLLs Process Explorer 47

48 Windows verziók  Ugyanaz a kernel forrás skálázódik o 1 CPU, 1 GB memóriától (Starter) o 64 CPU, 4 TB memóriáig (Server Datacenter Edition)  Registry beállítástól függ: o Szerver vagy munkaállomás o Szerver típusa  Különbségek o Memóriakezelés, ütemezés alap értékei o Licencelési korlátok 48

49 További témák a félév folyamán  Windows hibakeresés  Windows ütemezés  Windows memóriakezelése  Windows biztonsági alrendszere  (Nem Windows specifikus) Virtualizáció 49

50 Tools to dig in..  Windows SDK o Platform SDK,.NET Framework SDK utódja o C/C++ header, API leírás, fordítók  Windows Driver Kit Windows Driver Kit o Windows DDK utódja o C/C++ header, dokumentáció, statikus ellenőrzők  Windows Debugging Tools Windows Debugging Tools o User és kernel módú debugger  Sysinternals Sysinternals o Mark Russinovich cége (MS megvette) o Process Explorer, Filemon, liveKd...  Windows Support Tools, Windows Resource Kit ... 50

51 Ajánlott házi feladat  Töltsük le a Sysinternals Process Explorert o Nézzük meg milyen folyamatok futnak o Ami nem ismerős, keressünk rá  Írjunk egy kis Windows API-t használó programot o Beolvas egy fájlt o Windows SDK-ban megtalálható a C fordító és az API leírás  Lásd a kapcsolódó virtuális laborokat! 51

52 Olvasnivaló  Mark E. Russinovich, David A. Solomon, Alex Ionescu: Windows Internals, 6th Edition, Microsoft Press, o Minden a Windows belső felépítéséről  Mark Russinovich: Windows 7 webcastsWindows 7 webcasts  MSDN Blogs: Building Windows 8Building Windows 8  Micskei Zoltán: A Windows operációs rendszer, segédlet (Mérés labor 4.)A Windows operációs rendszer 52


Letölteni ppt "Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A Windows operációs rendszer dr. Micskei Zoltán"

Hasonló előadás


Google Hirdetések