首页 > 代码库 > 30天自制操作系统(第一天笔记)

30天自制操作系统(第一天笔记)

第一天主要是涉及一些比较基础的概念,大多都是关于操作系统基本知识以及一些硬件操作的

这里主要讲一下关于FAT12的一些概念:

启动区:软盘的第一个扇区称为启动区,一般启动盘的后两个字节为55AA,不然计算机认为这个系统没有启动程序

 1 ;hello-os 2 ;TAB=4 3  4 ;以下这段是标准FAT12格式软盘专用代码 5     DB        0xeb, 0x4e, 0x90 6     DB        "HELLOIPL"      ;启动扇区的名称可以使任意的字符串 7     DW        512                 ;每个扇区的大小(必须为512字节) 8     DB        1              ;簇的大小(必须为1个扇区) 9     DW        1               ;FAT的起始位置(一般从第一个扇区开始)10     DB        2                 ;FAT的个数(必须为2)11     DW        224               ;根目录的大小(一般设置为224)12     DW        2880           ;该磁盘的大小(必须是2880扇区)13     DB        0xf0               ;磁盘的种类(必须是0xf0)14     DW        9               ;FAT的长度(必须是9扇区)15     DW        18               ;1个磁道有几个扇区(必须是18)16     DW        2              ;磁头数(必须是2)17     DD        0              ;不试用分区(必须是0)18     DD        2880            ;重写一次磁盘大小19     DB        0,0,0x29        ;固定20     DD        0xffffffff      ;(可能是)卷码标号21     DB        "HELLO-OS   "      ;磁盘的名称(11字节)22     DB        "FAT12   "       ;磁盘格式的名称(8字节)23     RESB    18            ;先空出18字节24 25 ;程序的主体26     DB        0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c27     DB        0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a28     DB        0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x0929     DB        0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb30     DB        0xee, 0xf4, 0xeb, 0xfd31 32 ;信息显示部分33     DB        0x0a, 0x0a      ;2个换行34     DB        "hello, world"35     DB        0x0a          ;换行36     DB        037     RESB    0x1fe-$          ;填写0x00,直到0x001fe38     DB        0x55, 0xaa39 40 ;以下是启动区以外部分的输出41     DB        0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0042     RESB    460043     DB        0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0044     RESB    1469432


第一天的内容也比较简单,没什么好说的,另外还涉及到一些CPU和汇编的基础知识,关于这方面,书的作者写得比我好多了,期待第二天的内容

 

30天自制操作系统(第一天笔记)