Переход в реальный режим в Linux

Все о программировании под *nix
Alexander

Переход в реальный режим в Linux

Сообщение Alexander »

Подскажите, если кто знает. Я начал не давно программировать в линуксе и столкнулся с проблемой - нельзя напрямую работать с прортами ввода-вывода, копировать в память напрямую и работать с функциями BIOS. Понятно что надо переключиться в реальный режим.
Но почему нельзя в линуксе перейти из защищенного рещима в реальный? Изменив в регистре CR0 флаг PE. Кто отслеживает, что я меняю регистры?
И че? в линуксе можно работать только через системные вызовы?

С уважением, Александр

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

Alexander, да. Следует использовать системные вызовы везде, где возможно. Если можно реализовать хотя бы чать требуемой функциональности в user-mode, то это следует сделать именно там, а для работы со специфическим оборудованием пишется драйвер, который использует ресурсы компа опять же не монопольно, сгласно достаточно строгим правилам и не меншая другим потокам ядра. По поводу того "кто отслеживает, что я меняю регистры" усилено курить мануалы по ia32. Если нет понимания работы защищенного режима, то зачем вообще лезть в регистры?
Опыт растет прямо пропорционально выведенному из строя оборудованию

Aleksey Kondratenko
Неотъемлемая часть форума
Сообщения: 250
Зарегистрирован: 12 авг 2003, 03:55
Контактная информация:

Сообщение Aleksey Kondratenko »

Не нужен тебе реальный режим. Если достаточно лазанья по портам и
памяти то см. man iopl и man 4 mem. in и out можно пользовать из
h-ника <asm/io.h>.

Aleksey Kondratenko
Неотъемлемая часть форума
Сообщения: 250
Зарегистрирован: 12 авг 2003, 03:55
Контактная информация:

Сообщение Aleksey Kondratenko »

Да, а к BIOS'у тебе скорей всего не следует лезть. Если очень надо
то см. системый вызов vm86 или библиотеку LRMI. Через эту библиотеку
mplayer лазит на VESA биос.

P.S. А нафига тебе BIOS ?

Гость

Сообщение Гость »

Спасибо большое за ответы!

Llama, подскажите, где можно прочесть про эти строгие правила при написании драйверов.

Aleksey Kondratenko, BIOS мне не обязательно просто я превык в досе использовать биос для своих нужд, вот и решил сдесь попробовать. Ведь я не знаю системных вызовов, ибо я вот только недавно в Linux.

Aleksey Kondratenko
Неотъемлемая часть форума
Сообщения: 250
Зарегистрирован: 12 авг 2003, 03:55
Контактная информация:

Сообщение Aleksey Kondratenko »

Поставь glibc-doc и читай. Кажется, тебе также действительно следует
почитать мануалы от intel по x86. Они есть на developer.intel.com
(3 тома).

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

Валяется в интеренете книга - linux device drivers. Кроме того, bios call - не панацея. Иногда они действую слишком медленно из-за того, что не учитывааются возможности конкретной железки.
Опыт растет прямо пропорционально выведенному из строя оборудованию

Гость

Сообщение Гость »

Спаситбо большое за ответы!
Я действительно в защищенном режиме не понимаю, посоветуйте, пожалуйста, что-нибудь из инета.

Ответить