RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : А вот вопрос, однако...


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : valerius
To : Юрий Пронякин
Subj : А вот вопрос, однако...

> > MemoryControl() -- это немного из другой оперы. Вообще, микроядро не оперирует сегментами -- оно оперирует страницами памяти -- flexpages. MemoryControl() позволяет задавать атрибуты страниц памяти. Для IA32 это: Default, Uncacheable, Write Combining, Write Through, Write Protected, Write Back. -- как я понял, это относится к кешируемости. К атрибутам сегментов это не имеет отношения.
>
> Тогда я ещё меньше понимаю. Те сегменты, в которых само микроядро находится - они откуда взялись? А если GDT и таблицами трансляции логических адресов на физические ведает не микроядро, то выходит, что в них может ковыряться любой желающий?
>

По-видимому, не каждый желающий, если системный вызов, оперирующий GDT/LDT, является привилегированным (а это наверняка так). То есть, кто попало его не вызовет, а может только rootserver по запросу других задач. Причем, rootserver уже решает, кому отказать в доступе, а кому -- нет. В случае проекта Afterburner, rootserver -- это менеджер ресурсов marzipan, а wedge (монитор виртуальной машины) может за ОС, работающую в VM, делать запросы к marzipan (например, "добавить такой-то дескриптор в GDT"). Если такой запрос сделает "левая" задача внутри ОС (которая внутри VM), то возникнет TRAP, который не обработается wedge, если это был непатченный afterburner'ом код.

Mon 25 Jun 2007 06:49 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.7.10) Gecko/2005




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.