Знайте, Intuit, лекции съоръжения

Анотация: Целта на лекцията описва характеристиките на функциониране на управление на обекти - един от ключовите компоненти на Windows. Обектите са широко използвани за предоставяне на достъп до ресурси, които трябва да бъдат защитени, да се обадите акции и така нататък .. Сред колекция от предмети, изолирани ядрото обекти. Описан манипулатори, които са отговорни за връзка обект на заявлението. Въпросите на именуване на пространство от имена на обекти и предмети с връзки с други именни пространства. За да управлявате голям организирана специална централна база данни - регистър

За да работите с важни системни ресурси на Windows, тя създава обекти, управлявани от управителя на обекта. Когато приложението се отвори файла. създава поток или семафор, тя ще се справят (дръжката) на съответния обект (вж. фиг. 4.1). Например, след като производителят на софтуер

генериране на семафора се връща ЕВРОВОК hSemaphore изисква заявление за последвалата работа с този семафор.

Знайте, Intuit, лекции съоръжения


Фиг. 4.1. Създаване на обекта приложение "семафор"

Този раздел предоставя кратко описание на това как функционира обект мениджър. С обектите трябва да се изправи по време на курса. Предметите - абстрактно понятие, което се използва широко в Windows, за да контролирате достъпа до системните ресурси.

Наличието на обекти е ясно предимство на системата. На първо място, това е един общ интерфейс за всички системни ресурси и структури от данни, като процеси, конци, семафори и т.н. Наименуване на обекти и достъпа до тях се извършват от една и съща схема. Използване на обекти дава Microsoft възможността за актуализиране на функционалността на системата, без да засягат интерфейса за приложно програмиране. На второ място, това е много удобно от гледна точка на сигурността на системата. Всеки обект има списък на правата за достъп, които се проверяват всеки път, приложението създава манипулатор на обекта. Съответно, всички проверки, свързани със защитата, могат да се извършват в един модул - обект мениджър (в съответствие с изискванията за безопасност), с гаранция, че никой процес не може да ги избегне. Най-накрая, че е лесно да се организира съвместна достъп до обекти, лесно е да се проследяват обекти, които вече не се използват, и т.н.

Обектите се намират в почти всички компоненти на системата, особено, когато има данни, които искате да споделите, защити, обадете се или предоставят. Например, обекти са реализирани от софтуерни и хардуерни прекъсвания, както и много други функции на ядрото. Някои обекти са достъпни чрез потребителски приложения Win32 разговори. Затова понякога се нарича обектно-ориентираното система Windows - така че достъп до този ресурс е възможно само чрез методите на съответния обект (капсулиране на данни). Въпреки това, в тази схема не наследяването и полиморфизма. Ето защо, прозорците не може да се счита за обектно-ориентиран в тесния смисъл на думата.

ядрото обекти

Фактът, че колекция от предмети образува слоеста структура. Ядрото поддържа основните обекти са два вида: мениджъра обект (.. събития, mutexes, семафори, сърцевина поток, таймери и т.н.) и контрола (... DPC АРС прекъсване процеси, профили и т.н.) Подробностите за тези Вътрешноядрен обекти, описани в [Russinovitch] ,

Горепосочените цели се ядро ​​система обекти изпълнение, всеки от които е представен един или повече от обектите на ядрото. Обекти система за изпълнение, предназначен за управление на паметта, обработва и комуникация между процесите. Те се изнасят за обезвреждане на потребителски приложения чрез функцията за Win32. Те включват елементи като: процес поток. отворен файл. семафор, мутекс. достъп знак и редица други. Пълният списък може да бъде видян в MSDN. Тези обекти се наричат ​​ядрото обекти в Ръководството за програмиране.

Външно за разлика от ядрото обекти (предмети система за изпълнение) на потребителя и GDI обекти се предлага в първите признаци за защита, които са един от параметрите за създаване на функции на обектите на ядрото. Освен това, тези обекти (ядрото на изпълнителната система обекти) ще бъдат посочени само като обекти.

обекти на съдържание единствено на ядрото, приложението не може да го промените директно. Достъпът до обектите може да бъде постигнато само чрез своите функционални методи (капсулиране на данни), който инициира повикване към някои Win32 библиотечни функции.

Структурата на обекта. методи обект

Знайте, Intuit, лекции съоръжения


Фиг. 4.2. Структурата на обекта

Както е показано на фиг. 4.2. всеки обект има информация за глава, общи за всички обекти, както и конкретни данни за обекта. Например, в областта на глава съдържа списък на процеси, които са отворени на обекта. и защита на информацията, която определя кой и как може да използва обекта.

методи обект

Съставът на компонентите, включени методи тип атрибут на обекта - указатели към вътрешни процедури за извършване на стандартни операции. Методи се наричат ​​мениджъра на обекта, за да се създаде и унищожи предмети, отваряне и затваряне на обекта ЕВРОВОК, можете да промените настройките за сигурност. Системата дава възможност за динамично създаване на нови видове обекти. В този случай се приема, регистрация на неговите методи в мениджъра на обекта. Например, отворен метод се нарича, когато се създава или се отвори обект и създаде новата си ЕВРОВОК.

манипулатори

От 64 бита на 29 бита на дескриптор се използва за обозначаване на блока на паметта на ядрото на обект, 3 - за флагове, а останалите 32 - като маска разрешения. Маска разрешения, образувани по време на създаването или откриването на обекта, когато даден разрешения проверяват. По този начин, обект дескриптора - процес на осигуряване, който е създал обекта. По подразбиране, то не може да бъде прехвърлено на друг процес. Въпреки това, системата дава възможност да се справят с дублиране и го предава на друг процес по специален начин (вж. По-долу раздел "Споделяне на обекти" и част IV "Сигурност").

Знайте, Intuit, лекции съоръжения


Фиг. 4.3. Обекти и техните описания

Win32-функция, която създава обект. не се върне приложение се дескриптор и индекса в таблицата на дескриптори, т.е. малък брой: 1,2 тип вместо 64-битов (виж Фигура 4.3 ..). Впоследствие тази стойност се предава на функция, която отнема част от описание на обекта, като аргумент. Една такава функция е функция CloseHandle. чиято мисия - за закриването на дома. За да се избегне изтичане на памет винаги е препоръчително да се затвори съоръжението. ако това вече не е необходима. Въпреки това, в края на работния процес, системата затваря всички свои обекти. По този начин, структурата на ядрото на обекти са достъпни само за ядрото, заявката не може самостоятелно да намерите тези структури в паметта и променяте съдържанието им директно.

Наименуване на обекти. споделени ресурси

Знайте, Intuit, лекции съоръжения


Фиг. 4.4. Прозорец полезност winobj