Вопрос защиты режима быстрого звонка процессора - PullRequest
1 голос
/ 20 мая 2010

Мне очень любопытно связываться с HW. Но мой «беспорядок» высшего уровня до сих пор был связан или встроен в ассемблер в C-программе. Если мое понимание процессора и режима звонка правильное, я не могу напрямую из приложения пользовательского режима получить доступ к некоторым функциям процессора низкого уровня, таким как отключение прерываний или изменение сегментов защищенного режима, поэтому я должен использовать системные вызовы, чтобы делать все, что я хочу.

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

Я знаю, что мог бы написать совершенно новую ОС (по крайней мере, до некоторой степени), но то, что я точно хочу сделать, - это доступ к некоторым низкоуровневым функциям HW из стандартного приложения Windows. Итак, водитель - это путь?

Ответы [ 2 ]

1 голос
/ 20 мая 2010

Если вы хотите поиграть с HW, напишите некоторые программы для 16-битного реального режима (или даже с вашим собственным переходом в защищенный режим). Там вам приходится иметь дело с ASM, прерываниями BIOS, сегментами, видеопамятью и многими другими низкоуровневыми вещами.

1 голос
/ 20 мая 2010

Краткий ответ: да.

Длинный ответ: Управление доступом к низкоуровневым аппаратным функциям - именно работа ядра ОС, и если вы хотите получить доступ только к одной функции, нет необходимости запускать собственную ОС с нуля. Большинство современных ОС, таких как Windows, Linux или BSD, позволяют добавлять код в ядро ​​через модули ядра.

При написании модуля ядра (или драйвера устройства) вы пишете код, который будет выполняться внутри ядра ОС и, таким образом, будет выполняться в цикле ЦП 0. Большая мощность приходит с большой ответственностью, что в данном случае означает, что вы должны действительно знать, что вы делаете, так как не будет предварительно настроенного интерфейса ОС, который не позволит вам делать неправильные вещи. Поэтому вам следует изучить руководства по вашему аппаратному обеспечению (например, руководства разработчика программного обеспечения Intel x86, спецификации устройств и т. Д.), А также литературу по разработке стандартных операционных систем (где вы также найдете много в Интернете - OSDev , OSDever , OSR , Драйверы устройств Linux ).

...