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


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

> > LX формат не позволяет однако мапить объекты в разные адреса разных процессов.
>
> На самом деле позволяет (в люцидовской дискуссии я писал, как это может быть реализовано). Но от разорванности памяти на две части это не спасает.

Впрямую - не позволяет. Если не переходить к частным случаям. Кроме ссылок наружу есть еще и внутренние ссылки (между объектами самого LX-файла). Их-то как разресолвить?
Смотри, вот например DLL с всего двумя сегментами. Один сегмент - код, второй - шареные данные.
В процессе 1 код грузим в адрес 0x1000, данные в 0x2000. В процессе 2 код грузим в адрес 0x5000, а данные - в 0x8000. Как фиксапить? Неважно, относительные ссылки на данные или абсолютные - при любом раскладе адреса/смещения в двух процессах будут разными.

Sat 09 Jun 2007 10:15 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.3) Gecko/2003031




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.