linux - 进程是如何在处理器中创建的?
问题描述
当我在 unix/Linux 中执行程序时,引擎盖下到底发生了什么?
谁负责创建流程?
我是否需要调用内核来启动一个进程(我的程序实例)?从这个意义上说,我的程序应该在处理器上运行以进行内核调用,对吗?那么第一个内核调用是如何发生在进程启动的呢?. 是不是像死锁一样?那么内核首先出现在哪里呢?
抱歉,我刚刚阅读了很多关于所有这些的文件,但仍然无法连接这些点或获得完整的图片。有人可以详细说明简单的术语吗?
解决方案
你的程序是由其他人而不是你的程序开始的(否则它将是鸡蛋和鸡的悖论)。假设您从某个 shell 运行程序,shell 对负责启动新进程的 Linux 内核函数进行内核调用。它启动程序所需的内存空间并调用它的main。现在,每次您的程序需要一些需要 cpl3 的东西时,它都会调用一个内核函数。
推荐阅读
- r - 使用传递给递归函数的数据表优化 R 循环
- vb.net - 为动态创建的形状命名
- c# - interop word c# 设置图表高度/宽度
- wordpress - learndash 自定义分类模板名称的问题
- blockchain - 如何将合约部署到 ganache 测试网络并与之交互?
- java - Firebase 查询不适用于 android studio 中的 java
- python - 在 python 中生成唯一的二进制排列
- c - 全局变量在线程中没有改变?
- javascript - 将特定的表单输入传递给 Jquery 函数
- java - 如何将整个对象传递给Android上的另一个活动