01.10.2012 22:01, Andrey Rahmatullin пишет:
> On Mon, Oct 01, 2012 at 09:24:58PM +0400, "Артём Н." wrote:
>>>> Или в Linux нет чего-то подобного kernel32.dll (т.е. всё только через libc
>>>> обёртки над системными вызовами, через прерывания, например)?
>>> Уточните вопрос.
>> Т.е., libc не "висит" в памяти, а загружается каждый раз заново для каждого
>> процесса (ну или загружается только часть libc, поскольку библиотека - 
>> архив, а
>> как оно работает дальше, я не знаю)?
>>
>> Т.е., допустим, kernel32.dll всегда был доступен по определённому адресу у
>> разных винд. Но по фиксированному. Загрузчик знал адрес и при разрешении 
>> импорта
>> просто подставлял адреса из таблицы экспорта kernel32 + её адрес загрузки
>> (грубо), насколько я понимаю.
> Вообще вы тут смешиваете разделение ядро-юзерспейс (иначе к чему про
> системные вызовы и прерывания) и системные-левые библиотеки. Да, системные
> библиотеки в Win32 имеют базовые адреса, позволяющие не переписывать
> ссылки на них, но kernel32.dll тут не отличается ничем от других
> стандартных библиотек, к тому же это можно делать и со своими
> библиотеками.
За исключением того, что оно является переходником между ядром и приложением. И
это единственная библиотека, которую импортирует любое приложение.
Вопрос был в том висят ли линуксовые библиотеки в памяти и разделяются между
всеми процессами или нет?


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/5069e588.7070...@yandex.ru

Ответить