[OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序

学习笔记

使用教材(配书源码以及使用方法)
《一个64位操作系统的设计与实现》
http://www.ituring.com.cn/book/2450
https://www.jianshu.com/p/28f9713a9171


操作步骤

  • 第一步,安装各种必需的软件工具,具体步骤见参考资料

http://www.ituring.com.cn/book/tupubarticle/26323

  • 第二步,见《一个64位操作系统的设计与实现》“第二部分 初级篇 第3章 BootLoader引导启动程序”

以下为第二步的实验记录

使用 bochs 虚拟机 创建 虚拟软盘 boot.img

  • 启动虚拟磁盘镜像制作工具
    [anno@localhost ~]$ bximage
  • 继续依次输入
    1 fd 1.44M boot.img
  • 创建软盘成功示意图
    [OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序_第1张图片
    使用bochs虚拟机创建虚拟软盘boot.img

汇编源码 boot.asm

http://www.ituring.com.cn/book/2450
随书下载-源代码

[OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序_第2张图片
随书下载-源代码-第二部分-第三章-程序3-1

  • 编译汇编源码
    [anno@localhost ~]$ nasm boot.asm -o boot.bin(小写字母o

  • 生成.lst文件(帮助阅读源码、机器码,相当有用!)
    [anno@localhost Desktop]$ nasm boot.asm -o boot.bin -l boot.lst

  • boot.bin写入上面创建的虚拟软盘镜像boot.img
    [anno@localhost Desktop]$ dd if=boot.bin of=boot.img bs=512 count=1 conv=notrunc

[anno@localhost Desktop]$ ls
bochsrc  boot.asm  boot.bin  boot.img  gnome-terminal.desktop

bochs配置文件 bochsrc

配置文件在线阅读
http://www.ituring.com.cn/book/tupubarticle/21474

http://www.ituring.com.cn/book/2450
随书下载-源代码

[OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序_第3张图片
bochs配置文件 bochsrc

  • 首先,建议直接去用随书下载的源代码包里的配置文件(这是绝对正确无误的),在线阅读那里的配置文件因为一些换行把标识符给生生隔断了,比如cpuid字段里有一个标识符叫做1g_pages=1,如果在线复制,就会复制成1 g_pages=1,这样一来后面载入配置文件就会出错了,这其实就是由于换行引起的;

  • 其次,配置文件里面有一句floppya: type=1_44, 1_44="boot.img",应该是说配置文件boot.img(软盘镜像文件)要处在同一个目录下,为了方便,我就把这两个东西同时放在了桌面上;

测试运行

  • 启动 bochs:打开命令行输入
    [anno@localhost Desktop]$ bochs -f ./bochsrc

    [OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序_第4张图片
    我的配置文件和镜像文件boot.img现在都放在桌面

  • 继续依次输入:6 c
    (6是选择启动虚拟机,c是继续执行,回车确认,都是在命令行里面输入,黑色那个框是输出结果)

    [OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序_第5张图片
    出现字符start Boot表示运行成功


参考资料

代码比较工具

Beyond Compare

开发环境

  • 1、安装 VMware Workstation虚拟机软件

VMware Workstation 的安装和使用
https://blog.csdn.net/lamp_yang_3533/article/details/53136474

  • 2、下载 CentOS6 发行版

VMware Workstation中安装linux系统(CentOS)超详细
https://blog.csdn.net/u010996565/article/details/79048104

镜像文件下载 CentOS-6.10-x86_64-bin-DVD1.iso
http://isoredirect.centos.org/centos/6/isos/x86_64/

  • 3、 在VMware Workstation安装 CentOS6
    [OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序_第6张图片
    在VMware Workstation安装 CentOS6
[OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序_第7张图片
需要在BOIS里面开启VT
  • 4、在 CentOS6 上安装bochs

https://www.linuxidc.com/Linux/2012-12/76952.htm

0) 编译之前先安装如下的库: gtk2,libXt,libXpm
sudo yum install gtk2 gtk2-devel
sudo yum install libXt libXt-devel
sudo yum install libXpm libXpm-devel

1)然后编译安装:
tar xzvf bochs-2.3.7.tar.gz
cd bochs-2.3.7
./configure --enable-debugger --enable-disasm
make
sudo make install
  • 5、安装bochs

https://sourceforge.net/projects/bochs/files/bochs/

[OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序_第8张图片
安装bochs

  • 6、安装VMware Workstation tools: is not in the sudoers file 问题解决

https://blog.csdn.net/zhuqinglu/article/details/2050927

  • 7、 Centos安装gccg++

https://www.cnblogs.com/Anker/p/3203402.html

安装gcc:yum install gcc 
安装g++:yum install gcc-c++
  • 8、配置 bochs文件

linux上配置bochs,搭建基于X86架构操作系统的开发环境
https://www.cnblogs.com/lmstack/p/8159128.html

bochs配置文件 .bochsrc
http://www.ituring.com.cn/book/tupubarticle/21474

  • 9、bochs各种目录

https://www.cnblogs.com/kuainiao/archive/2012/12/20/2825981.html

  • 10、启动bochs

Ubuntu 14.04 LTS 安装和配置Bochs
https://www.linuxidc.com/Linux/2016-10/135905.htm

  • 11、制作软盘

linux上配置bochs,搭建基于X86架构操作系统的开发环境
https://www.cnblogs.com/lmstack/p/8159128.html

  • 12、启动bochs时报错No bootable device

https://blog.csdn.net/hushengshan/article/details/7937016

  • 13、安装 NASM 汇编编译器

https://centos.pkgs.org/6/centos-x86_64/nasm-2.07-7.el6.x86_64.rpm.html

bochs 调试命令

  • [067][x86汇编语言]Bochs调试命令整理

之前在win平台下使用bochs的经验,除了安装和设置配置文件不同,打开了bochs之后都是一样的,可以参考一下
https://www.jianshu.com/p/c98c113772db

  • [Linux]编译一个C程序:./configure 、 make、 sudo make install

我这次安装bochs的方法是: 先下载源码包,然后自己编译make,自己install make https://www.jianshu.com/p/74d92309a751

值得一提的是./configure 这个步骤要去 图灵社区 在线阅读那个网址复制一下大量参数太多了
http://www.ituring.com.cn/book/tupubarticle/21474

  • [Linux]dd 读写软盘:在软盘主引导扇区写入显示hello world的二进制代码数据

https://www.jianshu.com/p/207aaf0f986b

  • VMware Workstation 和 bochs 都是虚拟机,都有创建软盘功能,需要用VMware Workstation创建软盘看这里:[Ubuntu]dd 命令,软盘读写实例:二进制文件.bin ->镜像文件 .img -> 软盘设备 /dev/fd0

https://www.jianshu.com/p/ab11cb269634

你可能感兴趣的:([OS64位][001]Boot:使用bochs制作虚拟软盘镜像boot.img、启动并运行boot程序)