История изменений
Исправление 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 исполняемого файла в память. При чтении/записи/исполнении в этой памяти, если требуемый кусок (обычно размером в страницу) ещё не в памяти, то он подгружается из файла.