这篇 Linux 总结得很棒啊!( 七 )


id zhangsan
显示 zhangsan 用户所在的所有组
groups zhangsan
显示用户详细资料
finger zhangsan
8. 附录8.1 系统启动8.1.1 BIOS

  • 计算机通电后 , 第一件事就是读取刷入ROM芯片的开机程序 , 这个程序叫做(Basic Input/Output System)
8.1.2 硬件自检
  • BIOS程序首先检查 , 计算机硬件能否满足运行的基本条件 , 这叫做"硬件自检"(Power-On Self-Test)
  • 如果硬件出现问题 , 主板会发出不同含义的蜂鸣 , 启动中止 。 如果没有问题 , 屏幕就会显示出CPU、内存、硬盘等信息 。
8.1.3 启动顺序
  • 硬件自检完成后 , BIOS把控制权转交给下一阶段的启动程序 。
  • 这时 , BIOS需要知道 , "下一阶段的启动程序"具体存放在哪一个设备
  • BIOS需要有一个外部储存设备的排序 , 排在前面的设备就是优先转交控制权的设备 。 这种排序叫做"启动顺序"(Boot Sequence)
  • BIOS按照"启动顺序" , 把控制权转交给排在第一位的储存设备 。
  • 这时 , 计算机读取该设备的第一个扇区 , 也就是读取最前面的512个字节 。 如果这512个字节的最后两个字节是0x55和0xAA , 表明这个设备可以用于启动;如果不是 , 表明设备不能用于启动 , 控制权于是被转交给"启动顺序"中的下一个设备 。
  • 这最前面的512个字节 , 就叫做"主引导记录"(Master boot record , 缩写为MBR)
8.1.4 主引导记录的结构
  • "主引导记录"只有512个字节 , 放不了太多东西 。 它的主要作用是 , 告诉计算机到硬盘的哪一个位置去找操作系统 。
    • (1) 第1-446字节:是用来记录系统的启动信息的,调用操作系统的机器码
    • (2) 第447-510字节(64个字节):分区表(Partition table) , 分区表的作用 , 是将硬盘分成若干个区
    • (3) 第511-512字节:主引导记录签名(0x55和0xAA)
8.1.5 分区表
  • 磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分
  • 磁盘一旦划分成多个分区 , 不同类的目录与文件可以存储进不同的分区内
  • "主引导记录"因此必须知道将控制权转交给哪个区
  • 分区表的长度只有64个字节 , 里面又分成四项 , 每项16个字节 。 所以 , 一个硬盘最多只能分四个一级分区 , 又叫做"主分区"
    • (1) 第1个字节:如果为0x80 , 就表示该主分区是激活分区 , 控制权要转交给这个分区 。 四个主分区里面只能有一个是激活的 。
    • (2) 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等) 。
    • (3) 第5个字节:主分区类型 , 比如FAT32、NTFS等 。
    • (4) 第6-8个字节:主分区最后一个扇区的物理位置 。
    • (5) 第9-12字节:该主分区第一个扇区的逻辑地址 。
    • (6) 第13-16字节:主分区的扇区总数 。
8.1.6 硬盘启动
  • 计算机的控制权就要转交给硬盘的某个分区了
  • 四个主分区里面 , 只有一个是激活的 。 计算机会读取激活分区的第一个扇区 , 叫做"卷引导记录"(Volume boot record , 缩写为VBR)
8.1.7 操作系统
  • 控制权转交给操作系统后 , 操作系统的内核首先被载入内存 。
  • 以Linux系统为例 , 先载入 /boot 目录下面的 kernel。 内核加载成功后 , 第一个运行的程序是 /sbin/init。 它根据配置文件(Debian系统是/etc/initab)产生init进程 。 这是Linux启动后的第一个进程 , pid进程编号为1 , 其他进程都是它的后代

    特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。