Переривання BIOS, рівні привілеїв та пейджинг


0

Я дізнався про процесори Intel 8086-80486 і їх взаємодію з обладнанням. Але я все ще не дуже добре розумію це. Будь ласка, допоможіть мені заповнити пусті місця.

По-перше, я знаю, що процесор взаємодіє з апаратним забезпеченням за допомогою переривань BIOS. Але, що насправді відбувається в ПК, коли я називаю деякі інструкції INT? Я знаю, що відповідно до таблиці переривань деякі інструкції починають виконуватися, але як, виконавши деякі інструкції, BIOS може визнати, що я хочу зробити? Тому що, наскільки я знаю, процесор не має додаткового каналу зв'язку з BIOS, він може тільки адресувати пам'ять і отримувати дані. Так як я можу інструктувати BIOS щось робити, коли я можу звертатися тільки до оперативної пам'яті?

Наступне, що я не розумію - це рівень привілеїв. Я знаю про кільцеву модель і права доступу, але як же CPU знає, який рівень привілеїв виконав інструкцію? Я думаю, що ці привілеї застосовуються лише тоді, коли втручання намагається вирішити проблему пам'яті, але як програма отримує свій рівень привілеїв? Я маю на увазі я знаю його рівень 3, але як він встановлений?

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


@Jack, ви можете отримати кращі результати, якщо ви можете розділити своє питання на пару стислих і конкретних питань, а не одного великого.
heavyd

Відповіді:


2

Є 2 режими: реальний і захищений. У реальному режимі ви можете звертатися тільки до 1 Мб пам'яті. Переривання BIOS доступні тільки в реальному режимі. Адреси A0000 - FFFFF відображаються: A0000 - BFFFF - це відеопам'ять, F0000 - FFFFF - ROM BIOS, де розташований код процедур обслуговування переривань BIOS. У реальному режимі немає рівнів привілеїв. Якщо ви виконаєте команду "int n", це відбувається: прапори, cs, ip зберігаються в стеку. Слово при n * 4 + 2 завантажується в cs і слово в n * 4 завантажується в ip.

Захищений режим запускається шляхом встановлення біта 0 регістру cr0. Тоді у вас є 4 рівні привілеїв. Але перед початком запуску, необхідно включити A20, встановити бази переривань IRQ 0-7 і IRQ 8-15, створити IDT, GDT.

Пейджинг запускається шляхом встановлення біта 31 cr0. Перш ніж почати її, ви повинні створити каталог сторінок і таблиць сторінок і встановити cr3, щоб він вказував на каталог сторінок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.