【日拱一卒行而不辍20220915】自制操作系统

安装操作系统与启动操作系统的区别

安装操作系统是指借助于ISO镜像文件,更新硬盘主引导记录MBR,并按照规定位置在特定的柱面、磁道、扇区放置好相关文件,待用。

启动操作启动是指在安装操作系统的基础上,主板加电后,BIOS查找硬盘主引导记录,找到相应操作系统的柱面、磁道、扇区加载内核以及其他文件。

刻录与复制的区别

刻录是以块为单位,复制是以文件为单位。复制过程中,无权限复制某些系统文件以及MBR,所以复制出的启动U盘是无法使用的。但刻录是一比一的,可以将系统文件以及MBR原封不动的克隆到其他位置。

硬盘的主引导记录MBR

硬盘的0柱面、0磁头、1扇区称为主引导扇区。一共512字节。

主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。

出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。

分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。

结束标志字,偏移地址01FE-01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

针对ubuntu-22.04.1-desktop-amd64.iso镜像文件,其前512字节的内容如下。

【日拱一卒行而不辍20220915】自制操作系统_第1张图片

 占用512个字节的MBR中,偏移地址01BEH--01FDH的64个字节,为4个分区项内容(分区信息表)。它是由磁盘介质类型及用户在使用 FDISK定义分区说确定的。在实际应用中,FDISK对一个磁盘划分的主分区可少于4个,但最多不超过4个。每个分区表的项目是16个字节,其内容含义如下。

存贮字节位

内容及含义

第1字节

引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。

第2、3、4字节

本分区的起始磁头号、扇区号、柱面号。其中:

    磁头号——第2字节;

    扇区号——第3字节的低6位;

    柱面号——为第3字节高2位+第4字节8位。

第5字节

分区类型符。

    00H——表示该分区未用(即没有指定);

    06H——FAT16基本分区;

    0BH——FAT32基本分区;

    05H——扩展分区;

    07H——NTFS分区;

    0FH——(LBA模式)扩展分区(83H为Linux分区等)。

第6、7、8字节

本分区的结束磁头号、扇区号、柱面号。其中:

    磁头号——第6字节;

    扇区号——第7字节的低6位;

    柱面号——第7字节的高2位+第8字节。

第9、10、11、12字节

本分区之前已用了的扇区数。

第13、14、15、16字节

本分区的总扇区数。

每个分区都拥有自己的启动扇区,可以用来存放引导程序,并且该引导程序可以将管理权交给另一引导程序(其他分区的引导扇区)或者自己引导所在的分区。是的,可开机的内核文件不是在引导扇区内,而是在各分区内。 

  • linux 安装的时候可以选择安装在分区的启动扇区,或者 MBR,linux 的 loader 可以手动转换引导程序。
  • windows 会覆盖掉 MBR 和自己所在的分区。你没有办法保留之前 MBR 中对 linux 引导程序的指向。

上述两个原因表明了为何需要先安装 windows 操作系统,再安装 linux,否则将不会在开机的时候看到 linux 引导选项。

软盘的MBR

过去的软盘通常采用FAT12文件系统,软盘是不存在MBR的。软盘启动时,BIOS会检查软盘的0面0磁道1扇区,如果发现此扇区以0xaa55结束。则BIOS认为此扇区是一个可引导扇区(Boot Sector)。正确的Boot Sector除了以0xaa55结束外还应该包含512字节以内的执行代码。可以看出软盘引导扇区与硬盘MBR处于相同位置。

安装与启动的区别

安装是指BIOS通过USB的MBR或者光盘的MBR进行的将USB中或光盘中的内容复制到硬盘对应存储区域,并修改硬盘MBR的过程。

启动是指BIOS通过硬盘的MBR将指定的启动扇区内容复制进入内存,进而多步导入操作系统内核镜像并运行的过程。

U盘的类型

NAND FLASH。在U盘、各种存储卡里面的都是这种 FLASH。

由于工艺上的不同,它比NOR FLASH拥有更大存储容量,而且便宜。但也有缺点,就是无法寻址直接运行程序,只能存储数据。

通常使用NAND FLASH 存储数据和程序,但是必须有NOR FLASH来启动。必须先用一片小的NOR FLASH 启动机器,再把OS等软件从NAND FLASH 载入SDRAM中运行。

固态硬盘的类型

 大部分的固态硬盘由三个主要零件组成,包含Controller控制芯片DRAM以及NAND flash闪存

控制芯片是NAND flash与电脑的主要沟通桥梁;

NAND flash则是由多个区块的非易失性内存颗粒所构成,也是数据主要储存的地方

DRAM是易失性内存,需要持续供给电源才有储存数据的能力,为非必要的组成零件。

NAND Flash的扇区结构

【日拱一卒行而不辍20220915】自制操作系统_第2张图片

以镁光MT29F4G08BxB Nand Flash为例。这款Flash(如上图)以:

4个扇区(sector)组成1个页(page),

64个页(page)组成1个块(block),

4096个块(block)构成整个Flash存储器。

由于每个扇区的容量是512 字节(bytes),整个Flash容量为4224M Bit(相当于528M字节),去掉备用区域用于存放ECC数据校验16M(虚线部分),就是这个片子的容量512M字节。

其他型号的Flash也是同样由扇区组成页、由页组成块、块组成整个存储设备,只是扇区、页、块的数量多少有区别而已。 

你可能感兴趣的:(Linux,OS,linux,运维,服务器)