Я собираю busy-box и iptables для встроенного устройства, и одной из зависимостей для них являются заголовки ядра.
Я искал во всей файловой системе файлы * .ko и не нашел ни одного. Итак, я пришел к выводу, что приложения не создают никаких загружаемых драйверов (модулей ядра).
В каких других случаях приложению пользовательского пространства требуются заголовки ядра?
linux
linux-kernel
kernel-modules
TheMeaningfulEngineer
источник
источник
include <linux/*.h>
открыть сокет? (Я стремился к sys / socket.h)Ответы:
Потому что эти программы созданы для использования вещей, определенных в заголовках ядра:
Для каждого конкретного инструмента вам нужно прочитать исходный код инструмента и соответствующий заголовок ядра, чтобы выяснить, что именно.
Вы можете увидеть несколько вещей, которые прокомментированы, чтобы сделать это легко.
Например,
mkfs_vfat
включаетlinux/fd.h
в себя получитьFDGETPRM
:Вы, вероятно, могли бы удалить релевантные данные
#include
и следить за ошибками компилятора, чтобы упростить их; вы получите предупреждения о том, что некоторые вещи не определены. Эти вещи, вероятно, происходят из заголовков ядра.источник