Об'єктний Менеджер (внутрішнє ім'я Ob) це підсистема, реалізована як частина шару Executive Windows, яка керує ресурсами Windows. Кожен ресурс, який з'являється як логічний об'єкт, належить до простору імен (namespace) для категоризації. Ресурси можуть бути фізичними пристроями, файлами або папками томів, записами реєстру або навіть запущеними процесами. Всі об'єкти, що представляють ресурси, мають властивість Object Type, також інші метадані про ресурс. Об*єктний Менеджер — це розділений (спільний) ресурс, і всі підсистеми, які мають справи з ресурсами мають проходити через нього.
Архітектура
Об'єктний менеджер — це централізований ресурсний посердник в лінійці операційних систем Windows NT, який слідкує за ресурсами, виділеними для процесів. Він є ресурс-агностичним, і може керувати будь-яким типом їх, включно з пристроями і файловими дескрипторами (гендлами). Всі ресурси представляються як об'єкти, кожен належить до логічного простору імен для категоризації і має тип, який репрезентує тип ресурсу, який показує можливості і функціональності через властивості. Об'єкт тримається доступним, доки всі процеси працюють з ним; Об'єктний Менеджер тримає запис, — які з об'єктів зараз використовуються через т. зв. reference counting, так само як і інформацію за власника. Будь-який системний виклик, який змінює стан розподілу ресурсів для процесів, проходить через Об'єктнй Менеджер.
Об'єкти можуть бути або об'єктами ядра, або Executive об'єктами. Перші представляють такі первинні ресурси як фізичні пристрої, або сервіси на кшталт синхронізації, які необхідні для реалізації будь-якого іншого типу сервісу операційної системи. Об'єкти ядра ніяк не представлені для коду простору режиму користувача, лише для режиму ядра. Застосунки та служби, які виконуються поза ядром використовують другий тип, — об'єкти Executive, які представлені шаром Windows Executive, разом з його компонентами, такими як менеджер пам'яти, планувальник та система в/в. Об'єкти Executive інкапсулюють один або більше об'єктів ядра і представляють не тільки ресурси ядра чи пов'язані з ним, але також розширений набір сервісів, ніж робить ядро. Самі застосунки можуть охоплювати один чи декілька об'єктів Executive, і формувати об'єкти, які надаватимуть певні сервіси. Executive об'єкти також використовуються підсистемами середовища (такими як Win32, POSIX тощо) для реалізації своєї функціональности.
Щоразу коли створюється чи відкривається об'єкт, — створюється посилання на екземпляр, яке називається дескриптор (або гендл). Об'єктний Менеджер індексує об'єкти як за їхніми іменами, так і за їхніми дескрипторами. Але посилання на об'єкти за дескрипторами є швидшим, бо можна оминути стадію трансляції імені. Дескриптори зв'язуються з процесами (шляхом створення запису в Таблиці дескрипторів процесу, де перелічені дескриптори процесу), та можуть передаватися між процесами. Процес повинен заволодіти дескриптором об'єкта перед його використанням. Процес може мати максимум до 16'000'000 дескрипторів одночасно. Під час створення, процес отримує дескриптори на набір об'єктів за замовчуванням. Хоча існують різні типи дескрипторів — файлові, дескриптори подій та процесів — вони тільки допомагають ідентифікувати тип цільових об'єктів; не розрізняти операції, які можуть бути виконані з їхньою допомогою, таким чином вони забезпечують послідовність в визначенні того, яким чином різні об'єктні типи керуватимуться програмно. Створення дескриптора і отримання об'єктів через дескриптори проходить виключно за посередництва Об'єктного Менеджера, тож жодне використання ресурсу не пройде непоміченим ним.
Типи Executive об'єктів, представлені в Windows NT такі:
Process | Процес. Колекція виконуваних потоків разом з віртуальною адресацією та контрольною інформацією. |
---|---|
Thread | Потік. Сутність, яка містить код на виконання, частина процесу. |
Job | Колекція процесів. |
File | Файл. Відкритий файл або пристрій в/в. |
File Mapping object | Область пам'яти для відображення файла. |
Access token | Права доступу для об'єкта. |
Event | Об'єкт, який інкапсулює певну інформацію, яка буде використана для сповіщення процесів (про будь-що). |
Semaphore/Mutex | Семафори та М'ютекси. Об'єкти, які серіалізують доступ до інших ресурсів. |
Timer | Таймери. Об'єкти, які сповіщують процеси через фіксований проміжок часу. |
Key | Ключі. Ключі реєстру. |
Desktop | Логічна дисплейна поверхня, для вмісту елементів GUI. |
Clipboard | Тимчасове сховище для інших об'єктів. |
WindowStation | Об'єкт, який містить групу об'єктів Desktop, один об'єкт Clipboard та інші користувацькі об'єкти. |
Symbolic link | Символьне посилання. Посилання на інші об'єкти, через яке об'єкт, на який посилаються, може бути використаний. |
Структура об'єкта
Кожен об'єкт, керований Об'єктим Менеджером має заголовок і тіло; заголовок містить статусну інформацію, яка використувується Об'єктним Менеджером, тоді як тіло містить об'єкт-специфічні дані і сервіси які він надає. Заголовок об'єкта містить певні дані, представлені як властивості (Properties), такі як:
- Object Name — ім'я, яке ідентифікує об'єкт
- Object Directory — категорія, до якої належить об'єкт
- Security Descriptors — права доступу на об'єкт
- Quota Charges — інформація про використання ресурсів для об'єкта
- Open handle count — кількість разів відкривання дескриптора, ідентифікатора цього об'єкта
- Open handle list — список процесів, які посилаються зараз на цей об'єкт
- Reference count — власна кількість посилань на об'єкт
- Type — тип об'єкта (об'єкт, який ідентифікує структуру тіла цього об'єкта).
Об'єкт Type містить властивості, притаманні саме цьому типу об'єкта, а також статичні методи, що реалізують сервіси, які цей об'єкт надає. Об'єкти, керовані Об'єктним Менеджером мають забезпечити принаймні напередвизначений мінімальний набір сервісів:
- Close — Закриває дескриптор об'єкта
- Duplicate — створює інший дескриптор об'єкта, з яким інший процес може отримати
розділений (спільний) доступ до цього об'єкта
- Query object — збірна інформація про його атрибути та властивості
- Query security — вертає дескриптор безпеки об'єкта (security descriptor)
- Set security — змінює безпековий доступ
- Wait — для синхронізації з одним або більше об'єктами через певні події
Об'єкти типу також мають деякі загальні атрибути, включно з іменем типу, чи треба їх розміщувати в нескидній пам'яті (non-paged memory), правами доступу, та інформацією за синхронізацію. Всі зразки того самого типу розділяють той самий об'єкт типу, і об'єкт типу ініціалізується лише раз. Новий об'єктний тип може бути створений шляхом надання об'єктові властивостей вказувати свій стан та методи для вказування сервісів, які він надає.
Object name використовується, для забезпечення описувальної ідентичности об'єкта, для допомоги в пошуку об'єкта. Об'єктний Менеджер тримає список імен, вже призначених підпорядкованим об'єктам, і відображає імена для зразків. Оскільки більшість доступів до об'єктів іде через дескриптори, не завжди треба шукати ім'я для вирішення об'єктного посилання. Пошук виконується тільки тоді, коли об'єкт створюється (для того щоб переконатися, що новий об'єкт має унікальне ім'я), або коли процес доступається об'єкта саме за його іменем. Object directory використовується для категоризації їх згідно з типами. Напередвизначені директорії суть: \?? (імена пристроїв), \BaseNamedObjects (м'ютекси, події, семафори, очікувані (waitable) таймери, секційні об'єкти), \Callback (функції зворотного виклику, т. зв. callback-функції), \Device,\Drivers,\FileSystem,\KnownDlls,\Nls (таблиці мов), \ObjectTypes (об'єкти типів), \RPC Controls (RPC порти),\Security (об*єкти підсистеми безпеки), та \Window (об'єкти віконної підсистеми (windowing subsystem)). Об'єкти також належать до т. зв. Простору імен. Кожна сесія користувача, призначена своєму простору імен. Об'єкти, розділені між всіма сесіями, є в глобальному (GLOBAL) просторі імен, а сесійноспецифічні об'єкти — в специфічному цій сесії просторі.
Див. також
Посилання
- ; (2005). Chapter 3: System Mechanisms. Microsoft Windows Internals (вид. 4th edition). Microsoft Press. с. 124–149. .
Зовнішні посилання
- Channel9 Interview
Цю статтю треба для відповідності Вікіпедії. (Серпень 2011) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Ob yektnij Menedzher vnutrishnye im ya Ob ce pidsistema realizovana yak chastina sharu Executive Windows yaka keruye resursami Windows Kozhen resurs yakij z yavlyayetsya yak logichnij ob yekt nalezhit do prostoru imen namespace dlya kategorizaciyi Resursi mozhut buti fizichnimi pristroyami fajlami abo papkami tomiv zapisami reyestru abo navit zapushenimi procesami Vsi ob yekti sho predstavlyayut resursi mayut vlastivist Object Type takozh inshi metadani pro resurs Ob yektnij Menedzher ce rozdilenij spilnij resurs i vsi pidsistemi yaki mayut spravi z resursami mayut prohoditi cherez nogo Object Manager u Windows iyerarhichno kategorizovani vikoristovuyuchi prostori imenArhitekturaOb yektnij menedzher ce centralizovanij resursnij poserdnik v linijci operacijnih sistem Windows NT yakij slidkuye za resursami vidilenimi dlya procesiv Vin ye resurs agnostichnim i mozhe keruvati bud yakim tipom yih vklyuchno z pristroyami i fajlovimi deskriptorami gendlami Vsi resursi predstavlyayutsya yak ob yekti kozhen nalezhit do logichnogo prostoru imen dlya kategorizaciyi i maye tip yakij reprezentuye tip resursu yakij pokazuye mozhlivosti i funkcionalnosti cherez vlastivosti Ob yekt trimayetsya dostupnim doki vsi procesi pracyuyut z nim Ob yektnij Menedzher trimaye zapis yaki z ob yektiv zaraz vikoristovuyutsya cherez t zv reference counting tak samo yak i informaciyu za vlasnika Bud yakij sistemnij viklik yakij zminyuye stan rozpodilu resursiv dlya procesiv prohodit cherez Ob yektnj Menedzher Ob yekti mozhut buti abo ob yektami yadra abo Executive ob yektami Pershi predstavlyayut taki pervinni resursi yak fizichni pristroyi abo servisi na kshtalt sinhronizaciyi yaki neobhidni dlya realizaciyi bud yakogo inshogo tipu servisu operacijnoyi sistemi Ob yekti yadra niyak ne predstavleni dlya kodu prostoru rezhimu koristuvacha lishe dlya rezhimu yadra Zastosunki ta sluzhbi yaki vikonuyutsya poza yadrom vikoristovuyut drugij tip ob yekti Executive yaki predstavleni sharom Windows Executive razom z jogo komponentami takimi yak menedzher pam yati planuvalnik ta sistema v v Ob yekti Executive inkapsulyuyut odin abo bilshe ob yektiv yadra i predstavlyayut ne tilki resursi yadra chi pov yazani z nim ale takozh rozshirenij nabir servisiv nizh robit yadro Sami zastosunki mozhut ohoplyuvati odin chi dekilka ob yektiv Executive i formuvati ob yekti yaki nadavatimut pevni servisi Executive ob yekti takozh vikoristovuyutsya pidsistemami seredovisha takimi yak Win32 POSIX tosho dlya realizaciyi svoyeyi funkcionalnosti Shorazu koli stvoryuyetsya chi vidkrivayetsya ob yekt stvoryuyetsya posilannya na ekzemplyar yake nazivayetsya deskriptor abo gendl Ob yektnij Menedzher indeksuye ob yekti yak za yihnimi imenami tak i za yihnimi deskriptorami Ale posilannya na ob yekti za deskriptorami ye shvidshim bo mozhna ominuti stadiyu translyaciyi imeni Deskriptori zv yazuyutsya z procesami shlyahom stvorennya zapisu v Tablici deskriptoriv procesu de perelicheni deskriptori procesu ta mozhut peredavatisya mizh procesami Proces povinen zavoloditi deskriptorom ob yekta pered jogo vikoristannyam Proces mozhe mati maksimum do 16 000 000 deskriptoriv odnochasno Pid chas stvorennya proces otrimuye deskriptori na nabir ob yektiv za zamovchuvannyam Hocha isnuyut rizni tipi deskriptoriv fajlovi deskriptori podij ta procesiv voni tilki dopomagayut identifikuvati tip cilovih ob yektiv ne rozriznyati operaciyi yaki mozhut buti vikonani z yihnoyu dopomogoyu takim chinom voni zabezpechuyut poslidovnist v viznachenni togo yakim chinom rizni ob yektni tipi keruvatimutsya programno Stvorennya deskriptora i otrimannya ob yektiv cherez deskriptori prohodit viklyuchno za poserednictva Ob yektnogo Menedzhera tozh zhodne vikoristannya resursu ne projde nepomichenim nim Tipi Executive ob yektiv predstavleni v Windows NT taki Process Proces Kolekciya vikonuvanih potokiv razom z virtualnoyu adresaciyeyu ta kontrolnoyu informaciyeyu Thread Potik Sutnist yaka mistit kod na vikonannya chastina procesu Job Kolekciya procesiv File Fajl Vidkritij fajl abo pristrij v v File Mapping object Oblast pam yati dlya vidobrazhennya fajla Access token Prava dostupu dlya ob yekta Event Ob yekt yakij inkapsulyuye pevnu informaciyu yaka bude vikoristana dlya spovishennya procesiv pro bud sho Semaphore Mutex Semafori ta M yuteksi Ob yekti yaki serializuyut dostup do inshih resursiv Timer Tajmeri Ob yekti yaki spovishuyut procesi cherez fiksovanij promizhok chasu Key Klyuchi Klyuchi reyestru Desktop Logichna displejna poverhnya dlya vmistu elementiv GUI Clipboard Timchasove shovishe dlya inshih ob yektiv WindowStation Ob yekt yakij mistit grupu ob yektiv Desktop odin ob yekt Clipboard ta inshi koristuvacki ob yekti Symbolic link Simvolne posilannya Posilannya na inshi ob yekti cherez yake ob yekt na yakij posilayutsya mozhe buti vikoristanij Struktura ob yekta Kozhen ob yekt kerovanij Ob yektim Menedzherom maye zagolovok i tilo zagolovok mistit statusnu informaciyu yaka vikoristuvuyetsya Ob yektnim Menedzherom todi yak tilo mistit ob yekt specifichni dani i servisi yaki vin nadaye Zagolovok ob yekta mistit pevni dani predstavleni yak vlastivosti Properties taki yak Object Name im ya yake identifikuye ob yekt Object Directory kategoriya do yakoyi nalezhit ob yekt Security Descriptors prava dostupu na ob yekt Quota Charges informaciya pro vikoristannya resursiv dlya ob yekta Open handle count kilkist raziv vidkrivannya deskriptora identifikatora cogo ob yekta Open handle list spisok procesiv yaki posilayutsya zaraz na cej ob yekt Reference count vlasna kilkist posilan na ob yekt Type tip ob yekta ob yekt yakij identifikuye strukturu tila cogo ob yekta Ob yekt Type mistit vlastivosti pritamanni same comu tipu ob yekta a takozh statichni metodi sho realizuyut servisi yaki cej ob yekt nadaye Ob yekti kerovani Ob yektnim Menedzherom mayut zabezpechiti prinajmni naperedviznachenij minimalnij nabir servisiv Close Zakrivaye deskriptor ob yekta Duplicate stvoryuye inshij deskriptor ob yekta z yakim inshij proces mozhe otrimati rozdilenij spilnij dostup do cogo ob yekta Query object zbirna informaciya pro jogo atributi ta vlastivosti Query security vertaye deskriptor bezpeki ob yekta security descriptor Set security zminyuye bezpekovij dostup Wait dlya sinhronizaciyi z odnim abo bilshe ob yektami cherez pevni podiyi Ob yekti tipu takozh mayut deyaki zagalni atributi vklyuchno z imenem tipu chi treba yih rozmishuvati v neskidnij pam yati non paged memory pravami dostupu ta informaciyeyu za sinhronizaciyu Vsi zrazki togo samogo tipu rozdilyayut toj samij ob yekt tipu i ob yekt tipu inicializuyetsya lishe raz Novij ob yektnij tip mozhe buti stvorenij shlyahom nadannya ob yektovi vlastivostej vkazuvati svij stan ta metodi dlya vkazuvannya servisiv yaki vin nadaye Object name vikoristovuyetsya dlya zabezpechennya opisuvalnoyi identichnosti ob yekta dlya dopomogi v poshuku ob yekta Ob yektnij Menedzher trimaye spisok imen vzhe priznachenih pidporyadkovanim ob yektam i vidobrazhaye imena dlya zrazkiv Oskilki bilshist dostupiv do ob yektiv ide cherez deskriptori ne zavzhdi treba shukati im ya dlya virishennya ob yektnogo posilannya Poshuk vikonuyetsya tilki todi koli ob yekt stvoryuyetsya dlya togo shob perekonatisya sho novij ob yekt maye unikalne im ya abo koli proces dostupayetsya ob yekta same za jogo imenem Object directory vikoristovuyetsya dlya kategorizaciyi yih zgidno z tipami Naperedviznacheni direktoriyi sut imena pristroyiv BaseNamedObjects m yuteksi podiyi semafori ochikuvani waitable tajmeri sekcijni ob yekti Callback funkciyi zvorotnogo vikliku t zv callback funkciyi Device Drivers FileSystem KnownDlls Nls tablici mov ObjectTypes ob yekti tipiv RPC Controls RPC porti Security ob yekti pidsistemi bezpeki ta Window ob yekti vikonnoyi pidsistemi windowing subsystem Ob yekti takozh nalezhat do t zv Prostoru imen Kozhna sesiya koristuvacha priznachena svoyemu prostoru imen Ob yekti rozdileni mizh vsima sesiyami ye v globalnomu GLOBAL prostori imen a sesijnospecifichni ob yekti v specifichnomu cij sesiyi prostori Div takozhPosilannya 2005 Chapter 3 System Mechanisms Microsoft Windows Internals vid 4th edition Microsoft Press s 124 149 ISBN 0 7356 1917 4 Zovnishni posilannyaChannel9 InterviewCyu stattyu treba vikifikuvati dlya vidpovidnosti standartam yakosti Vikipediyi Bud laska dopomozhit dodavannyam dorechnih vnutrishnih posilan abo vdoskonalennyam rozmitki statti Serpen 2011