LINUX.ORG.RU

Страничная адресация. Формат дескриптора страницы.

 


0

1

Всем привет! Вот тут: https://ru.bmstu.wiki/%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C_(%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B) в разделе «Механизм работы» описан способ организации памяти просто одна таблица страниц (без каталога страниц). Это то что мне нужно. Обратите внимание на картинку в разделе «Механизм работы». Главное что из себя представляет «дескриптор страницы», не нашел в интернете нормального объяснения (в т.ч. не указывают атрибуты в статьях). Я так понял, что не используются ни какие регистры, то есть не процессор преобразует номер страницы в физический адрес, хотя в защищенном режиме я читал что именно процессор должен преобразовывать адреса в физические. В общем объясните как это работает. Полезное дело сделаете, так как у нас хорошей ОС нет сейчас в мире, а у меня точно есть отличное видение какой должна быть хорошая ОС (естественно без шпионажа как в виндовс). Не хочется тратить столько времени на плохо описанные технические нюансы ОС, Ваша помощь будет кстати. С остальным мне пока все понятно.


Ответ на: комментарий от X512

Ну да, Вы правы ребята. Большое спасибо. С сегментами и страницами понятно. Только не понял, что в mov пишется точно. Сегмент? Или «номер виртуальной страницы»*4096» + смещение, то есть для первой (не 0) виртуальной страницы так и будет написано mov 4096:12бит_смещение? Естественно в битах или в точнее в шестнадцатиричном представлении. Еще вопрос, получается что одна сегментная адресация проще?

wadic2
() автор топика
Последнее исправление: wadic2 (всего исправлений: 1)
Ответ на: комментарий от wadic2

Только не понял, что в mov пишется точно.

Смещение сегмента. Сам сегмент берётся из сегментного регистра (CS, DS, …).

«номер виртуальной страницы»*4096» + смещение, то есть для первой (не 0) виртуальной страницы так и будет написано mov 4096:12бит_смещение?

На той же схеме после трансляции сегментов:

LINEAR  ╔═══════════╦═══════════╦═══════════╗
ADDRESS ║    DIR    ║    PAGE   ║   OFFSET  ║
        ╚═══════════╩═════╤═════╩═══════════╝

Offset – младшие 12 бит, потом page 10 бит и dir 10 бит. Номер страницы = dir*1024 + page.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)

Возьми мануалы от Intel (https://software.intel.com/content/www/us/en/develop/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html) и начинай их читать, подряд. Вторую главу в первом томе можешь пропустить, там историческая справка.

Если не знаешь английского, не беда. Читай со словарём.

i-rinat ★★★★★
()
Ответ на: комментарий от wadic2

Может быть, с RISC-V стоит начать хорошую ОС?

anonymous
()
Ответ на: комментарий от anonymous

Ретро-ОС тоже может быть хорошей.

vM ★★
()

В чем проблема скачать третье издание Таненбаума на русском? Плюс саму миникс ранних третьих версий

luke ★★★★★
()
Ответ на: комментарий от vM

Я уверен лучше того чуда, что ваяет ТС

luke ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.