谁启动一个程序来运行?

谁启动一个程序来运行?

谁启动一个程序在 RAM 上运行?是内核吗?

假设我在 Linux 中点击“ls”命令,我知道它正在由 CPU 核心处理的 RAM 上运行,并在必要时进行系统调用(对内核),并使用系统调用刷新 o/p。但谁真正让“ls”在 RAM 上运行呢?

答案1

当您ls在终端中键入时,在该终端中运行的 shell(可能是 bash 或 zsh 等)将调用系统调用,告诉内核分叉其进程。然后,它告诉内核使用系统调用将新进程的进程映像替换为ls程序execve。这会将程序的代码ls从磁盘加载到内存中。

所以如果你指的是哪个程序导致程序运行,那就是 shell。

相关内容