前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自己动手写操作系统在线阅读_如何理解写作是一个整体系统

自己动手写操作系统在线阅读_如何理解写作是一个整体系统

作者头像
全栈程序员站长
发布2022-09-27 10:50:57
3010
发布2022-09-27 10:50:57
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

最近开始看《自己动手写操作系统》,虽然很早以前就读过一点点,但一直没有机会动手实践。本着光说不练假把式的原则,

今天动手实践了开头的一部分。(说得这么正经其实你就是看了一点点吧!囧)废话不多说,在这里做一个小小的总结。

实验环境:

操作系统:win7旗舰版64位

汇编编译器:NASM 2.12.02

虚拟机:VirtualPC_2007

软盘/虚拟软盘 写引导扇区工具:FloppyWriter.exe

步骤

  • 抄袭(这个这个)了书中的汇编代码,然后用NASM编译,生成boot.bin文件。
  • 将boot.bin写入软盘映像文件中,当然这里是写入指定的位置,具体来说就是对应软盘的第一个扇区。
  • 虚拟机中用设置用软盘启动,启动文件当然设置为我们上面做好的启动软盘映像啦。
  • 启动虚拟机,然后,bingo!

问题

如何将boot.bin写入到软盘映像中正确的位置(引导扇区)。

为了印证随后的确将boot.bin写入了正确的位置,先查看生成的boot.bin的内容,用任意二进制查看软件均可。我用的是BinaryViewer.可以看到其中的内容为:

自己动手写操作系统在线阅读_如何理解写作是一个整体系统
自己动手写操作系统在线阅读_如何理解写作是一个整体系统

用UltraISO生成软盘映像,然后尝试用UltraISO将boot.bin写入其中,我的步骤如下(勿喷,小生对UltraISO不是特别熟悉):

自己动手写操作系统在线阅读_如何理解写作是一个整体系统
自己动手写操作系统在线阅读_如何理解写作是一个整体系统

操作后的软盘映像文件内容为:

自己动手写操作系统在线阅读_如何理解写作是一个整体系统
自己动手写操作系统在线阅读_如何理解写作是一个整体系统

好吧,确实写入了,但是并没有对应软盘的第一个扇区,o(╯□╰)o,我不太明白。

无奈,利用作者提供的小工具FloppyWriter.exe将boot.bin写入UltraISO软盘映像文件,写入成功。写引导扇区后的软盘内容如下:

自己动手写操作系统在线阅读_如何理解写作是一个整体系统
自己动手写操作系统在线阅读_如何理解写作是一个整体系统

可以看到成功写入了boot.bin,并确实在第一个扇区。

虚拟机中设置此软盘映像启动。启动失败。(o(╯□╰)o)

好吧,别瞎折腾了!

还是按照书中的步骤,用VirtualPC的软盘制作向导生成软盘印象文件,然后将boot.bin写入其中,内容如下:

自己动手写操作系统在线阅读_如何理解写作是一个整体系统
自己动手写操作系统在线阅读_如何理解写作是一个整体系统

显示预期的字符,成功。

自己动手写操作系统在线阅读_如何理解写作是一个整体系统
自己动手写操作系统在线阅读_如何理解写作是一个整体系统

对于为什么不能直接用UltraISO生成的软盘启动,还是有些困惑,希望能得到解答。可能VirtualPC_2007对软盘映像文件的确有特殊的格式要求。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179216.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验环境:
  • 步骤
  • 问题
    • 如何将boot.bin写入到软盘映像中正确的位置(引导扇区)。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档