|
本帖最后由 孤星1119 于 2021-10-10 20:27 编辑
啥是“引导加载程序”?问一问百度:
Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
先看一看图片,我所自制的Boot Loader是什么?
首先启动电脑时,选U盘(USB棒)作为Boot Device:
然后你会看到"Hi"字样,就这么简单。
我是如何做到的?
参考了Redox OS的开源代码,我整理出这个Boot Loader.
- format binary as 'img'
- org 7C00h
- xor ax,ax
- mov ds,ax
- mov es,ax
- mov ss,ax
- mov sp,7C00h
- push ax
- push start
- retf
- start:
- mov al,72 ; "H"
- call print
- mov al,105 ; "i"
- call print
- jmp $
- print:
- pusha
- mov bx, 7 ; Foreground color
- mov ah, 0eh ; Write Character in Teletype (TTY) Mode
- int 10h
- popa
- ret
- rb 7C00h+510-$
- dw 0AA55h
复制代码
上述汇编代码必须用Flat Assembler来编译成镜像文件(boot.asm --> boot.img)。
之后再刻录到U盘,或用虚拟机来测试。
如果你是用Linux, 只需键入以下命令行指令:
- ./fasm boot.asm
- sudo dd if=boot.img of=/dev/sdb
复制代码
如果你是用Windows,可以使用ISO刻录软件。
虽然我没有真正开发操作系统内核,不过很高兴能够用自己的小程序启动电脑。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
查看全部评分
|