首页 > 解决方案 > 进程是如何在处理器中创建的?

问题描述

当我在 unix/Linux 中执行程序时,引擎盖下到底发生了什么?

谁负责创建流程?

我是否需要调用内核来启动一个进程(我的程序实例)?从这个意义上说,我的程序应该在处理器上运行以进行内核调用,对吗?那么第一个内核调用是如何发生在进程启动的呢?. 是不是像死锁一样?那么内核首先出现在哪里呢?

抱歉,我刚刚阅读了很多关于所有这些的文件,但仍然无法连接这些点或获得完整的图片。有人可以详细说明简单的术语吗?

标签: linuxunixprocesslinux-kernelkernel

解决方案


你的程序是由其他人而不是你的程序开始的(否则它将是鸡蛋和鸡的悖论)。假设您从某个 shell 运行程序,shell 对负责启动新进程的 Linux 内核函数进行内核调用。它启动程序所需的内存空间并调用它的main。现在,每次您的程序需要一些需要 cpl3 的东西时,它都会调用一个内核函数。


推荐阅读