LINUX.ORG.RU

История изменений

Исправление Kosyak, (текущая версия) :

При чём здесь смещения и отображения? Меня интересует не как адресное пространство устроено, а как в него двоичные данные загружает ядро при запуске программы.

Срочно, 2 главы Таненбаума внутривенно!

Очень грубо говоря, ядро делает mmap исполняемого файла в память. При чтении/записи/исполнении в этой памяти, если требуемый кусок (обычно размером в страницу) ещё не в памяти, то он подгружается из файла.

Собственно, вот: http://lxr.free-electrons.com/source/fs/binfmt_elf.c#L664

Самое интересное начинается отсюда: http://lxr.free-electrons.com/source/fs/binfmt_elf.c#L862

Исходная версия Kosyak, :

При чём здесь смещения и отображения? Меня интересует не как адресное пространство устроено, а как в него двоичные данные загружает ядро при запуске программы.

Срочно, 2 главы Таненбаума внутривенно!

Очень грубо говоря, ядро делает mmap исполняемого файла в память. При чтении/записи/исполнении в этой памяти, если требуемый кусок (обычно размером в страницу) ещё не в памяти, то он подгружается из файла.