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


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : DDP
To : Slavik Gnatenko
Subj : менеджеры пакетов

> > тогда вопрос: а почему же пишут, что программы работают каждая в своём изолированном пространстве? то есть, по-идее, они в своём пространстве и должны искать нужные модули? а если их там нет, то загружать из своего каталога. можно же в конфиге в пути первым пунктом поставить точку (вы уже конечно написали, что ядро ищет сначала в памяти, получается, что параметры конфига игнорируются?).
> Какая-то у тебя каша в голове. У процесса да, адресное пространство как бы индивидуальное. Под этим имеется в виду, что мапинг этого пространства на общесистемную виртуальную память он может настроить по своему усмотрению. В том числе и на те же страницы, которые уже замаплены в каких-то других процессах. В частности т.н. системная область адресов, в которой лежит ядро и его данные, во всех процессах замаплена одинаково. Модули грузятся тоже в общесистемную память, а потом мапятся на те процессы, которые их попросили. Изначально в адресном пространстве процесса замаплена только системная область, а всё остальное мапится по потребности. В начале ядерный загрузчик EXE файла грузит этот самый файл в виртуальную память (если он ещё туда не загружен) и мапит кусочек адресного пространства на эти данные. Потом по потребности мапятся другие модули или приватная память.
>
> Поиск идёт, если не сильно вдаваться в подробности, в три стадии:
> - среди уже замапленых модулей в текущий процесс. Если нашли, то просто увеличиваем счётчик использований. Это тривиальная стадия и о ней обычно даже не упоминают;
> - среди модулей, которые уже есть в виртуальной памяти системы. Если нашли, то остаётся только замапить его в процесс;
> - как последний шанс, ищем по диску согласно LIBPATH. Если нашли - грузим в общесистемную память и дальше стадия 2.
>
> Из конфига ничего не игнорируется, но до LIBPATH может просто не дойти. Сделано так ради скорости поиска.
>
> Точка в LIBPATH - это зло на самом деле. Она трактуется в самом обычном понимании: как текущий каталог. Расчитывать, что в этом каталоге есть хоть какие-то библиотеки, а уж тем более, нужные - это очень смело.
в общем, нет идеала на этом свете.
ладно, до зимнего отпуска две недели подождать а там попробуем дальше двигаться, если, конечно, комп не разнесу.

Sun 09 Dec 2018 10:57 Mozilla/5.0 (Windows NT 6.0; rv:52.0) Gecko/20100101 Firefox




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.