专注于操作系统24之boot,loader,kernel

本文介绍了操作系统启动过程中的关键组件——boot引导程序、loader加载器和kernel内核的作用。boot负责加载loader到内存,loader进而加载kernel并进入保护模式。在文中,作者通过代码示例展示了如何编写myboot.asm和myloader.asm,以实现从实模式到保护模式的转换,但暂未涉及kernel的具体加载,而是通过虚拟机运行展示了阶段性的运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         在第6篇文章中,我们已能导入操作系统内核(该内核非常小,姑且称为内核),但也只是在实模式下,没有进入保护模式。前面我们已经学习了关于保护模式的很多内容,所以让操作系统进入保护模式是非常简单的。这里先解释一下boot,loader,kernel的意思和作用。boot是引导程序,它的作用是把loader(loader专门用于加载kernel)加载到内存,执行loader。loader是加载程序,它的作用是把kernel加载到内存,并进入保护模式,然后,把cpu交给kernel。kernel是操作系统中与硬件直接相关的部分和经常共用的代码。一句话,boot加载loader到内存,执行loader,再由loader加载内核到内存,并进入保护模式,然后,将cpu交给kernel,那么操作系统就启动起来了。

      我们这里暂时不考虑kernel,只是让boot加载loader到内存,执行loader,loader进入保护模式(本来在进入保护模式前我们要加载kernel的,但我们还没有kernel,所以暂时不管)。

      下面给出代码,这个代码和第6篇文章中的代码很相似,只是加上了进入保护模式的代码。


myboot.asm 的代码

;;nasm 2.07 汇编
;;nasm myboot.asm -o myboot.img
org 7c00H

call welcome      ;调用欢迎模块,显示欢迎字符
call loadloader   ;导入loader


welcome:            ;欢迎模块 
	   mov ax,cs   ;调用BIOS的10号中断显示字符
	   mov es,ax
	   mov bp,hello
	   mov bx,000ch
	   mov dx,0005h
       mov cx,18
	   mov ax,1301h
	   int 10h
	   ret
loadloader:         ;导入l
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值