自己动手写操作系统——环境搭建

xiaoee posted @ 2011年9月17日 00:11 in Operating System with tags OS , 5204 阅读

      俱乐部的新学期又开始了,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:使可以不显示运行窗口

需要了解的:

2.引导扇区:硬盘或者软盘某个分区的第一个扇区,如果以0xAA55结束,则BIOS认为它是一个可引导扇区。
   计算机启动时,先进行加电自检(POST),然后按顺序寻找启动盘,也就是检查所有磁盘的第一个扇区,一旦发现以0xAA55结束,则将这512字节装载到内存地址0000:7c00处,然后跳转到0000:7c00,运行引导扇区的代码。
更准确定义见这里:
http://en.wikipedia.org/wiki/Boot_sector

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter