Четвертий урок захищеного режиму.
Попередні :
Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе.
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.
Урок номер 4
Та ж GDT, що і раніше. В IDT -- обробники всіх виключних ситуацій. Реалізовано їх як обгортки, що викликають один і той самий обробник. Обробник виходить з захищеного режиму, виводить тип виключення та його адресу і закінчує програму. Виділений стек не створюється, тому stack fault (та можливо деякі інші) коректно ним не оброблятимуться.
Описано:
- Що таке переривання та виключення (exceptions).
- Обробники переривань захищеного та реального режиму.
- Шлюзи пасток, переривань та задач.
- Спосіб виклик обробника в залежності від причини переривання.
- Типи виключень -- збої (faults), пастки (traps) та "аварії" (aborts).
- Дано перелік виключень, що можуть генеруватися процесором.
- Формат коду помилки для тих виключень, що його генерують. Окремо описано код помилки для Page Fault.
Є як змішана C-asm так і чисто асемблерна реалізації.
Архів з файлами уроку: pm_04.zip. (Updated - 1.)Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.
На сьогодні все. Наступний урок буде присвячений типам виключних ситуацій та переривань, і їх обробці.
Дякую за увагуНа сьогодні все. Наступний урок буде присвячений типам виключних ситуацій та переривань, і їх обробці.
Якщо є запитання, виправлення, пропозиції - пишіть! Багато часу цьому приділяти, на жаль, не можу, але якщо з того буде комусь користь - спробуємо щось придумати.
Немає коментарів:
Дописати коментар