zoukankan      html  css  js  c++  java
  • 系统启动流程

    简单版

    linux启动过程
    第一进行加电自检 主要是检查系统的软硬件是否正【细节CMOS】
    dier通过bois中设置启动次序 去指定的磁盘上找第一个扇区,这个扇区就是MBR
    第三通过MBR中的bootloader去指定的设备上找grub.conf【细节:MBR】
    第四,通过grub.conf找到内核文件 vmlinuxz initramfs
    第五,将vmliuxz initramfs加载到内存中【细节:为何需要两个,如何工作】
    第六,将根从内存切换到磁盘文件系统 【第一次启动为只读,第二次启动为读写】
    第七,启动id为1的进程【细节:centos5、centos6,centos7他们init有什么区别】
    第八,将设置为开机启动的程序启动起来【6为例 /etc/rc.d/rc3.dz S k】
    第九,去执行/etc/rc.d/rc.load文件命令指定

    全部的


    1) 按开机按钮
    2) POST(powner On Self Test):加电自检(开机自检)
    ·CMOS芯片中有一段程序,这就是BOIS程序,开机的是CPU读取这段程序完成加电自检
    ·开机CPU从CMOS中读取程序完成自检
    3)BIOS(Basic Input Output System):基本输入输出系统
    ·完成加电自检
    ·通过BIOS设置启动次序【开机的时候去哪个硬盘上找操作】
    4)boot sequence
    ·根据预先设置的启动次序,在找指定的硬盘上的第一个扇区
    5)MBR (Main Boot Record):主引导记录
    ·512字节
    ·前446字节:存储的一段程序,BootLoader,他的功能是去磁盘的指定位置上找系统内核文件
    ·中64字节:分区表,表示当前这个磁盘
    16字节表示一个分区,
    ·最后2字节:magic number,标识MBR看哪个激活的
    6)grub.conf
    (5和6 /boot/grub/grub.conf)
    ·通过grub.conf可以找到内核文件,vmlinuz、initramfs
    ·内核文件不需要依赖驱动
    7)vmlinuz、initramfs
    ·首先将initramfs在内存中展开,展开以后会生成linux基本的文件目录: /etc /boot /prov /sys
    ·临时将一段内存空间当做磁盘使用,完成系统的第一次启动
    ·启动以后,内核就可以使用initramfs中的驱动程序来使用底层硬盘和硬盘中的文件系统
    8)将根目录切换到磁盘的文件系统中
    ·这里是完成系统的第二次启动
    ·此时系统运行在磁盘上
    ·本次启动为了防止文件被破坏,系统处于只读状态
    ·如果系统检测正常,会重新挂载根目录为可读可写,这就是第三次启动
    9)启动系统中id为1的进程
    ·系统中所有子进程都是父进程fork自己活着复制自己产生的
    内核运行id为1的进程
    (centos5系统使用init运行id为1的进程)
    ·开启自启动服务,会依次顺序启动
    (centos6的init被改写了,改写后叫upstart,系统通过upstart产生id为1的进程【upstart完全兼容init】)
    ·开机自启动服务,会并行启动
    (centos7的init被完全重写,改写了systemd,)
    ·开机自启动服务,会进行服务的延迟启动
    10)启动那些设置为开机自启动的服务【以级别3为例】
    ·去/etc/rc.d/rc3.d/找以S为开头的程序,将这些程序启动起来
    ·去/etc/rc.d/rc3.d/找以K为开头的程序,将这些程序关闭掉
    11)去读取/etc/rc.d/rc.local
    ·将定义在这个文件中的命令依次执行


    RAM: Read Access Memory 读写内存
    ·内存中的书库是可读可写的
    ·断电/掉电内存数据全部清空
    ·平时说的电脑内存
    ROM: Read Only Memory 只读内存
    ·断电/掉电内存数据不丢失
    ·手机操作系统
    ·主板的CMOS芯片


    存储
    外部:外存,U盘,硬盘
    内部:内存
    RAM: Read Access Memory 读写内存
    ·内存中的书库是可读可写的
    ·断电/掉电内存数据全部清空
    ·平时说的电脑内存
    ROM: Read Only Memory 只读内存
    ·断电/掉电内存数据不丢失
    ·手机操作系统
    ·主板的CMOS芯片
    CPU --->内存(读取程序)--->

  • 相关阅读:
    mysql索引创建和使用细节(二)
    mysql索引创建和使用细节(一)
    PHP7.2.6安装sodium扩展
    passwd修改密码失败,报鉴定令牌操作错误
    centos6升级python版本至python3.5
    centos6升级gcc版本
    elasticsearch中文手册
    MySQL主从仅同步指定库
    适用于Centos6/7,vsftp自动安装脚本
    Redis内存模型
  • 原文地址:https://www.cnblogs.com/fatzi/p/13353615.html
Copyright © 2011-2022 走看看