Почему `kernal_thread ()` не указан как системный вызов Linux? - PullRequest
0 голосов
/ 19 сентября 2018

Мне было интересно, почему kernal_thread() не указан в качестве системного вызова в http://man7.org/linux/man-pages/man2/syscalls.2.html?

У разработчика приложений Linux никогда нет необходимости создавать поток ядра?

функция, доступная для программиста приложений Linux?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

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

Итак, теперь ваш вопрос заключается в том, почему kernal_thread () не указан в системных вызовах.

(в ответе «этого другого парня») функция kernal_thread () используется программистом ядра или обычнов драйвере устройства для создания потока в пространстве ядра.Таким образом, их реализация находится в пространстве ядра и используется только разработчиком ядра или программистом.(Примечание: - если был предоставлен интерфейс для некоторой функции для пользовательского пространства, которая будет завершена как системный вызов, так как нет интерфейса для этой функции для пользователя, поэтому их нет для документации на страницах руководства)

ЕслиВы хотите прочитать о документах о функции пространства ядра, скачать исходный код ядра и проверить папку «Документация» или проверить источник для соответствующей функции, у них мало комментариев.

0 голосов
/ 19 сентября 2018

Прикладным программистам часто нужно создавать «запланированные потоки ядра», или «потоки ОС» или «собственные потоки», используя системный вызов clone из этого списка.

«Потоки ядра», тем не менее, простопотоки, которые ядро ​​использует для запуска кода ядра для своих внутренних целей.Они создаются и используются только контекстным кодом ядра.Каждая часть программного обеспечения отвечает за создание и управление своими собственными потоками для выполнения своей собственной работы, включая пользовательские приложения и само ядро.

kernel_thread - это функция ядра, определенная в kernel / fork.c, который не доступен для пользователей.Это часть внутреннего API ядра, а не системный вызов.

...