#c #linux
Вопрос:
Может ли кто-нибудь, пожалуйста, дать мне документ, описывающий исходные папки ядра, их структуру, функциональность и то, как они организованы?
В частности, какая польза от папки include/uapi/**?
Спасибо.
Ответ №1:
Предполагается uapi
, что папка должна содержать API пользовательского пространства ядра. Затем при установке ядра включаемые файлы uapi становятся файлами верхнего уровня /usr/include/linux/. (Я не совсем понимаю, какие исключения остаются.)
Другие заголовки теоретически являются закрытыми для ядра. Это позволяет четко разделить структуры, видимые пользователю, и структуры, доступные только для ядра, которые ранее были объединены в один заголовочный файл.
Лучшее обсуждение этого вопроса, которое я видел, находится в еженедельной новостной статье Linux, которая предшествовала выходу патча.
Сам патч UAPI был выпущен с ядром 3.7. Краткое и грязное резюме Лайнуса:
- «uapi» включает очистку файлов. Идея состоит в том, что материалы, экспортируемые в пространство пользователя, теперь должны быть найдены в разделах include/uapi и arch/$(ARCH)/include/uapi.
Будем надеяться, что это действительно сработает. Потому что в противном случае это была просто совершенно бессмысленная боль в *сс. И, несмотря на это, я определенно покончил с такого рода «давайте проведем массовую очистку включенных файлов» навсегда.