2014-09-24 3 views
1

Я изучаю разработку ядра os и все еще на самом новичком уровне. Я написал немного кода для процессора 80386 и тестировал его на qemu, используя gdb в качестве отладчика (удаленная отладка).Почему в ядре возникает ошибка сегментации?

Теперь странная ошибка: - Когда я запускаю код в qemu, он работает нормально, но когда я запускаю его и подключаю его к gdb. В gdb отображается ошибка сегментации в строке.

Мой вопрос заключается в том, как может возникнуть ошибка сегментации в ядре os, когда я работаю в реальном режиме и даже не использовал защиту памяти. Кроме того, если есть механизм, по которому возникает ошибка сегментации, почему ядро ​​работает нормально в qemu.

ответ

0

Неисправность seg отбрасывается аппаратными средствами, а не операционной системой. Так что да, вы все равно можете получить segfaults, но segfaults - вот некоторые из более простых ошибок для исправления.

+0

Может ли аппаратный сброс seg неисправностей в реальном режиме? Является ли это не ядром. –

+0

Я еще не реализовал связанные с управлением памятью. –

+0

Я не уверен, почему это так, но я создал ОС в колледже и должен был отлаживать несколько segfaults в моем коде, хотя я никогда не писал никакого кода для защиты памяти. – Dan

Смежные вопросы