проверка ограничения сегмента в 64-битном режиме AMD - PullRequest
0 голосов
/ 22 октября 2011

Я пишу свою собственную ОС для 64-битных процессоров, и я застрял с проблемой общей защиты. Моя ОС не будет полагаться на ошибку страницы при реализации механизма защиты пространства пользователя, поэтому я обнаружил, что есть способ сделать это с помощью проверки ограничения сегмента:

Эта презентация от VMWare

http://download3.vmware.com/vmworld/2005/pac346.pdf

на странице 20 сказано:

  • Первоначальная архитектура AMD64 не включала сегментацию в 64-битном режиме

    • Сегментация также отсутствует в EMT64T

    Как мы защищаем VMM?

    • Поддержка 64-битной гостевой системы требует дополнительной аппаратной поддержки
    • Проверка ограничений сегмента доступна в 64-битном режиме на новых процессорах AMD

Теперь у меня более новая модель процессора AMD, и у меня вопрос: как мне выполнить проверку ограничения предельного сегмента на процессоре AMD в 64-битном (длинном) режиме? Я скачал (последняя) сентябрьскую версию руководства разработчика, и я не могу найти способ сделать это в любом месте, помогите.

Ответы [ 2 ]

3 голосов
/ 22 октября 2011

Я думаю, что они, вероятно, говорят о бите включения ограничения сегмента длинного режима (LMSLE бит 13) в «Регистре активации расширенных возможностей» (EFER) в Том 2 3.1.7 pg.55 .Более подробно это описано в разделе «4.12.2 Проверка пределов данных в 64-битном режиме» на стр. 114. Обратите внимание, что EFER является регистром, зависящим от модели (подробнее в разделе «6.2.5 Доступ к регистру, зависящему от модели»).стр. 156 также в томе 2).

3 голосов
/ 22 октября 2011

Сегментация - это старый и очень медленный способ реализации защиты памяти.Даже когда он вышел, никто не использовал его, потому что он был слишком медленным - Intel изобрела это, но на самом деле не общалась с поставщиками ОС, чтобы сначала увидеть, чего они хотят.Вам действительно нужно использовать сбой страницы, как и в других современных операционных системах.

...