• 系统启动过程


    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. 生成终端
  • 相关阅读:
    杭电OJ-1031_Design T-Shirt
    杭电OJ-1036_Average is not Fast Enough!
    2019杭电多校一 L. Sequence (NTT)
    Binary Table CodeForces
    2019牛客多校一 H. XOR (线性基)
    Jzzhu and Numbers CodeForces
    Geometers Anonymous Club CodeForces
    [笔记] 扩展卢卡斯
    Luogu P2183 [国家集训队]礼物 扩展卢卡斯+组合数
    Luogu P4901 排队 fib数列+树状数组+倍增
  • 原文地址:https://www.cnblogs.com/cizao/p/11569368.html
Copyright © 2020-2023  润新知