LINUX.ORG.RU

Модули...


0

0

Возник вопрос относительно того, в какую облатсь памяти помещается код модуля, после его подключения. В коде insmod он рассматривается, как обыкновенный объектник и соответствующим образом обрабатывается. После чего заполняются соответствующие таблицы, передаваемые системному вызову sys_init_module, который и завершает работу, перенося необходимые структуры в kernel space. Дык вот, получается, что сам код модуля остаётся в user space? Ведь изначально он загружается в пользовательском режиме, а никакого переноса кода из одного сегмента памяти в другой в insmod нет... Я прав или я чего-то не вкурил? Получается, что код, исполняемый в режиме ядра находится в пользовательском сегменте памяти и может быть спокойно переписан? Бред какой-то.

anonymous

> что код, исполняемый в режиме ядра находится в
> пользовательском сегменте памяти

конечно нет. sys_init_module() копирует все в kernel space.
смотрите код в 2.6, там проще.

idle ★★★★★
()
Ответ на: комментарий от idle

Ок, спасибо. Я таки уже догадался посмотреть код системника, оказалось, что он не только структуры копирует... : )

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.