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


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

> > Пока насчет 16-битгного кода не все ясно, но, как уже подсказали, микроядро L4/Fiasco позволяет отдавать usermode-программам некоторые селекторы в GDT.
>
> И? У нас ведь проблема: для отдельных частей уже выделенного микроядром большого 32-разрядного сегмента наплодить 16-разрядных алиасов. Это совсем не то же самое, что править дескриптор того большого сегмента.
>

Пришли еще два письма от разработчиков Fiasco и Pistachio.

Насчет Fiasco. Существует возможность загрузить GDT дескриптор из usermode, и после проверок на правильность микроядром, дескриптор добавляется в GDT. Причем, утверждается, что 16-битные дескрипторы также должны работать. Но пока никто не пробовал экспериментировать с 16-битными дескрипторами. Интерфейс к этому описан в одном из хедеров микроядра. Аналогично GDT, существует возможность манипулирования дескрипторами из LDT из userland.

Аналогично Fiasco, разработчики Pistachio также предусмотрели возможность манипулирования дескрипторами из userland. Правда, как говорит Espen Skoglund -- один из разработчиков Pistachio, он делал поддержку сегментации, но не закончил это дело (другие, более важные дела отодвинули это на потом). Сейчас возможна работа с отдельной LDT для каждого адресного пространства. Манипулирование GDT, в отличие от Fiasco, не поддерживается. Также, в случае Pistachio, возможно добавление только сегментов данных (а не кода и стека). При помощи переведения треда в особый режим возможно сделать так, чтобы ядро не трогало регистры ES, FS, GS и оставляло их на усмотрение usermode-задачи. По причинам, касающимся производительности, ядро сохраняет за собой свободу модификации регистров DS и SS.

Так что, я думаю, наделать 16-битных алиасов кусков 32-битного сегмента наверное, можно :) Надо будет только поближе с этип поэкспериментировать...

WBR,
Валерий


Sat 23 Jun 2007 15:34 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.