linux进程创建过程与原理
来源:互联网 发布:c 九九乘法表代码 VB 编辑:程序博客网 时间:2024/05/02 01:23
系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构模型。整个linux系统的所有进程也是一个树形结构。树根是系统自动构造的,即在内核态下执行的0号进程,它是所有进程的祖先。由0号进程创建1号进程(内核态),1号负责执行内核的部分初始化工作及进行系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程。随后,1号进程调用execve()运行可执行程序init,并演变成用户态1号进程,即init进程。它按照配置文件/etc/initab的要求,完成系统启动工作,创建编号为1号、2号...的若干终端注册进程getty。每个getty进程设置其进程组标识号,并监视配置到系统终端的接口线路。当检测到来自终端的连接信号时,getty进程将通过函数execve()执行注册程序login,此时用户就可输入注册名和密码进入登录过程,如果成功,由login程序再通过函数execv()执行shell,该shell进程接收getty进程的pid,取代原来的getty进程。再由shell直接或间接地产生其他进程。
上述过程可描述为:0号进程->1号内核进程->1号内核线程->1号用户进程(init进程)->getty进程->shell进程
注意,上述过程描述中提到:1号内核进程调用执行init并演变成1号用户态进程(init进程),这里前者是init是函数,后者是进程。两者容易混淆,区别如下:
1.init()函数在内核态运行,是内核代码
2.init进程是内核启动并运行的第一个用户进程,运行在用户态下。
3.init()函数调用execve()从文件/etc/inittab中加载可执行程序init并执行,这个过程并没有使用调用do_fork(),因此两个进程都是1号进程。
- linux进程创建过程与原理
- linux进程创建过程与原理
- linux进程创建过程与原理
- linux进程创建过程与原理
- linux进程创建过程与原理 & linux进程创建:fork、vfork和clone联系与区别
- Linux下进程的创建过程分析(_do_fork/do_fork详解)--Linux进程的管理与调度
- 伪代码说明Linux进程创建过程
- Linux下守护进程的创建过程
- 伪代码说明Linux进程创建过程
- linux创建新进程的过程
- linux创建新进程的过程
- Unix/Linux 初始创建进程过程
- Linux创建子进程的具体过程
- linux创建新进程的过程
- linux创建新进程的过程
- Linux 进程创建过程的分析
- Linux系统创建进程过程简单分析
- linux系统进程创建过程详解
- android UI布局优化的常用工具
- BIT 1092 Matrix Multiplication
- JVM内存设置
- Uboot Stage1详解
- Jongo
- linux进程创建过程与原理
- vb.net是怎么实现的
- String中intern的方法
- zend 9 快捷键 转
- C Self-study Log
- 20套华丽的应用程序图标,带给你不一样的视觉体验
- 【iOS-cocos2d-X 游戏开发之一】在Mac下结合Xcode搭建Cocos2d-X开发环境!
- 实现广义表求表头和表尾的运算
- 程序员必备的国外IT网站