摘要:
1. 引导启动程序的总结引导启动程序程序在boot目录下,有bootset.s, head.s和setup.sBootset.s: 系统启动时首先是进入实模式,从地址0xffff0(这地址映射的rom-bios在内存的地址)处开始执行bios代码,然后执行系统检测(也就是自检过程),然后初始化实模式的中断向量表(实模式中断向量在内存物理地址0处)。然后将启动设备的第一个扇区(512字节,也就是bootset.s编译完成的内容)内容读取到内存0x7c00(31kB)处,并且跳转到这里,跳转到bootset.s后,bootset.s主要做了如下工作:bootset.s在最前面的几句代码先将自己移动 阅读全文
摘要:
Orange 总结Orange分为Boot部分,load部分和内核kernel部分:具体内存分布如下图所示:系统启动过程:bios加载boot部分(512byte)于内存7c00h处并跳转到7c00h处开始执行,boot部分代码负责将load部分加载于内存9000h处并跳转到那里。Load部分代码加载kernel然后控制权交给kernel。每个部分的具体细节:Boot部分:通过在软盘中找到load.bin所在位置,并且将其拷贝到9000h处,最后跳转到那里(具体技术包括对fat12文件系统结构的理解和对磁盘读写方法);Load部分:通过在软盘中找到kernel.bin所在位置并将其拷贝到800 阅读全文