Назад | Перейти на главную страницу

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

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

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

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

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