Поправьте, если не прав, есть у Руссиновича "Внутреннее устройство Microsoft Windows"(интересно может его предки были русскими?) такое вот описание трансляции виртуального адреса на физический: Код (Text): Индекс каталога страниц(page directory index) применяется для поиска таблицы страниц, содержащей PTE для данного виртуального адреса. С помощью индекса таблицы страниц(page table index) осуществляется поиск PTE, который, как уже говорилось, содержит физический адрес, по которому проецируется виртуальная страница.... 1) Попробуем разобраться. Вот эта часть интересна: Код (Text): Индекс каталога страниц(page directory index) применяется для поиска таблицы страниц Не точнее ли будет в этом случая назвать это не каталогом страниц, а каталогом таблиц, раз уж в этом каталоге хранится указатели на таблицы? 2) Теперь идем в таблицу страниц, опять некорректно, судя по смыслу, это не таблица страниц, а таблица указателей на страницы, поэтому вернее ее назвать таблицей указателей на страницы. Тема и так не простая, если будет путаница в терминах, то вообще без поллитра не разобраться. Иногда такие перлы реально затормаживают мозг.
чего тут непонятного? каталог страниц содержит физ.адреса таблиц страниц, таблица страниц содержит физ.адреса страниц по-моему, надо сначала разобраться как процессор преобразовывает виртуальный адрес в физический, после этого всё станет намного проще.
А путаница в терминологии постоянная. Хотя бы потому, что у Винды своя терминология (причём не зависящая от платформы -- система создавалась не только для ИА-32), а у железа -- своя, причём различающаяся на разных платформах.
Если каталог страниц содержит физ. адреса таблиц страниц, тогда его так и надо называть каталог указателей на таблицы, а не каталог страниц. Это вносит путаницу. С ситуацией я разобрался, просто тому кто будет впервые с этим разбираться, будет не очень просто понять о чем идет речь. Конечно можно назвать каталог страниц, подразумевая, что указатели в этом каталоге просто показывают на начало страницы, в которой начало таблицы страниц, но тогда получатся замес, логического понятия о таблицах страниц, и чисто понятия просто виртуальных страниц, это вносит хаос в умы начинающих. Я сам читал эту книгу два раза, и оба раза, это место было как глаукома на глазу, белое пятно. Только после практики, я перечитал и наконец дошло, что же мешало для правильного понимания этого материала. Вот и захотелось обратить на это внимание.
neutronion А книга тут причём? Это терминология Intel. Их процессоры, как хотят, так и называют. К тому же название вполне логичное. Если в стеллаже хранятся документы в папках, то обычно его называют стеллажом с документами, а не стеллажом с папками.
Вот и я предлагаю назвать, каталог таблиц - стеллажом с документами Стелаж с документами, в этих документах описаны указатели на страницы.
neutronion Нет. Вы предлагаете назвать его стеллажом с папками, исходя из того, что документы не находятся непосредственно в стеллаже, а только внутри папок, лежащих в стеллаже. Стеллаж с документами — каталог страниц. Папка с документами — таблица страниц. Документ — страница. P.S. Кстати, как уже было сказано выше, предлагать тут нечего. Это официальная терминология Intel.
С интел все ясно. Повторяюсь еще раз. Что лежит в так называемом каталоге страниц? Страницы? Нет! Там лежат указатели на таблицы, поэтому корректно называть это каталогом указателей на таблицы. Если у меня есть ящик с карточками, я же не называю его ящик с деньгами, хотя на этих карточках могут лежать(а могут не лежать деньги) Я бы не стал акцентировать на этом, если бы это понятие не было ключевым в книге Руссиновича, после этого маленького недоразумения остальные 100 страниц, которые он основывает на своих каталогах страниц взрывают мозг. Вы читали эту замечательную книгу? Как ощущения? Почему ее на называют легким чтивом? Потому что она криво написана. А такая важная она из-за того, что нет ему конкурентов. Не у каждого автора имеются хорошие знакомые среди разработчиков ядра Windows. Кстати то же относится и к Рихтеру, книгу он хорошую создал, но только потому что был в вхож в компанию ребят из Рэдмонда. В общем я не хаю книгу, она полезна, но тяжела из-за таких косяков. Ее нужно очень серьезно отредактировать и добавить туеву хучу хороших диаграмм, тогда это чтиво станет более или менее перевариваемым.
neutronion Повторяюсь ещё раз. Что лежит в стеллаже с документами? Документы? Нет. Там лежат папки. Вам было трудно осознать абстракцию. Я привёл привычный для Вас пример из жизни, где встречается та же ситуация, чтобы облегчить осознание. Разумеется, можно привести тонну других примеров, где такая ситуация не встречается. Вы издеваетесь? Хоть слово из того, что я написал, прочитали? Это не косяк книги! Руссинович ни в коем случае не должен путать читателя, вводя новую терминологию, которая исключительно Вам понятнее. Он должен использовать общепринятую. Читал. Четвёртое издание прочитал на русском и пятое на английском. Четвёртое пошло крайне тяжело. Не потому, что на русском, разумеется, и не потому, что там чего-то не хватает, а потому что слишком много новой теории, смысла которой я не понимал применительно к написанию драйверов. Пятое осилил гораздо проще, т.к. там сравнительно немного нового, а старое более-менее уложилось.
А ты не задумывался, что проблема не в книге и не в Руссиновиче, а в тебе? Ага, и еще стишки в рифму, на каждый концепт, чтобы лучше запоминалось, и комиксов! комиксов!
просто надо сначала изучать как опеределённая возможность осуществляется процессором, а потом уже изучать как эту возможность использует винда