• 自制操作系统笔记


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

    安装操作系统是指借助于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字节的内容如下。

     占用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的扇区结构

    以镁光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也是同样由扇区组成页、由页组成块、块组成整个存储设备,只是扇区、页、块的数量多少有区别而已。 

  • 相关阅读:
    article-码垛机器人admas仿真
    dolphinscheduler 2.0.5和2.0.6 体验记录及优化扩展(任务出现kill状态、未设置延时执行出现延时执行、系统变量扩展)
    txt简谱制作器上线(个人java程序)
    峰回网关数采PLC
    SS-Model【5】:U-Net
    开发中常用Linux命令总结
    数据库全量SQL分析与审计系统性能优化之旅
    使用 prometheus 监控主机
    【Java基础】ArrayList类概述、常用方法及存储字符串并遍历
    Faster-RCNN论文解读
  • 原文地址:https://blog.csdn.net/bear_miao/article/details/126869169