2012-02-01 3 views

ответ

8

Они очень разные; Заголовки /usr/include/linux являются заголовками, которые использовались при компиляции стандартной библиотеки C системы. Они принадлежат библиотеке C-библиотеки и обновляются в блокировке со стандартной библиотекой C. Они существуют для обеспечения интерфейса пользователя userbox для ядра, как поняли и «брокера» библиотекой C.

Заголовки /usr/src/linux-headers-$(uname -r)/include/linux используются через символические ссылки /lib/modules/$(uname -r)/build. Они принадлежат пакетам заголовков ядра и обновляются с помощью ядра. Это подмножество заголовков ядра и достаточная система Kbuild, необходимая для создания модулей ядра из дерева. Эти файлы представляют собой внутренние элементы ядра - модули должны строить против них, если они должны правильно понимать объекты в памяти. Подробные сведения см. В файле ядра Documentation/kbuild/modules.txt.


1: «опосредованное» был моим первым выбором слова, но это подразумевает какое-то контроль доступа, что не так. «Брокер» подразумевает сторонний процесс, но это также не так. Рассмотрим: когда программа C вызывает _exit(), она фактически вызывает библиотеку стандартного C _exit()обертки, которая вызывает системный вызов exit(2). Интерфейс select(2) имеет верхнее ограничение на количество дескрипторов файлов, которые можно отследить, и этот лимит скомпилирован в стандартную библиотеку C. Даже если интерфейс ядра был расширен, библиотеку C также необходимо перекомпилировать.

Смежные вопросы