Linux Real Mode Interface в модуле ядра Linux - PullRequest
3 голосов
/ 10 июня 2010

У меня есть функция BIOS, которую мне нужно время от времени вызывать во встроенной системе, и с помощью LRMI я смог успешно вызвать ее из программы пространства пользователя. Теперь я хочу сделать то же самое из загружаемого модуля ядра.

Есть ли способ сделать это? Может, в какую-то другую библиотеку?

1 Ответ

0 голосов
/ 10 мая 2013

Это связано с режимом, в котором находится Процессор (это защищенный режим, который включается после того, как bios инициализирует все ресурсы).Чтобы снова использовать прерывания BIOS, вам нужно будет использовать режим v8086, когда процессор эмулирует 16-битную машину реального режима.Затем вы можете установить свои регистры и вызвать ваше прерывание с помощью программы виртуального режима.

Вот как перейти в виртуальный режим: http://www.brokenthorn.com/Resources/OSDev23.html

Вы также можете попробовать перейти в реальный режим, ноэто включает в себя перезагрузку процессора.Я не знаю, как бы вы сделали это программно, так как вы, вероятно, не можете.

...