×

本系列学习以已有的编程基础为佳,若未具备相关背景知识也非问题所在,本系列将主要基于《[自制操作系统教程]》(作者:川合秀实)、《自己动手写操作系统》两本书籍。

一、准备工作

  1. 环境搭建:bochsvirtalbox,Windows虚拟机,nasm。
  2. 操作流程回顾:在前述的编程学习过程中,我们的引导程序已成功加载软盘的第一个柱面数据至内存的x8处;引导区本身的51字节也被BIOS加载至x8处。

二、具体操作

本节课的目标是从这些数据中检索出软盘上的程序,并执行它。以下是实现这一过程的关键步骤:

  • 首先定位文件名所在磁盘的x6位置。
  • 确定文件内容在磁盘中的x4位置。
  • 将x4处的磁盘内容加载至内存的x8+x4=xc处。

具体操作如下所示:

%define_BOOT_DEBUG_
%ifdef_BOOT_DEBUG_org1h %else org7ch %endif

; 每读取一个柱面,共1柱面*面*18扇区*51字节=184byte=18K
start: JMP init

; 空节,用于调试时注释此行并使用nasmBoot.asm生成.com文件进行调试
%ifdef_BOOT_DEBUG_
org 7ch
%else org 1h %endif

CYLSEQU1

; 以上代码省略...

三、启动镜像

本节将介绍如何制作启动镜像:

  1. 将NotOneOs.sys程序拷贝至虚拟磁盘。
  2. 格式化虚拟磁盘中,载入镜像文件。
  3. 在Bochs中加载并运行Boot.img文件。

具体操作如下所示:

# 这里的步骤省略...

四、调试

使用Bochs虚拟机的调试功能,通过反汇编代码查找重点关注的位置,设置断点等手段进行调试。以下是调试过程的具体步骤:

  1. 进入调试状态。
  2. 设置断点位置。
  3. 控制程序执行过程。

具体操作如下所示:

# 这里的步骤省略...

五、总结

通过本系列学习,我们可以逐步掌握自制的软件制作流程。在此过程中,我们将不断巩固已有的编程知识,同时也要关注新的知识点与技能。相信只要我们坚持不懈,一定能够成为优秀的软件工程师!

作者

xiaoxiaoxiyue@qq.com

相关文章

这一段时间我们团队针对科凡建站移动端进行了一...

读出全部

当网页作为信息传递的重要渠道,它的页面设计显...

读出全部

精雕细琢,打造个性化网页定制开发 作为一种新...

读出全部

以下是根据您的要求生成的文章: 我是一名IT...

读出全部

Photoshop网页设计课程实践作品源码教...

读出全部

在搜索引擎优化行业,许多不同的方法被用于提升...

读出全部