inittab流程解析

Linux的启动过程主要分成两个阶段:

1.启动内核。在这个阶段,内核装入内存并初始化设备驱动。

2.执行程序init。init的进程号是1,是系统所有进程的起点。init程序需要读取配置文件/etc/inittab,以查看下一步做什么。inittab是一个不可执行的文本文件,它有若干行指令所组成,告诉 init 要进入什么运行级别,以及在哪里可以找到该运行级别的配置文件。

3、inittab一般需包括三项内容:
1)::sysinit:/etc/init.d/rcs,目的是指定初始化要执行的脚本配置文件,用于配置系统;
2)ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100,监听串口的连接,如果有连接,则以respawn方式运行getty程序,在ttyS0终端上开启shell服务。
3)::shutdown:/bin/umount -a -r ,在系统关机的时候执行umount命令卸载所有文件系统,并且在卸载失败时用只读模式重新安装以保护文件系统。

4、inittab执行流程:
1)初始化系统 ::sysinit:/etc/init.d/rcs sysinit:告诉init程序运行/etc/init.d/rcs脚本来初始化系统,rcs脚本中执行/etc/rc3.d/目录下的所有的rc启动脚本。/etc/rc3.d/目录中的这些启动脚本实际上都是一些链接文件,而不是真正的rc启动脚本,真正的rc启动脚本实际上都是放在/etc/init.d/目录下。而这些rc启动脚本有着类似的用法,它们一般能接受start、stop、restart、status等参数。
rcs执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。init接下来会打开终端,以便用户登录系统。

2)建立终端  ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
监听串口的连接,如果有连接,则以respawn方式运行getty程序。它会显示一个文本登录界面,在这个登录界面中会提示输入用户名,而输入的用户名将作为参数传给login程序来验证用户的身份。
注意:如果想绕过登录验证过程,想直接进入shell界面的话,可以把这一行改为:::respawn:-/bin/sh

建立终端具体流程:
a)getty进程接收到用户名后,启动login进程。

b)login进程要求用户输入口令。

c)用户输入口令。

d)login进程对username和password进行检查。

e)login启动shell进程。

f)shell进程根据/etc/password中的shell类型,启动相应的shell。并启动/etc/profile文件(此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。)和$HOME/.bash_profile文件。最后出现shell提示符,等待用户输入命令.

至此,启动过程结束。

3)告诉init,在系统关机的时候执行umount命令卸载所有文件系统,并且在卸载失败时用只读模式重新安装以保护文件系统。

参考:https://blog.csdn.net/cl11010/article/details/24484979


 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值