【发布时间】:2015-08-21 14:09:45
【问题描述】:
通常在函数调用期间,函数会被压入进程的堆栈部分,调用函数会等待。但是程序堆栈需要一个进程对吗?但是内核不是任何进程的一部分(我所说的内核是指执行文件管理和进程间通信的部分)。但我认为即使是内核也使用某些函数来完成各种事情。那么如果不使用进程,内核中的这些函数是如何组织的呢??
【问题讨论】:
-
是的,它确实使用了函数。您可以阅读(部分)来源。 (记住它是开源的!)从子目录 mm 开始。
-
我读到内核本身不是一个进程。我想知道内核如何在不成为进程的情况下自行执行。
-
它自己不执行,它由引导程序调用,并连续运行(如果由系统调用或中断调用)并且它不需要进程号,因为它不是进程。初始化后,内核只调用一个进程:init (pid=1) 所有其他进程都是 init 的子或孙。
-
您可以将内核视为一个巨大的共享库,它将您的程序连接到硬件并处理进程调度。
标签: linux-kernel kernel