学习笔记
使用教材(配书源码以及使用方法)
《一个64位操作系统的设计与实现》
http://www.ituring.com.cn/book/2450
https://www.jianshu.com/p/28f9713a9171
操作步骤
- 第一步,安装各种必需的软件工具,具体步骤见参考资料
- 第二步,见《一个64位操作系统的设计与实现》“第二部分 初级篇 第3章 BootLoader引导启动程序”
以下为第二步的实验记录
使用 bochs 虚拟机 创建 虚拟软盘 boot.img
- 启动虚拟磁盘镜像制作工具
[anno@localhost ~]$ bximage
- 继续依次输入
1 fd 1.44M boot.img
-
创建软盘成功示意图
汇编源码 boot.asm
http://www.ituring.com.cn/book/2450
随书下载-源代码
编译汇编源码
[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/2450
随书下载-源代码
首先,建议直接去用随书下载的源代码包里的配置文件(这是绝对正确无误的),在线阅读那里的配置文件因为一些换行把标识符给生生隔断了,比如
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
-
继续依次输入:
6 c
(6
是选择启动虚拟机,c
是继续执行,回车确认,都是在命令行里面输入,黑色那个框是输出结果)
参考资料
代码比较工具
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
- 4、在
CentOS6
上安装bochs
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/
- 6、安装
VMware Workstation tools
: is not in the sudoers file 问题解决
- 7、
Centos
安装gcc
及g++
安装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
- 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的二进制代码数据
- VMware Workstation 和 bochs 都是虚拟机,都有创建软盘功能,需要用VMware Workstation创建软盘看这里:[Ubuntu]dd 命令,软盘读写实例:二进制文件.bin ->镜像文件 .img -> 软盘设备 /dev/fd0