Архітектура Windows: опис, види, структура

Диспетчер об’єктів

Диспетчер об’єктів (внутрішнє ім’я Ob) – це виконавча підсистема, через яку повинні пройти всі інші підсистеми, особливо системні виклики, щоб отримати доступ до ресурсів Windows NT, що, по суті, робить її службою інфраструктури управління ресурсами. Диспетчер об’єктів використовується для зменшення дублювання функціональних можливостей управління ресурсами у інших виконавчих підсистемах, що може призвести до помилок і ускладнити розробку Windows NT.

Для даного менеджера кожен ресурс є об’єктом, незалежно від того, є він фізичною (таким як файлова система або периферійний пристрій) або логічним (наприклад, файл). Кожен об’єкт має структуру або тип, про який повинен знати Ob.

Створення об’єкта в архітектурі ОС сімейства Windows являє собою процес, що протікає в два етапи – створення і вставка. Створення викликає виділення порожнього об’єкта і резервування будь-яких ресурсів, необхідних диспетчером, таких як (необов’язково) ім’я в просторі імен. Якщо воно було успішним, підсистема, відповідальна за створення, заповнює порожній об’єкт. Нарешті, якщо підсистема вважає ініціалізацію успішною, вона дає вказівку диспетчера об’єктів вставити об’єкт, що робить його доступним через його ім’я або файл cookie, що називається дескриптором. З цього моменту час існування об’єкта обробляється менеджером, і підсистема повинна підтримувати його в робочому стані, поки Ob не повідомить про його видалення.

Дескриптори – це ідентифікатори, які представляють посилання на ресурс ядра через непрозоре значення. Точно так само відкриття об’єкта через його ім’я піддається перевіркам безпеки, але дію через існуючий відкритий дескриптор обмежено лише рівнем доступу, замовленим, коли об’єкт був відкритий або створений.

Типи об’єктів визначають процедури та будь-які дані, специфічні для нього. Таким чином, Ob дозволяє Windows NT бути об’єктно-орієнтованої операційної системою, оскільки типи об’єктів можна розглядати як поліморфні класи, що визначають об’єкти. Більшість підсистем, однак, з помітним винятком у диспетчері вводу-виводу, покладаються на реалізацію за промовчанням для всіх процедур.

Кожен примірник створюваного об’єкта зберігає своє ім’я, параметри, які передаються в функцію створення об’єкта, атрибути безпеки і покажчик на його тип.