当前位置 : 主页 > 手机开发 > ios >

系统启动过程

来源:互联网 收集:自由互联 发布时间:2021-06-11
开机自检 按下电源键计算机加载BIOS(计算机上最接近硬件的软件,各家主板制造厂商都会开发适合自己主板的BIOS,其中很重要的一项功能就是开机对自身硬件做一次健康检查,只有硬件
  1. 开机自检
    按下电源键计算机加载BIOS(计算机上最接近硬件的软件,各家主板制造厂商都会开发适合自己主板的BIOS,其中很重要的一项功能就是开机对自身硬件做一次健康检查,只有硬件没问题,才能运行软件,操作系统本身也是一种软件,这种通电后开始自检的过程叫做 加电自检。Power On Self Test,简称是POST)
  2. 引导系统
    这个动作是BIOS设定的,BIOS默认会从硬盘上的第0柱面,第0磁道,第1个扇区中读取MBR(主引导记录),一个扇区的大小时512字节,存放的一段引导程序的分区信息,其中引导程序部分占用446字节,另外的64字节是磁盘分表区DPT,最后的两个字节是MBR的结束位置。这512字节的空间内容是有专门的分区程序产生的, windows底下的 fdisk.exe。linux底下的fdisk命令,不依赖于任何操作系统,而且MBR中的引导程序是可以修改的。所以可以利用这个特性实现多操作系统共存,由于Redhat,centos 默认使用grub作为其引导系统的程序,而grub本身比较大,所以常见的方式就是在MBR中写入grub地址。这样系统实际会载入grub作为操作系统的引导程序
  3. 运行grub
    根据其配置文件加载kernal镜像,并运行内核加载后的第一个进程/sbin/init,这个进程会根据/etc/inittab表来初始化工作。在这里最重要的就是根据文件中设定的值来确认系统运行的runlevel,默认的runlevel定义在 id:3:initdefault:中,数字3的含义是目前运行级别为3.
  4. 配置系统变量....
    根据/etc/inittab中定义的系统初始化配置 si::sysinit:/etc/rc.d/rc.sysinit执行/etc/rc.sysinit脚本,会配置系统变量,网络配置,启动swap,设定/proc、加载用户自定义模块,加载内核设置
  5. 运行runlevel下的所有脚本
    根据第三部定义的runlevel。会启动对应的服务。例如,为3,会运行/etc/rc3.d/下所有的脚本。
  6. 运行/etc/rc.local
  7. 生成终端
网友评论