Cunoaște Intuit, facilități de curs
Rezumat: Cursul descrie caracteristicile funcționării obiectelor de management - una dintre componentele-cheie ale Windows. Obiectele sunt utilizate pe scară largă pentru a oferi acces la resurse care trebuie să fie protejate, apel, cota și așa mai departe .. Printre o colecție de obiecte izolate obiecte nucleu. Descris mânere obiect care sunt responsabile pentru obiectul legătură cu cererea. Aspectele legate de denumire a obiectelor de spațiu de nume și obiecte de legătură cu alte spații de nume. Pentru a gestiona o mare a organizat o bază de date centrală specială - registru
Pentru a lucra cu importante resurse de sistem Windows, acesta creează obiecte, gestionate de către managerul de obiect. Când aplicația se deschide fișierul. creează un flux sau un semafor, se va ocupa (mâner) al obiectului corespunzător (vezi. fig. 4.1). De exemplu, după ce operatorul de software
generarea semaforul este descriptor returnat hSemaphore cerere necesară pentru activitatea ulterioară cu acest semafor.
Fig. 4.1. Creați obiect „semaphore“ aplicație
Această secțiune oferă o scurtă descriere a modului în care funcțiile managerului de obiect. Cu obiectele trebuie să facă față pe tot parcursul cursului. Obiecte - concept abstract, care este utilizat pe scară largă în Windows pentru a controla accesul la resursele sistemului.
Prezența obiectelor este un avantaj clar al sistemului. În primul rând, este o singură interfață la toate resursele de sistem și structuri de date, cum ar fi procese, fire, semafoarele, etc. obiecte Naming si accesul la acestea sunt efectuate de aceeași schemă. Utilizarea obiectelor oferă Microsoft posibilitatea de a actualiza funcționalitatea sistemului, fără a afecta interfața de programare a aplicațiilor. În al doilea rând, este foarte convenabil în ceea ce privește securitatea sistemului. Fiecare obiect are o listă a drepturilor de acces, care este verificat de fiecare dată când aplicația creează un mâner la obiect. În consecință, toate controalele legate de protecția, poate fi realizată într-un singur modul - manager de obiect (în conformitate cu cerințele de siguranță), cu garanția că nimeni nu proces nu le poate evita. În cele din urmă, este ușor de a organiza un acces comun la obiecte, este ușor de a urmări obiecte care nu mai sunt folosite, etc.
Obiectele sunt prezente în aproape toate componentele sistemului, în special în cazul în care există date pe care doriți să o partajați, proteja, apel sau pune la dispoziție. De exemplu, obiectele sunt realizate de software și hardware întrerupe, precum și multe alte funcții de nucleu. Unele obiecte sunt disponibile prin apeluri aplicații Win32 personalizate. Prin urmare, este numit uneori sistemul Windows orientate pe obiect -, astfel încât accesul la resursa este posibilă numai prin metodele obiectului corespunzător (incapsularea datelor). Cu toate acestea, în acest sistem de nici o moștenire și polimorfism. Prin urmare, Windows nu poate fi considerat un obiect orientat în sensul strict al cuvântului.
obiecte nucleu
Faptul că o colecție de obiecte formează o structură stratificată. Kernel-ul suportă obiectele de bază sunt de două tipuri: Object Manager (.. Evenimente, mutex, semafoarelor, fluxul de bază, cronometre, etc.) și de control (... procesele de întrerupere DPC APC, profile, etc.) Detaliile acestor intranucleari obiecte descrise în [Russinovitch] .
Obiectivele de mai sus sunt de bază sistem de executare obiecte, fiecare dintre care incapsuleaza una sau mai multe dintre obiectele nucleu. Obiecte sistem de execuție proiectat pentru managementul memoriei, proceselor și comunicare interprocess. Acestea sunt exportate în eliminarea de aplicații personalizate prin intermediul funcției de Win32. Acestea includ elemente cum ar fi: fluxul de proces. fișier deschis. semaphore, mutex. jeton de acces și un număr de alte persoane. O listă completă poate fi văzut în MSDN. Aceste obiecte sunt numite obiecte nucleu în Ghidul de programare.
Externă, spre deosebire de obiectele nucleu (obiecte sistem de execuție) de utilizator și GDI obiecte este disponibil în primele atribute de protecție, care sunt unul dintre parametrii pentru a crea funcții nucleu obiect. Mai mult, aceste obiecte nucleu (obiecte de sistem executive) vor fi denumite simplu ca obiecte.
obiecte de conținut este disponibil doar pentru kernel-ul, aplicația nu se poate modifica direct. Accesul la obiecte poate fi realizată doar prin metodele sale funcționale (încapsulare datelor), care inițiază un apel la Win32-unele funcții de bibliotecă.
Structura obiectului. metode de obiect
Fig. 4.2. Structura obiectului
Așa cum se arată în Fig. 4.2. fiecare obiect are o informație antet comună tuturor obiectelor, precum și date specifice obiectului. De exemplu, în câmpul antet conține o listă de procese care au deschis obiectul. precum și protecția informațiilor care definește cine și modul în care se poate folosi obiectul.
metode de obiect
Compozitia componentelor incluse atribut metode tipul obiectului - indicii procedurilor interne pentru a efectua operațiuni standard. Metodele sunt numite Object Manager pentru a crea și de a distruge obiecte, de deschidere și închidere a obiectului descriptor, modificați setările de securitate. Sistemul vă permite să creați dinamic noi tipuri de obiecte. În acest caz, se presupune înregistrarea metodelor sale în Object Manager. De exemplu, metoda deschisă se numește ori de câte ori este creat sau deschis un obiect și a creat noul descriptor.
mânere obiect
Din cei 64 de biți de 29 biți ai descriptorul sunt folosite pentru a se referi la blocul de memorie al nucleului obiectului, 3 - pentru steaguri și restul de 32 - ca o mască de permisiuni. permisiuni Masca format în timpul creării sau descoperirea obiectului atunci când un permisiuni verifica. Astfel, descriptorul obiect - procesul de afiliere, care a creat obiectul. În mod implicit, nu poate fi transferat într-un alt proces. Cu toate acestea, sistemul oferă posibilitatea de a gestiona duplicarea și se transferă la un alt proces într-un mod special (a se vedea. Secțiunea de mai jos „Schimbul de obiecte“ și partea a IV „Securitate“).
Fig. 4.3. Obiecte și descriptorii acestora
Win32-funcție care creează un obiect. nu întoarce descriptor aplicație în sine, iar indicele în tabelul de descriptori, adică numărul mic: 1,2 tip, mai degrabă decât pe 64 de biți (vezi Figura 4.3 ..). Ulterior această valoare este trecut la o funcție care ia un descriptor al obiectului ca argument. O astfel de funcție este funcția CloseHandle. a cărui misiune - pentru a închide instalația. Pentru a evita pierderi de memorie este întotdeauna recomandat pentru a închide instalația. în cazul în care nu mai este necesară. Cu toate acestea, la sfârșitul procesului de lucru, sistemul se închide toate obiectele sale. Astfel, structura de bază a obiectelor sunt disponibile doar pentru kernel-ul, aplicația nu poate găsi în mod independent, aceste structuri în memorie și să modifice în mod direct conținutul lor.
Atribuirea de nume de obiecte. resurse partajate
Fig. 4.4. Window winobj utilitate