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

自己动手写操作系统在线阅读_如何理解写作是一个整体系统最近开始看《自己动手写操作系统》,虽然很早以前就读过一点点,但一直没有机会动手实践。本着光说不练假把式的原则,今天动手实践了开头的一部分。(说得这么正经其实你就是看了一点点吧!囧)废话不多说,在这里做一个小小的总结。实验环境:操作系统:win7旗舰版64位 汇编编译器:NASM 2.12.02虚拟机:VirtualPC_2007软盘/虚拟软盘写引导扇区工具:Flopp

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

实验环境:

操作系统: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.net/179216.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 薄膜电容分类研究_贴片薄膜电容

    薄膜电容分类研究_贴片薄膜电容综述在音频电路设计中,薄膜电容是个常客。它的损耗角非常低,电容值较小,耐压比较大,可以用于耦合、滤波、退耦等场合。在应用中我发现,薄膜电容种类较多,技术参数的关注点与电解电容有所不同,于是查阅了Wiki和各个厂家的Datasheet,在这里做一个总结。薄膜电容总的来说性能很好,但也分很多种类和级别,应用的场合也有所不同。基础知识在Wiki上很详尽,下图展示了薄膜电容的电极/电介…

    2022年8月22日
    10
  • idea打包jar没有主清单属性_maven库中有jar包,但是引入不到

    idea打包jar没有主清单属性_maven库中有jar包,但是引入不到推荐必看:https://blog.csdn.net/persistencegoing/article/details/84376427问题:springboot项目通过maven打包程序后,直接执行jar包时,控制台显示“没有主清单属性”。解决:在maven的pom文件中,编写maven-jar-plugin的插件,具体如下<plugin>&…

    2025年9月14日
    6
  • 900万!!!!!!!!这也太强了吧!!!我的老天!!!!!!!!!!

    900万!!!!!!!!这也太强了吧!!!我的老天!!!!!!!!!!大家好,我是二哥呀!之前在送书的时候做了一个小调查,问题是:“你是怎么认识二哥的?”我以为从知乎上了解的多一些,没想到,CSDN上的最多,看来二哥还是在CSDN上更有影响力一些,这个结果多少让我感到有些意外,因为我最近在知乎上更新得更勤快一些。写这篇文章的时候,我去CSDN上看了一眼我的主页。访问量突破了900万!按照目前的增长速度来看,年底突破1000万访问量应该没啥大问题。另外还有一些数据我觉得也挺牛逼的:原创文章数量957篇;作者总榜第12名;作者周榜第

    2022年6月7日
    28
  • 阿里云centos镜像下载

    阿里云centos镜像下载下载地址:http://mirrors.aliyun.com/centos/这个界面提供了centos各个版本的目录,不过,点入具体的目录去只有一个readme文件,而没有镜像下载。readme文件中提供了精确版本的下载地址:http://vault.centos.org/,以6.8版本为例,可以根据信息一步一步找到需要的镜像文件这个地址是可以下载的,不过下载速度相对比较慢,针对网络比较差的环境,下载这个镜像简直就是折磨。回到最开始的阿里云镜像目录,点击7和8的根目录可以找到相关的镜像通过目录iso

    2022年6月3日
    62
  • c语言中concat函数,SQL注入中用到的Concat函数详解-菜鸟白帽扫盲

    c语言中concat函数,SQL注入中用到的Concat函数详解-菜鸟白帽扫盲在我们WEB安全测试的时候,会经常使用到这一语法,因此应该透彻理解这一函数,今天好好实践了一下,整理如下。1.Concat函数:concat()是一个函数,用于用于将两个字符串连接起来,形成一个单一的字符串,类似于字符串拼接;语法:SELECTCONCAT(str1,str2,…)执行结果:​2.实战演示:查看users表下的数据SELECT*FROMusers那么当一条语句为SELE…

    2022年5月22日
    97
  • Mysql常见错误提示及解决方法

    Mysql常见错误提示及解决方法Mysql常见错误提示及解决方法

    2022年4月24日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号