Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Компоненти режиму користувача



Розглянемо відмінність режиму користувача від режиму ядра на прикладі Windows.

Для запобігання доступу додатків до критично важливих даних операційної системи і усунення ризику їх модифікації Windows використовує два режими доступу до процесора (навіть якщо він підтримує більше двох режимів): призначений (user mode) для користувача і ядра (kernel mode). Код додатків працює в призначеному для користувача режимі, тоді як код операційної системи (наприклад, системні сервіси і драйвери пристроїв) — в режимі ядра. У режимі ядра надається доступ до усієї системної пам'яті і дозволяється виконувати будь-які машинні команди процесора. Надаючи операційній системі вищий рівень привілеїв, чим застосовним програмам, процесор дозволяє розробникам операційних систем реалізувати таку архітектуру, яка не дає можливості збійним застосуванням порушувати стабільність роботи усієї системи.

ПРИМІТКА В архітектурі процесора Intel x86 визначене чотири рівні привілеїв, або кілець (rings), призначених для захисту коду і даних системи від випадкового або умисного перезапису кодом з меншим рівнем привілеїв. Windows використовує рівень привілеїв 0 (чи кільце 0) для режиму ядра і рівень привілеїв 3 (чи кільце 3) для призначеного для користувача режиму. Чому Windows використовує тільки два рівні? Річ у тому, що на деяких з апаратних платформ (наприклад, Compaq Alpha і Silicon Graphics MIPS), що раніше підтримувалися, реалізовано лише два рівні привілеїв.

Хоча кожен Windows -процесс має свою (закриту) пам'ять, код операційної системи і драйвери пристроїв, працюючі в режимі ядра, ділять єдиний віртуальний адресний простір. Кожна сторінка у віртуальній пам'яті позначається тегом, визначальним, в якому режимі повинен працювати процесор для читання і/або запису цієї сторінки. Сторінки в системному просторі доступні лише в режимі ядра, а усі сторінки в призначеному для користувача адресному просторі — в призначеному для користувача режимі. Сторінки тільки для читання (наприклад, що містять лише виконуваний код) ні в якому режимі для запису недоступні.

Windows не передбачає ніякого захисту системної пам'яті від компонентів, працюючих в режимі ядра. Інакше кажучи, код операційної системи і драйверів пристроїв в режимі ядра дістає повний доступ до системної пам'яті і може обходити засоби захисту Windows для звернення до будь-яких об'єктів

Компоненти операційної системи які виконуються в призначеному для користувача режимі називають підсистемами. Наприклад, до складу Windows 2000 входить підсистема безпеки і підсистеми, що надають програмам функції таких поширених операційних середовищ, як DOS, OS/2, Win16, POSIX, а також Win32. Основне призначення операційного середовища - надання інтерфейсу, а також емуляція роботи операційних систем, що відрізняються від Windows 2000. Простіше кажучи, операційне середовище додає в систему Windows 2000 додаткових можливостей і нові системні виклики, що відрізняються від викликів природного API -ядра. Підсистеми операційних середовищ завантажуються тільки у разі, якщо виникне необхідність їх використання. Кожна підсистема виконується як окремий процес призначеного для користувача режиму. Таким чином, кожна підсистема захищена від збоїв, викликаних іншими підсистемами, саме завдяки цьому платформа Windows 2000 функціонує стабільніше, ніж операційні системи лінійки Windows 9x. Що здається найбільш дивовижним, Win32 API не є рідним для Windows 2000, а реалізований так само, як і, скажімо, підтримка DOS API. Це зауваження, проте, не зовсім вірне: природний API дуже схожий на Win32 API, проте, з ним дещо складніше працювати (між деякими функціями Win32 і деякими функціями природного API може існувати взаємно-однозначна відповідність, проте частина функцій Win32 для виконання свого завдання звертаються до декількох функцій природного API -ядра), крім того, він не документований. Тому, хоч додатку ніхто і ніщо не перешкодить діяти в обхід інтерфейсів, пре-доставляемых операційними середовищами, і звертатися до природному API безпосередньо, компанія "Майкрософт" украй не рекомендує використовувати таку можливість.

Контрольні запитання

  1. Що таке режим користувача?
  2. Який рівень привілеїв має режим користувача?
  3. Які підсистеми виконуються в режимі користувача?

Література

Електроний ресурс: http://www.comprice.ru/articles/detail.php?ID=42607&print=true _





Дата публикования: 2014-11-19; Прочитано: 1734 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...