自己动手写操作系统——环境搭建
xiaoee
posted @ 2011年9月17日 00:11
in Operating System
with tags
OS
, 5260 阅读
俱乐部的新学期又开始了,OS组的同学又要开始看《Orang‘s一个操作系统的实现》和做操作系统实验了。在这里把做的过程中的收获和体会写下来。
本篇是关于书中的第一,二章的开发环境搭建。这里讲的是完全在linux下的环境搭建
用到的工具及作用:
一台安装有linux操作系统的计算机:这是其它一切的前提。
nasm,gcc,make:编译链接的基本工具
bochs:运行调试工具
qemu:运行工具,比bochs更快
dd:绝对扇区读写工具,用来写引导扇区和查看映像内容
bximage:用来生成虚拟映像
objdump,readelf:查看目标文件结构,查看elf文件
vim:用来编译代码,也可以是其它的文本编辑器。
freedos映像:在第三章中,因为程序可能超过512字节,不能写入引导扇区,
于是编译成com文件在dos中运行,这个在bochs官网可以下到。
bochs编译选项及说明:
--enable-vbe
--enable-debugger:开启调试功能,默认不开
--enable-debugger-gui:调试时有运行窗口
--enable-smp
--enable-new-pit
--enable-all-optimizations
--enable-4meg-pages
--enable-reset-on-triple-fault
--with-all-libs
--with-x
--with-x11
--with-nogui:使可以不显示运行窗口
需要了解的:
1.NASM的使用。
2.引导扇区:硬盘或者软盘某个分区的第一个扇区,如果以0xAA55结束,则BIOS认为它是一个可引导扇区。
计算机启动时,先进行加电自检(POST),然后按顺序寻找启动盘,也就是检查所有磁盘的第一个扇区,一旦发现以0xAA55结束,则将这512字节装载到内存地址0000:7c00处,然后跳转到0000:7c00,运行引导扇区的代码。
更准确定义见这里:http://en.wikipedia.org/wiki/Boot_sector
更准确定义见这里:http://en.wikipedia.org/wiki/Boot_sector