[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: пара отвлеченных вопросов, офтопик




> 14.06.06, Nikita V. Youshchenko<yoush@debian.org> написал(а):
>>
>> > 14.06.06, Nikita V. Youshchenko<yoush@debian.org> написал(а):
>> > > Ядро - это замкнутый в себе статический бинарник.
>> >
>> > А загружаемые модули?
>>
>> А загружаемые модули линкуются внутрь ядра; им доступны только символы,
>> экспортируемые ядром или другими загруженными модулями.
> 
> Значит, уже не замкнутый и не статический.

Ядро - замкнутое и статическое. Оно не может использовать неопределённые в
нём символы. Хотя само экспортирует что-то для модулей.

>> Советую почитать "Linux device drivers, 3rd edition" - доступно в сети.
> 
> Спасибо за совет. Читал. Лучшая из всех и, тем не менее, крайне
> недостаточная. 4th edition давно в сети.

Это с каких пор? А url можно?

>> > Из ядра можно вызывать любой системный вызов, доступный из user space.
>>
>> Ну если только не играться с ассемблером, то это не так.
> 
> Никаких игр с ассемблером. Всё штатными средствами ядра.
> Всё ассемблерное и платформо-зависимое предоставлено ядром.
> 
>> Системному вызову
>> xxx() соответствует в ядре функция sys_xxx(), и эти функции не
>> экспортируются
> 
> Экспорт не нужен.
> 
>> (так как, помимо прочего, используют специальные binary
>> calling conventions).
> 
> Любые calling conventions описаны в прототипах.
> Неважно.
> 
>> > Просто нужно знать как. Это не документировано, но без этого маханизма
>> > само ядро обойтись не может, а потому это будет доступно всегда.
>>
>> А с этого момента поподробнее пожалуйста. Многолетний опыт работы в ядре
>> заставляет усомниться в ваших словах ...
> 
> Ну тогда можно и без подробностей - смотрите <asm/unistd.h> и
> приложенный файл - надёргал фрагментов из рабочего кода.

Забавно. Не знал. Хотя это выглядит скорее извращением - особенно если
учесть, скажем, размер структуры pt_regs для RISC архитектур.



Reply to: