Linux开机启动流程

开机流程

  • 加载BIOS

  • 读取MBR

  • Boot Loader

  • 加载内核

    内核加载完成后第一个执行的程序是/sbin/init。用top命令查看,PID为1的就是这个程序。

  • 用户层init依据inittab文件来设定运行等级

    init首先查找启动等级(run-level)。因为启动等级不同,运行的启动脚本会不同。默认的等级有以下几项:
    0 - halt (系统直接关机)
    1 - single user mode (单人模式,用于系统维护时使用)
    2 - Multi-user, without NFS (类似3模式,不过少了NFS服务)
    3 - Full multi-user mode (完整模式,不过,是文本模式)
    4 - unused (系统保留功能)
    5 - X11 (与3模式类似,不过,是X终端显示)
    6 - reboot (重新开机)
    (不要选择0,4,6 ,否则进不了系统)

  • init进程执行rc.sysinit

    系统知道自己的启动等级后,接下来不是执行对应等级的启动脚本去启动服务,而是先设置好主机运行环境,执行的脚本文件是rc.sysinit,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。可以查看一下rc.sysinit文件得到更多内容。

  • 执行不同运行级别的脚本程序

    rc.d目录中,不同的level会有不同的目录。如启动 3模式,会有个rc3.d目录,里面就保存着需要启动的服务条目。其中S(start)开头的表明开机启动,K(kill)开头的表明开机不启动。数字表示启动顺序,数字越小,启动越早。

  • 执行rc.local

    启动服务后,接着就会执行rc.local脚本。所以,如果需要什么开机启动的话,可以写个脚本或命令到这里面来。

  • 执行/bin/login程序,进入登录状态

    进入shell

  • 用户登录后的启动操作

    用户登录后还会执行一些shell脚本(不同发行版本可能会有所不同)
    /etc/profile.d/file
    /etc/profile
    /etc/bashrc
    /root/.bashrc
    /root/.bash_profile

备注说明

  • Linux不同的发行版本中,rc.sysinit、rc.d、rc.local的名称和位置或许有所不同,但启动思想是一致的,在/etc目录下可以找到相应的文件。

参考资料

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值