首页 > 解决方案 > 为什么 `kernal_thread()` 没有被列为 Linux 的系统调用?

问题描述

我想知道为什么在http://man7.org/linux/man-pages/man2/syscalls.2.htmlkernal_thread()中没有列为系统调用?

Linux 应用程序程序员从不需要创建内核线程吗?

Linux 应用程序程序员可以访问该函数吗?

谢谢。

标签: linuxlinux-kernelsystem-calls

解决方案


clone应用程序程序员通常需要使用该列表中的系统调用来创建“内核调度线程”,也就是“操作系统线程”或“本机线程” 。

然而,“内核线程”只是内核用来运行内核代码以实现其内部目的的线程。它们仅由内核上下文代码创建和使用。每个软件都负责创建和管理自己的线程来完成自己的工作,包括用户空间应用程序和内核本身。

kernel_threadkernel/fork.c中定义的内核函数,不暴露给用户空间。它是内部内核 API 的一部分,而不是系统调用。


推荐阅读