1 / 44

Struktura OS MS Windows

Struktura OS MS Windows. Načrtovan za kot “Multiple personality OS”. Arhitektura Server2003. System Processes. Applications. Environment Subsystems. Services. Service Controller. Alerter. Interix. User Application. WinLogon. RPC. Win32. Event Logger. Session Manager. User Mode.

ranger
Télécharger la présentation

Struktura OS MS Windows

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Struktura OS MS Windows

  2. Načrtovan za kot “Multiple personality OS”

  3. Arhitektura Server2003 System Processes Applications Environment Subsystems Services Service Controller Alerter Interix User Application WinLogon RPC Win32 Event Logger Session Manager User Mode Subsystem DLLs System Threads NTDLL.DLL Executive API Kernel Mode I/O Manager PnP/PowerManager Processes & Threads Security Virtual Memory Cache Manager File systems Object management / Executive RTL Device drivers Kernel Hardware Abstraction Layer (HAL) Hardware interfaces (read/write port, timers, clocks, DMA, cache control, etc.)

  4. Arhitektura Winows xp

  5. Novosti v Windows Vista?

  6. Novosti v Windows Vista?

  7. Načrtovan v plasteh (kot hiša: temelji, nadstropje, nadstropje,..) Abstrakcije (stvari lahko uporabljamo brez razumevanja implementacije) Objektna usmerjenost (vse so objekti) Odjemalec-strežnik(most med uporab. režimom in režimom jedra deluje tako) Zgradba Windows NT

  8. Zgornja plast operacijskega sistema Nudi funkcije “generičnega operacijskega sistema” (“servise”) Tvorba in brisanje procesov in niti Upravljanje s pomnilnikom Iniciacija in zaključevanje vhodno izhodnih zahtevkov Medprocesna komunikacija varnost Pisan v jeziku C Teče v režimu jedra (“privileged”, ring 0) Veliko vmesnikov do servisov izvajalnika ni dokumentiranih Windows Executive (izvajalnik)

  9. Spodnje plasti operacijskega sistema Implementira funkcije, odvisne od procesorja (x86, Alpha, ...) Implementira tudi procesorsko neodvisne funkcije, ki so zelo blizu procesorsko odvisnim Glavne storitve Čakanje niti,razvrščanje in preklapljanje konteksta Dispečerske storitve za izjeme in prekinitve Sinhronizacijski primitivi operacijskega sistema Nekatere od teh storitev lahko vidimo tudi v uporabniškem režimu Ni klasično “mikrojedro” Souporablja naslovni prostor z drugimi komponentami jedra Windows Kernel (jedro)

  10. Knjižnica podprogramov za jedro in gonilnike naprav Izolira jedro in izvajalnik od posebnosti platforme Gonilnikom predstavlja enak model za vhodno-izhodne naprave Abstrakcije HAL: Sistemski časovniki, koherenca medpomnilnikov, Podpora SMP, prioritete prekinitev aparaturne opreme HAL tudi implementira nekatere funkcije, ki jih vidimo v izvajalniku in jedru HAL - Hardware Abstraction Layer(Plast abstrakcije aparaturne opreme)

  11. Kodo izvajamo v režimu jedra zaradi treh razlogov: 1. Zahtevki iz režima uporabnika (sistemski klici) Preko dispečerskega mehanizma za sistemske servise Koda v režimu jedra teče v kontekstu niti, ki to zahteva 2. Prekinitve iz perifernih naprav V režimu jedra obravnavamo prekinitve, tako kot pasti NT-ima “prekinitveni dispečer”, ki kliče prekinitvene servisne rutine (ISR) ISR teče v kontekstu prekinjene niti (takoimenovani “arbitrary thread context”) ISR pogosto zahteva izvajanje “DPC ” rutine, ki prav tako teče v režimu jedra 3. Posvečene niti v režimu jedra Nekatere sistemske niti obstajajo ves čas v režimu jedra Razvrščane in prekinjane so kot druge niti Izvajanje v režimu jedra ISR ... Interrupt Service Routine DPC...Deferred procedure Call

  12. Nivoji prekinitvenih zahtevkov Windows XP

  13. Jedro zagotavlja obravnavo pasti, če pride do aparaturnih prekinitev ali programskih izjem. Izjeme, ki jih ne more obravnavati “rokovalnik pasti” (trap handler), obravnava dispečer izjem (exception dispatcher). Dispečer prekinitev kliče ali ustrezno prekinitveno servisno rutino (ISR), ali neko interno rutino jedra. Za večprocesorsko medsebojno izobčenje uporablja jedro mehanizem “spin lock”, ki ga pomni v glavnem pomnilniku. Jedro — rokovanje s pastmi In software engineering, a spinlock is a lock where the thread simply waits in a loop ("spins") repeatedly checking until the lock becomes available. As the thread remains active but isn't performing a useful task, the use of such a lock is a kind of busy waiting. Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread blocks (aka "goes to sleep")

  14. Spin lock sinhronizacija Spin Locks (R/W-zaklepi): Sistemski vir Spin Lock Procesor 1 Proces 1 Procesor 2 Proces 2 Busy Waiting • Le en proces si lahko lasti Spin lock • Drugi procesi so v stanju Busy-Waiting Blokiranje procesov; Čakalne vrste / Semaforji

  15. API (Application Programming Interface) Library DLL (Dynamic Link Library) Nekaj definicij

  16. Application Programming Interface Skupina vnaprej pripravljenih programskih funkcionalnosti in orodij za gradnjo programskih aplikacij. APIs lajša razvoj programov tako, da programerju nudi gradbene bloke za tvorbo kompleksnih programov. API

  17. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Abeceda Analogija API:jezik in OS Članki Subjekt povedek predmet Knjige Velike začetnice apple apple jabolko Cat Vse besede morajo imeti samoglasnik Cat mačka woman woman rada Pravila za ločila Spletne strani is is jesti Pravila za tvorbo besed Besede Slovnica Pisanje Native API (Low-level API) Executive Services Win32 API (High-level API) Aplikacije Microkernel

  18. Windows XP daje na voljo dva glavna API: Win32 API, ki omogoča programerjem torbo Windows programov v uporabniškem režimu. “Native API”, ki omogoča programom in servisom v uporabniškem režimu izvajanje nalog v jedru. Programerji tega vmesnika ne uporabljajo (veliko), pač pa ga uporablja Win32 API. Ker vsi pogramerji uporabljajo ta vmesnika, imajo vsi programi enoten izgled. “Windows API” so shranjeni v knjižnicah Še o API

  19. Windows uporabljajo posebno obliko programskih knjižnic, ki ji pravimo DLL (Dynamic Link Libraries) DLL je knjižnica izvršljivih funkcij ali podatkov, ki jih lahko uporabljamo v Windows aplikacijah. Primeri: user32.dll, kernel32.dll DLL nudijo eno ali več funkcij, do katerih dostopa program tako, da tvori do njih “link”. Beseda“Dynamic” pomeni, da link tvorimo kadarkoli potrebujemo tako funkcijo ali podatke (torej med izvajanjem programa) nameesto da bi bila funkcija povezana že v času priprave programa. DLLs lahko vsebujejo zgolj podatke, na primer ikone (n.pr. shell32.dll), fonti, tekst, in podobno. DLL podaljški so običajno; .dll, lahko pa tudi .sys, .fon, .drv, itd. Knjižnice (Libraries)

  20. DLLs lahko sočasno uporablja več aplikacij. Iste funkcionalnosti ni potrebno večkrat zapisovati. Skupna koda je v DLL Primer: funkcija CreateWindow( ) vuser32.dll Nekatere DLLs sistema Windows XP so na voljo za poljubne Windows aplikacije. Samo v direktoriju \winnt najdemo preko 2,000 DLLs. Večina DLL operacijskega sistema je v \winnt\system32 Druge DLLs so pisane za posamezne aplikacije in so nemeščene skupaj z njimi Spellcheckerv MS Office je isti za Word, Excel, Power Point, itd. DLL that s to funkcionalnostjo je msp232.dll. Še o knjižnicah DLL

  21. Windows API so shranjeni v knjižnicah. Imamo 4 glavne datoteke s knjižnicami: Native API (funkcije na nivoju jedra) so shranjene v datoteki ntdll.dll. Knjižnice Win32 API uporabljajo to za delo z aparaturno opremo Win32 API je razdeljen v 3 datoteke: kernel32.dll - File I/O (CreateFile( )), upravljanje z nitmi ipd. user32.dll - Window (n.pr. CreateWindow( )) in funkcije za posredovanje obvestil o dogodkih (na primer o klikih z miško) gdi32.dll – Funkcije za risanje oken, ki jih vidimo na zaslonu (n.pr. LineTo( )) API in DLL

  22. Slika celote… Win 32-bit App Win 32-bit App Win 32-bit App Win 32-bit App Win32 Subsytem (Win32 API) User Mode Kernel Mode Executive Services Security Virtual Plug and Window I/O IPC Process Power Reference Memory Play Manager Manager Manager Manager Manager Monitor Manager Manager and GDI Graphics Object Manager File Device Systems Drivers Device Drivers Microkernel Hardware Abstraction Layer (HAL) Aparaturna oprema ...postane sedaj bolj smiselna

  23. Primer – Odpiranje datoteke v Notepad.exe

  24. 177 drugih knjižnic Notepad.exe – odpiranje datoteke 1 proces - 4 ločene niti kernel32.dll shlwapi.dll comctl32.dll Notepad.exe shell32.dll kernel32.dll comdlg32.dll ntdll.dll user32.dll gdi32.dll

  25. NTarhitektura naj bi zagotavljala stabilnost, varnost in skalabilnost OS je sestavljen iz plasti, vsaka plast nudi servise plasti nad njo 2 najbolj pomembni plasti sta režim jedra in režim uporabnika Le malo programom je dovoljen neposreden dostop do aparaturne opreme – kar zagotavlja stabilnost Programerji oziroma programi dostopajo do nizko nivojske funkcionalnosti preko aplikacijskih uporabniških vmesnikov (API), ki so pomnjeni v datotekah DLL Povzetek

  26. Kot uporabnik: Bodimo pozorni na datoteke DLL na svojem računalnku. Ne brišimo jih, če ne vemo,čemu služijo. Nekatere so souporabljene Pazimo, katere DLL nameščamo na sistem in kje bodo. Kot razvijalec: Kot razvijalec Windows aplikacij bomo verjetno morali vedeti kaj več o Win32 API Kaj sedaj?

  27. Some key windows 2000 files mode they run in number of exported function calls main contents of each file Calls in win32k.sys not formally exported not called directly Podsistemi

  28. Podsistemi in klic lokalne procedure

  29. LPC prejema zahtevke odjemalca in jih posreduje strežnemu procesu na istem računalniku. Na ta način zahtevamo storive od različnih NT podsistemov. Ko tvorimo LPC kanal, moramo specificirati enega od treh tipov posredovanja sporočil. Prvi tip je za kratka sporočila (do 256 bytov). Čakalno vrsto sporočila uporabimo za vmesno pomnenje. Sporočila so kopirana od enega procesa k drugemu. Drugi tip preprečuje kopiranje obsežnih sporočil tako, da za kanal tvorimo skupen objekt s segmentom pomnilnika in kažemo nanj. Tretja metoda je “hiter” LPC, ki ga uporabljamo za dele grafičnega prikazovanja s podsistemim Win32. Klic lokalne procedure (Local Procedure Call)

  30. Okoljski podsistemi

  31. Podsistem Win32

  32. Podrobnosti podsistema Win32 Konzola Client Server Runtime (CSR) Subsystem Funkcije operacijskega sistema User Modus Kernel Modus WindowManager Servisi Win32k Executive Graphics Device Interface (GDI) Graphics Device Driver Microkernel HAL

  33. Razmerje med Win32 aplikacijo in Win32 podsistemom WIN32 Aplikacija Win32 Podsistem Klic procedure Win 32 DLL User Modus Pakiranje Kernel Modus Sistemski servisi NT Executive Objekt Manager Varnostni monitor Proces- Manager Local Procedure Call Upravnik Virtualnega pomnilnika I/O Manager Kernel

  34. Ležijo na nivoju uporabniškega režima. Omogočajo izvajanje programov, ki so bili razviti za druge operacijske sisteme. NT uporablja podsistem Win32 kot glavno izvajalno okolje. Win32 potrebujemo za zagon vseh procesov. Nudi tudi zmožnost uporabe tipkovnice, miške in grafičnega prikazovalnika. Okolje MS-DOS je včasih predstavjalo “virtual dos machine” (VDM), V novejših verzijah so ga opustili. Okoljski podsistemi

  35. Okoljski podsistemi

  36. Rokuje s procesi (tvorba, zagon, zaustavitev, sprememba prioritet) Morebitne relacije oče-otrok oziroma hierarhije procesov so prepuščene posameznim okoljskim podsistemom, ki si lastijo te procese Ne opravlja funkcije razvrščevalnika procesov Process Manager

  37. Nadzoruje večino vhodno izhodnih operacij sistema Na primer: Omrežne komunikacije Datotečni vhod- izhod Ne nadzoruje izhoda grafičnega uporabniškega vmesnika IO Manager

  38. Upravnik vhoda in izhoda

  39. Objektno usmerjena narava NT omogoča uporabo enotnega mehanizma za validacijo dostopnosti do vseh entitet sistema v času izvajanja. Kadarkoli nek proces odpre ročico nekega objekta, preveri varnostni monitor procesov varnostni žeton in seznam dostopnosti (ACL, access control list) objekta ter ugotavlja, ali proces lahko izvede dano operacijo z objektom. Security Reference Monitor

  40. Varnostni model Windows NT

  41. Tvorba, spreminjanje in brisanje objektov sistema (na pr. Datoteke, vrata, tiskalniki,..) Object Manager

  42. XP uses objects for all its services and entities; the object manger supervises the use of all the objects. Generates an object handle Checks security. Keeps track of which processes are using each object. Objects are manipulated by a standard set of methods, namely create, open, close, delete, query name, parse and security. Upravnik objektov (Object Manager)

  43. The NT executive allows any object to be given a name, which may be either permanent or temporary. Object names are structured like file path names in MS-DOS and UNIX. NT implements a symbolic link object, which is similar to symbolic links in UNIX that allow multiple nicknames or aliases to refer to the same file. A process gets an object handle by creating an object by opening an existing one, by receiving a duplicated handle from another process, or by inheriting a handle from a parent process. Each object is protected by an access control list. Executive — imenovanje objektov

More Related