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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值