Страница 1 из 1
Переход в реальный режим в Linux
Добавлено: 26 май 2004, 06:34
Alexander
Подскажите, если кто знает. Я начал не давно программировать в линуксе и столкнулся с проблемой - нельзя напрямую работать с прортами ввода-вывода, копировать в память напрямую и работать с функциями BIOS. Понятно что надо переключиться в реальный режим.
Но почему нельзя в линуксе перейти из защищенного рещима в реальный? Изменив в регистре CR0 флаг PE. Кто отслеживает, что я меняю регистры?
И че? в линуксе можно работать только через системные вызовы?
С уважением, Александр
Добавлено: 26 май 2004, 07:08
Llama
Alexander, да. Следует использовать системные вызовы везде, где возможно. Если можно реализовать хотя бы чать требуемой функциональности в user-mode, то это следует сделать именно там, а для работы со специфическим оборудованием пишется драйвер, который использует ресурсы компа опять же не монопольно, сгласно достаточно строгим правилам и не меншая другим потокам ядра. По поводу того "кто отслеживает, что я меняю регистры" усилено курить мануалы по ia32. Если нет понимания работы защищенного режима, то зачем вообще лезть в регистры?
Добавлено: 26 май 2004, 22:30
Гость
Спасибо большое за ответы!
Llama, подскажите, где можно прочесть про эти строгие правила при написании драйверов.
Aleksey Kondratenko, BIOS мне не обязательно просто я превык в досе использовать биос для своих нужд, вот и решил сдесь попробовать. Ведь я не знаю системных вызовов, ибо я вот только недавно в Linux.
Добавлено: 27 май 2004, 07:24
Llama
Валяется в интеренете книга - linux device drivers. Кроме того, bios call - не панацея. Иногда они действую слишком медленно из-за того, что не учитывааются возможности конкретной железки.
Добавлено: 27 май 2004, 19:15
Гость
Спаситбо большое за ответы!
Я действительно в защищенном режиме не понимаю, посоветуйте, пожалуйста, что-нибудь из инета.