Зачем нам нужно скомпилированное исходное дерево ядра для компиляции модулей?

Модули ядра Linux не кажутся переносимыми: они скомпилированы для конкретной версии ядра (поэтому даже двоичные драйверы имеют некоторые исходные файлы для компиляции). И вам не просто нужны одни и те же исходные коды ядра, вам даже нужно скомпилировать их и использовать самодельную версию... (пожалуйста, исправьте меня, если я где-то ошибаюсь).

Итак, мой вопрос: в чем причина всего этого? (... какой-нибудь двоичный интерфейс, который генерируется каждый раз?) И есть ли способ компилировать модули для готового ядра? (источники могут быть доступны, но не дерево, из которого оно скомпилировано).

1 ответ

Решение

Вы думаете, что хотите стабильный интерфейс ядра, но на самом деле этого нет, и вы даже не знаете этого. Вам нужен стабильно работающий драйвер, и вы получите его, только если ваш драйвер находится в основном дереве ядра. Вы также получите много других хороших преимуществ, если ваш драйвер находится в основном дереве ядра, и все это превратило Linux в такую ​​сильную, стабильную и зрелую операционную систему, что и является причиной того, что вы используете его в первую очередь.

(Из интерфейса драйвера ядра Linux (на все ваши вопросы ответили, а затем и некоторые))

Другие вопросы по тегам