【orange】关于从软盘加载内核到内存的一点感悟

来源:互联网 发布:中国洪涝灾害数据分析 编辑:程序博客网 时间:2024/05/15 02:08

现在的不太完整,只是为了我自己不要忘记,最近没时间看了对于将操作系统内核加载到内存,大致是这样的一个过程:

1.首先编译我们的内核文件,注意指定其输出格式为ELF

2.将加载文件Loader.bin和kernel.bin都写入软盘

3.将boot.bin写入引导扇区,主要是为了找到Loader.bin

4.找到Loader.bin之后,通过Loader.bin找到kernel.bin,并在Loader.bin中完成:

A.跳入保护模式;

 B.得到内存信息;

C.显示内存信息;

D.还有一个重要的工作就是,通过ELF里面的Program header,将内核载入Program header中指定的内存位置

5.向内核跳转,交出管理权

 

 

补充说明:为什么我们中间要经历Loader.bin这么一个中转过程呢?因为我们的引导扇区只有512KB,我们刚才也看到了,Loader.bin其实完成了跳入保护模式,得到内存信息等等工作,如果我们把这些都写到引导扇区,可能导致它超过了512KB,所以我们使用了一个中转站Loader.bin

原创粉丝点击