об аппаратных драйверах в защищенном режиме - PullRequest
1 голос
/ 29 марта 2011

В последнее время я пытаюсь написать простую ОС. Это большой проект.
когда я пишу свой код, мне интересно, как современные ОС связываются с аппаратным обеспечением в защищенном режиме
В реальном режиме мы можем просто вызвать прерывание BIOS, чтобы выполнить эту работу.
Но мне интересно, как достичь этой цели в защищенном режиме. (Используется ли инструкция входа и выхода ??)
Я проследил часть исходного кода Linux, но все еще не могу найти соответствующий код.

Я знаю, что это основной вопрос для многих людей, пожалуйста, помогите мне, ТКС.
и извините за мой плохой английский.

1 Ответ

1 голос
/ 05 апреля 2011

В защищенном режиме процессор может работать как в режиме ядра, так и в режиме пользователя.В режиме ядра вы всегда можете получить доступ к оборудованию.Вызов прерывания BIOS является одним из старых методов, но современная ОС обычно имеет свои собственные драйверы устройств для оборудования и не вызывает BIOS слишком часто.Если вам известны технические характеристики оборудования, вы можете использовать in и out для прямого доступа к оборудованию.Кроме того, для современных устройств PCI и PCI Express они поддерживают IO с отображением памяти (CPU X86 также поддерживает это), и это означает, что вы можете использовать mov для доступа к аппаратному обеспечению.

Для x86 CPU также позволяетпрограмма уровня пользователя для доступа к оборудованию с использованием инструкций ввода и вывода.Вы можете найти его в руководстве по процессору Intel.Просто установить DPL, CPL?(Я забыл правильное имя).

Полагаю, вам лучше прочитать какую-нибудь книгу о драйверах устройств, таких как Linux Device Drivers, 3-е издание.http://lwn.net/Kernel/LDD3/

...