自制了引导加载程序
本帖最后由 孤星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刻录软件。
虽然我没有真正开发操作系统内核,不过很高兴能够用自己的小程序启动电脑。:lol
不明觉厉,能开发底层语言程序的某种程度上都是大牛{:10_455:} simonzhd 发表于 2021-8-7 19:43
不明觉厉,能开发底层语言程序的某种程度上都是大牛
他们是,我不是,毕竟自己是精神病人。无论如何,十分感谢你的称赞。
一般上我的专注力不强,都是喜欢做些感兴趣的项目,不能赚钱,也对社会没有贡献。哈哈。 孤星1119 发表于 2021-8-7 21:09
他们是,我不是,毕竟自己是精神病人。无论如何,十分感谢你的称赞。
一般上我的专注力不强,都是喜欢做 ...
嗯,自得其乐就好~ 孤星,还是很棒的啊 Hi! 本帖最后由 孤星1119 于 2021-10-10 20:26 编辑
页:
[1]