当前位置: 首页 > Linux

【学习笔记】3.一个进程的演化

时间:2023-04-06 20:53:08 Linux

0.同一系列索引进程和进程组的不同进程一个进程的演化1.init进程1.11号进程的创建内核态创建进程使用kernel_thread,usermode使用forkkernel_thread创建进程,会创建init进程和ktheadd内核线程,通常称为1号进程和2号进程。1号进程是所有进程的祖先:用户空间,和进程号.2负责管理内核中的进程:内核空间。这两个进程维护着系统的所有进程。此时1号进程还在内核空间。execve函数将控制器从内核空间切换到用户空间。通过添加用户空间应用(exec添加应用文件),那么kernel_thread创建的init进程就成为用户空间的第一个进程。图:可以看出1号进程和2号进程的父子关系图:所有进程的父进程都起源于1号进程和2号进程。1.21号进程做了什么?1号进程进入用户态后做了什么:完成各种初始化1.31号进程的特点用户空间的所有进程都是fork产生的init进程,init进程会转为daemon进程2.进程init进程0号进程init内核进程1号init用户进程getty进程shell进程前面已经介绍了步骤1-3步骤4:1号进程fork一个子进程,启动getty。如果用户已登录,将启动登录过程以验证登录。所以第4步没有登录,没有终端,如下图第5步:启动一个bash进程,并在bash中运行shell命令3.init进程的演变。特别重要的是要记住,上面的重点是init服务进程的演变。有利也有弊。因为不是每天都想着完整的init进程,虚拟终端和伪终端采用了不同的演化方式。例如sysvinit加载init.d文件。比如上面的介绍中,被管理的子进程是upstart。它可以同时运行。虚拟终端使用:systemd。(广泛使用)我们理解的时候,不是靠记忆,而是知道它的原理,然后才能理解。100.进贡不详,请看王老师精彩解说。在学习的过程中,我获得了极大的满足感,把以前的一些东西联系到了一起。非常感谢王立涛老师在此表达我的谢意。PS:本文所有资源和图片均来自视频