看Linux0.11源码分析书籍,补充知识
在看本书的时候, 很多CPU或汇编或操作系统的知识太欠缺了, 所以补充看了一下 x86汇编语言 从实模式到保护模式
里面用了bochs来跟踪调试汇编代码.
但是书里用了 vhd来承载引导程序, 其实跟IMG镜像倒是区别没那么大.
作者提供了一个写入VHD的小工具, 而VHD的生成, 其实更简单, 就是在 WINDOWS系统里面, --- 设备管理器 ---磁盘管理 创建一个固定大小的VHD就可以了.
只不过, bochs.bxrc配置文件要跟着改一下
那个写入的小程序, 里面有提示的,按照显示的大小改一下这个就可以了
(windows下要管理员启动才行, )
同时, 可以把需要的文件都拷贝出来, 在自定义的路径下去执行run.bat,也不是不可以(注意一些文件的路径就好)
例如:
可以直接在 bochsrc.bxrc上右键, RUN即可.
下面是VHD的简单介绍, 可以看出来, 跟img映像,只是多了尾部信息而已. (这么说不太准确, 就这么理解就完事儿了,反正只是硬盘,用扇区来读, 至于内容是什么, 只有OS才关心)
https://www.twblogs.net/a/5c7792b5bd9eee33991840b2/zh-cn
参考资料: 《x86汇编语言-从实模式到保护模式.pdf》
《Virtual Hard Disk Format Spec_10_18_06.doc》
《x86汇编语言》中 “第4章 虚拟机的安装和使用”,通过虚拟机创建虚拟硬盘,然后用工具修改虚拟硬盘,写入程序,最后启动虚拟机观察运行结果。该方法缺点是不便调试,推荐使用Bochs,方便调试。Bochs需要加载Image格式镜像。
如下是虚拟硬盘VHD格式(固定大小)和Image镜像格式的对比。VHD格式只是多了一个Footer fileds:
Image格式似乎没什么特殊的,只是要求第一个扇区最后的两个字节必须是0x55、0xAA。
Footer fileds在规范中有详细说明,其中开头8个字节为Cookie字段,固定为字符串“conectix”。