> 14.06.06, Nikita V. Youshchenko<[EMAIL PROTECTED]> написал(а): > > Ядро - это замкнутый в себе статический бинарник. > > А загружаемые модули?
А загружаемые модули линкуются внутрь ядра; им доступны только символы, экспортируемые ядром или другими загруженными модулями. Советую почитать "Linux device drivers, 3rd edition" - доступно в сети. > > > Чтобы использовать внутри ядра библиотеку, надо поместить эту > > библиотеку внутрь ядра. Что можно сделать далеко не с любым кодом: > > например, код не должен использовать системные вызовы (либо их > > использование должно быть заменено на вызов внутренних функций ядра, > > их реализующих - а эти функции не всегда экспортируются); > > Из ядра можно вызывать любой системный вызов, доступный из user space. Ну если только не играться с ассемблером, то это не так. Системному вызову xxx() соответствует в ядре функция sys_xxx(), и эти функции не экспортируются (так как, помимо прочего, используют специальные binary calling conventions). Содержательная функциональность некоторых - но не всех! - системных вызовов доступны в виде внутреннего ядерного API. А игры с ассемблером в ядре до добра не доводят. > Просто нужно знать как. Это не документировано, но без этого маханизма > само ядро обойтись не может, а потому это будет доступно всегда. А с этого момента поподробнее пожалуйста. Многолетний опыт работы в ядре заставляет усомниться в ваших словах ...
pgpo8u0UznDkp.pgp
Description: PGP signature