Программы пользовательского пространства существуют в дереве исходных текстов ядра Linux в подкаталоге tools / .
Кажется, что нет четкого (или какого-либо) определениякакая программа представляет собой «инструмент», который требует / заслуживает включения / распространения с исходным кодом ядра.
Типы утилит, которые (в настоящее время) существуют в дереве исходных кодов ядра, включают программу администратора для проверки битов состояния страниц памяти ( tools / vm / page-types.c ) длятри простые программы, которые используют / демонстрируют («новый») интерфейс chardev GPIO ( tools / gpio / gpio-event-mon.c и другие).
Самая большая категория программ пользовательского пространстваили инструменты в исходном коде ядра находятся в подкаталоге ядра tools / testing / selftests / .
Документация находится в Документация / dev-tools / kselftest.rst
======================
Linux Kernel Selftests
======================
The kernel contains a set of "self tests" under the tools/testing/selftests/
directory. These are intended to be small tests to exercise individual code
paths in the kernel. Tests are intended to be run after building, installing
and booting a kernel.
...
kselftest runs as a userspace process. Tests that can be written/run in
userspace may wish to use the `Test Harness`_. Tests that need to be
run in kernel space may wish to use a `Test Module`_.
В качестве альтернативы существует множество подсистем ядра и аппаратных компонентов, которые не имеют своих инструментов в исходном коде ядра, но имеют этот код в виде отдельных пакетов исходного кода / проекта.
Учитывая стабильность двоичного API, который ядро Linux предоставляет пользователям, программа редко привязана к конкретной версии ядра.Поддерживающие ядро по возможности избегают регрессии (то есть изменения, которое приводит к тому, что что-то нарушается для существующих пользователей)
Одной из причин включения программ в исходный код ядра является удобство для разработчиков ядра.
Сборщикам ядра рекомендуется также создавать и запускать программы самотестирования.