码迷,mamicode.com
首页 > 其他好文 > 详细

ORANGE’S:一个操作系统的实现 实验准备

时间:2016-04-11 14:09:34      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

1.bochs安装

官网下载bochs的安装包,后缀名为tar.gz,然后执行下面的命令

   1: ? tar vxzf bochs-2.3.5.tar.gz
   2: ? cd bochs-2.3.5
   3: ? ./configure --enable-debugger --enable-disasm
   4: ? make
   5: ? sudo make install

如果下载其他的版本,将bochs后面的版本号改一下就好了。

2.bochs的GUI库

   1: sudo apt=get install bochs-sdl

3.虚拟软盘镜像

   1: bximage 
   2: fd 
   3: 1.44
   4: a.img

按次序输入上述指令,即可创建一个大小为1.44 MB的虚拟软盘镜像。

4.bochs配置

display_library: sdl

floppya: 1_44=a.img, status=inserted

boot: floppy

将这三行内容新建成一个文件,保存为bochsrc,和a.img、boot.bin放在同一目录下。

之所以没有完全按照书上的配置去写,是因为我按照他的去写会出现一些问题。

5. helloOS

   1: org 07c00h ; 告诉编译器程序加载到7c00处
   2: mov ax, cs
   3: mov ds, ax
   4: mov es, ax
   5: call DispStr ; 调用显示字符串例程
   6: jmp $ ; 无限循环
   7: DispStr:
   8: mov ax, BootMessage
   9: mov bp, ax ; ES:BP = 串地址
  10: mov cx, 16 ; CX = 串长度
  11: mov ax, 01301h ; AH = 13, AL = 01h
  12: mov bx, 000ch ; 页号为0 (BH = 0) 黑底红字(BL = 0Ch,高亮)
  13: mov dl, 0
  14: int 10h ; 10h 号中断
  15: ret
  16: BootMessage: db "Hello,?OS?world!"
  17: times 510 - ($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
  18: dw 0xaa55 ; 结束标志

将上述代码保存为boot.asm文件

6.安装nasm

   1: sudo apt-get install nasm

7.汇编boot.asm

   1: nasm boot.asm -o boot.bin

8.将boot.bin写到软盘的第一个扇区

   1: dd if=boot.bin of=devfd0 bs=512 count=1

这个必须用软盘绝对扇区读写工具进行,因为在普通的读写操作下,第一个扇区是不可见的。

9.启动bochs

shell里面输入bochs即可启动虚拟机bochs,如果bochs具有调试功能,需要先选择数字6,进入模拟选项,再按c即可运行得下图:

技术分享

 

走到最后一张界面就说明配置成功了。

ORANGE’S:一个操作系统的实现 实验准备

标签:

原文地址:http://www.cnblogs.com/windkl/p/5377892.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!