主要区别1init函数是内核代码linux内核学习(三)之init进程学习(上)开发者社区-的一部分linux内核学习(三)之init进程学习(上)开发者社区-,在内核态运行,是独立的可执行代码的一部分2init进程在Linux操作系统中是一个具有特殊意义的进程,它是由内核启动并运行的第一个用户进程,因此它不是运行在内核态,而是运行在用户态它的代码不是内核本身的一部分,而是存放在硬盘上可执行文件的。
一个正在运行的系统可以进入单用户模式,具体做法是利用init,请求运行级别1内核启 动时,在内核命令行指定single或emergency关键字,就可进入运行级别1了内核同时也为init 指定命令行, init从关键字得知自己不应该采用默认的运行级别内核命令行的输入方式和你 启动系统的方式有关有时,以单用户。
至此,内核初始化和启动过程结束下面就进入了用户空间的初始化,最后运行shell登陆界面注Init进程一直存活,因为它创建和监控在操作系统外层执行的所有进程的活动这段对进程0的描述引用自Understanding The Linux Kernel Third EdtionThe ancestor of all processes, called process。
内核自行启动已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等之后,就通过启动一个用户级程序init的方式,完成引导进程所以,init始终是第一个进程其进程编号始终为1内核会在过去曾使用过init的几个地方查找它,它的正确位置对Linux系统来说是sbininit如果内核找。
init 进程的作用当 Linux 系统引导完成后,init 进程作为除内核之外运行的第一个进程被启动init 进程负责读取 etcinittab 文件,以确定系统应该进入的运行级别以及相应的配置文件位置运行级别运行级别定义了系统上的所有服务在某个给定时间的操作方式Slackware Linux 的运行级别包括013。
0号进程的作用有两个一是创建1号进程,二是当没有就绪进程时,执行cpu_idle函数让CPU处于空转状态init_task是内核中所有进程线程的task_struct雏形在内核初始化过程中,通过静态定义构造出了一个task_struct接口,称为init_task简而言之,内核中的init_task变量是进程0使用的进程描述符,也是。
在Linux系统中,init进程负责管理系统的启动和运行级别在第一个虚拟终端devtty1上运行getty命令的配置如下12345respawnsbingetty 9600 tty1 其中,第一个字段标识终端设备,第二个字段指定应用的运行级别25,第三个字段表示命令退出后应重新启动以支持用户登录和退出,最后一个字段。
init进程是所有用户进程的始祖,由0号进程在start_kernel调用rest_init后创建init进程作为Unix系统内核初始化与用户态初始化的连接点,它是所有用户进程的祖先在运行init进程之前,系统已完成内核态初始化,最后一个动作是运行sbininit可执行文件init进程由fork调用产生,它是第一个从0号进程fork出。
联系电话:18300931024
在线QQ客服:616139763
官方微信:18300931024
官方邮箱: 616139763@qq.com