读取内核文件kernel到内存,与第四章读取loader文件到内存差不多,都是汇编的操作,没有过多了解。
loader程序标号的物理地址计算:
跳入保护模式首先设置GDT以及对应的选择子,我们只定义三个描述符,分别是一个0~4GB的可执行段、一个0~4GB的可读写段和一个指向显存开始地址的段。设置初始地址为0的代码段和数据段就是为了以后计算方便,偏移地址就是标号地址减去section开始地址即$$。
读取内存分布信息、分页处理都是使用第三章的代码,没有大的区别。
读取内核文件kernel到内存,与第四章读取loader文件到内存差不多,都是汇编的操作,没有过多了解。
loader程序标号的物理地址计算:
跳入保护模式首先设置GDT以及对应的选择子,我们只定义三个描述符,分别是一个0~4GB的可执行段、一个0~4GB的可读写段和一个指向显存开始地址的段。设置初始地址为0的代码段和数据段就是为了以后计算方便,偏移地址就是标号地址减去section开始地址即$$。
读取内存分布信息、分页处理都是使用第三章的代码,没有大的区别。