设置工作模式与环境

2021-11-17  本文已影响0人  一生逍遥一生

把多个文件组装在一起形成一个文件,这个文件称为内核映像文件。
可以通过lmoskrlimg 命令,将文件打包成一个映像:
lmoskrlimg -m -k plhf GRUB头文件 -o 映像文件 -f 输入文件列表
-m 表示模式:只能是k内核模式
-lhf 表示后面跟上GRUB头文件
-o 输出的映像文件名
-f 表示输入文件列表
dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

规则二级引导器

文件名 功能
imginithead.asm GRUB头的汇编部分
inithead.c GRUB头的C语言部分,用于放置二级引导器到指定内存中
realintsve.asm 实现调用bios中断的功能
ldrkrl32.asm 二级引导器核心入口汇编部分
ldrkrlentry.c 二级引导器核心入口
bstartparm.c 实现收集机器信息建立页面数据
chkcpmm.c 实现检查CPU工作模式和内存视图
fs.c 实现解析映像文件的功能
graph.c 实现切换显卡图形模式
vgastr.c 实现字符串输出

使用命令将代码中的文件打包成映像:

lmoskrlimg -m k -lhf initldrimh.bin -o HelloOS.eki -f initldrkrl.bin initldrsve.bin

实现grub头
imginithead.asm 汇编文件可以让GRUB识别,又能设置C语言运行环境,用于调用C函数;
inithead.c文件主要功能是查找二级引导器的核心文件initldrkrl.bin,将其放置到特定的内存地址上。
imginithead.asm 主要工作是初始化CPU的寄存器,加载GDT,切换到CPU的保护模式。
要在C函数中调用BIOS中断是不可能的,因为C语言代码运行在32位保护模式下,BIOS中断工作是在16位的实模式。

上一篇 下一篇

猜你喜欢

热点阅读