自制了引导加载程序

电脑技术 电脑技术 2124 人阅读 | 7 人回复 | 2021-08-07

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 孤星1119 于 2021-10-10 20:27 编辑

啥是“引导加载程序”?问一问百度:
Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

先看一看图片,我所自制的Boot Loader是什么?

首先启动电脑时,选U盘(USB棒)作为Boot Device:

Screenshot from 2021-08-07 16-47-25.png


然后你会看到"Hi"字样,就这么简单。
Screenshot from 2021-08-06 18-58-01.png




我是如何做到的?

参考了Redox OS的开源代码,我整理出这个Boot Loader.
  1. format binary as 'img'
  2. org 7C00h

  3.         xor     ax,ax
  4.         mov     ds,ax        
  5.         mov     es,ax
  6.         mov     ss,ax
  7.         mov     sp,7C00h
  8.         push    ax
  9.         push    start
  10.         retf

  11. start:
  12.         mov     al,72                ; "H"
  13.         call        print
  14.         mov     al,105                ; "i"
  15.         call        print
  16.         jmp     $

  17. print:
  18.             pusha
  19.             mov     bx, 7                ; Foreground color
  20.             mov     ah, 0eh                ; Write Character in Teletype (TTY) Mode
  21.             int     10h
  22.             popa
  23.             ret

  24. rb 7C00h+510-$
  25. dw 0AA55h
复制代码


上述汇编代码必须用Flat Assembler来编译成镜像文件(boot.asm --> boot.img)。

之后再刻录到U盘,或用虚拟机来测试。

如果你是用Linux, 只需键入以下命令行指令:
  1. ./fasm boot.asm
  2. sudo dd if=boot.img of=/dev/sdb
复制代码


如果你是用Windows,可以使用ISO刻录软件。

虽然我没有真正开发操作系统内核,不过很高兴能够用自己的小程序启动电脑。







评分

参与人数 1钻石 +48 收起 理由
simonzhd + 48 很给力!

查看全部评分

回答|共 7 个

simonzhd 发表于 2021-8-7 19:43:38| 字数 24 | 显示全部楼层

不明觉厉,能开发底层语言程序的某种程度上都是大牛

孤星1119 发表于 2021-8-7 21:09:26| 字数 121 | 显示全部楼层

simonzhd 发表于 2021-8-7 19:43
不明觉厉,能开发底层语言程序的某种程度上都是大牛

他们是,我不是,毕竟自己是精神病人。无论如何,十分感谢你的称赞。

一般上我的专注力不强,都是喜欢做些感兴趣的项目,不能赚钱,也对社会没有贡献。哈哈。

simonzhd 发表于 2021-8-8 09:36:17| 字数 82 | 显示全部楼层

孤星1119 发表于 2021-8-7 21:09
他们是,我不是,毕竟自己是精神病人。无论如何,十分感谢你的称赞。

一般上我的专注力不强,都是喜欢做 ...

嗯,自得其乐就好~

james007 发表于 2021-8-8 11:48:10| 字数 9 | 显示全部楼层

孤星,还是很棒的啊
人生是一部书

蓝莓糖 发表于 2021-8-9 14:12:04| 字数 3 | 显示全部楼层

Hi!

点评

嗨,哈哈,可惜不能显示汉字。  发表于 2021-8-10 15:30

孤星1119 发表于 2021-8-11 19:16:03| 字数 29 | 显示全部楼层

本帖最后由 孤星1119 于 2021-10-10 20:26 编辑

Screenshot from 2021-10-10 17-42-03.png


wowos.zip (1.93 KB, 下载次数: 0)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐