操作系统学习小结:helloos.img二进制解析与引导扇区详解

需积分: 16 3 下载量 163 浏览量 更新于2024-09-15 收藏 178KB PDF 举报
操作系统学习小结主要围绕《30天自制操作系统》一书展开,旨在通过分析helloos.img二进制文件,复习和巩固基础的计算机系统知识。本篇笔记着重于引导扇区格式和opCode的理解,这些知识点对于理解并操作操作系统至关重要。 引导扇区是硬盘上的第一个可执行区域,它是操作系统启动过程中的关键部分。以下是对引导扇区格式各字段的详细介绍: 1. **BS_jmpBOOT**:这是一个短跳转指令,其地址为0x0003,用于引导程序从指定位置开始执行。 2. **BPB_BytesPerSec**:表示每扇区的字节数,这里是0x200,即每个扇区有256个字节。 3. **BPB_SecPerClus**:每簇扇区数,通常用来组织文件存储,该值为1,意味着每个簇只包含一个扇区。 4. **BPB_ResvdSecCnt14**:用于标识Boot记录占用的扇区数,这里是0x1,即一个扇区。 5. **BPB_NumFATs**:文件分配表的数量,0x2表示有两个FAT表。 6. **BPB_RootEntCnt**:根目录项的最大数量,0xE0,决定根目录能容纳的文件或目录数量。 7. **BPB_TotSec16**:总扇区数,计算公式为0xB40,即1800扇区。 8. **BPB_Media**:介质描述符,0xF0,可能指定了磁盘类型。 9. **BPB_FATSz16**:每个FAT表占用的扇区数,这里是0x9,即9个扇区。 10. **BPB_SecPerTrk**:每磁道扇区数,0x12,帮助计算磁盘物理结构。 11. **BPB_NumHeads**:磁头数,0x2,表示两个磁头。 12. **BPB_HiddSec**:隐藏扇区数,这里是0,通常用于系统引导程序和分区表。 13. **BS_DrvNum**:INT13H的驱动器号,0,表示这个引导扇区对应的是主分区。 14. **BS_BootSig**:扩展引导标记,0x29,确保引导程序的正确性。 15. **BS_VolID** 和 **BS_VolLab**:卷序列号和卷标,用于标识磁盘分区。 16. **BS_FileSysType**:文件系统类型,这里是'FAT12',表明helloos.img采用的是FAT12文件系统。 此外,引导代码位于62至510字节,这部分包含了操作系统的基本加载流程和初始化步骤,包括检测硬件、加载内存映射等。最后,引导扇区以0xAA55结束标志结束,这是为了确保引导程序的完整性。 通过对helloos.img二进制文件的深入分析,学习者能够理解操作系统启动的底层原理,包括如何与硬件交互、引导过程的步骤以及不同文件系统的特性和使用。这对于进一步研究操作系统设计、设备驱动和系统安全等领域具有重要意义。