使用汇编语言编写一个简单的X86 Boot loader

前言

笔者一直对操作系统非常感兴趣,一直希望能够编写一款属于自己的操作系统。不过各种事情让我一直抽不开身。现在大四了,终于有时间好好搞一搞自己喜欢的东西。

经过深思熟虑,我决定还是从Boot Loader做起。国内各种网站和博客关于这方面内容的东西不是特别多,我在编写Boot Loader的时候也是摸着石头过河。国内大部分博客所写的,如”编写一个最简单的操作系统“,”编写一个基本的Boot Loader“之类的内容绝大多数都只是完成了一个Boot sector,在裸机上啪啪打出一串字符就完了。
对于一个Boot Loader, 它的基本功能肯定是要从硬盘上读取出操作系统内核(或是用户程序),再将其搬运到内存中,最后跳转到操作系统内核。

本文中的Boot Loader是一个最简单的Boot Loader,能够从硬盘中读取到用户程序并将其放到内存中指定的位置。

参考资料

  1. 《x86汇编语言:从实模式到保护模式》:非常好的一本书,详细地介绍了X86汇编语言。在编写一个Boot loader之前所需了解的知识,通过阅读这本书,大家基本都能够学习到。
  2. OSDev : 完整翔实地介绍操作系统各种相关技术的网站,包括Boot loader。

环境和工具

  1. Linux : 最好是Linux, 在Windows下也可以完成,不过在Linux下使用各种工具会非常方便。
  2. Bochs :一个非常优秀的X86计算机模拟器。它有着非常强大的调试功能。
  3. NASM : 汇编语言。
  4. dd :Linux下自带的文件复制工具

工具安装

我是在Ubuntu 下进行的开发:

  1. Bochs:
sudo apt-get install bochs
sudo apt-get install bochs-x
  1. NASM:
sudo apt-get install nasm

编写Boot Loader

在完成Boot Loader之前要大家要了解基本的X86汇编语言,还要了解计算机启动的基本过程等知识。在《x86汇编语言

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值