操作系统Loader加载
由于引导扇区的大小被局限为了512字节,这对于我们的是远远不够的,所以我们通过再建立一个文件,通过引导扇区把他加载到内存,再把控制权交给他,这样就没有512字节的限制了。引导扇区的代码只负责把Loader加载到内存中,再由Loader来加载内核进入保护模式。我们创建一个文件系统来管理loader和内核代码。我们下面的目的是把Loader放到文件系统中,以让引导扇区找到并加载他。
FATA12
FATA12的结构依次是,引导扇区,FAT表1,2 , 根目录, 数据区。
引导扇区:是一个数据结构,BPB_,BS_开头的属性,例如BS_jmpBoot,共512字节,BPB_BytePerSec每扇区字节数,还有加载Loader的程序由jmp跳转
FAT表:有两个,每个9个扇区,存储的文件在数据区中的簇号链表,FAT项的值表示下一个簇号FFF结束。
根目录:存储的是文件的基本信息,如文件名,文件属性,文件开始簇号
加载Loader
加载Loader需要读取软盘,运用int 13h中断来读取。将其读到es:bx中。
操作系统Loader加载
https://jfsas.github.io/2024/10/14/操作系统Loader加载/