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

    最近在看《自己动手写操作系统》 于渊著,看第一页头就蒙了,书上说要准备一张空白软盘,都2010年了,上哪去找软盘啊,自从接触计算机以来我还没见过软盘呢,估计要到科技博物馆才找得到吧,呵呵。其实在第二章-搭建你的工作环境 中作者提到其实并不需要用真正的软盘,用虚拟软盘映像就可以了,也就是*.IMG文件,反过来想想,连计算机都可以虚拟,软盘当然也可以虚拟了。软盘映像文件并不需要自己制作,随书附赠的光盘中的源代码里面就有(TINIX.IMG),将自己写的汇编源代码编译成*.bin文件后使用作者提供的软盘绝对扇区读写工具FloppyWriter将*.bin写入到TINIX.IMG,这样一张虚拟的引导盘就完成了。FloppyWriter工具在光盘的Tools文件夹中。如果没有光盘也不要紧,可以在博文视点网站下载,网址是:http://www.broadview.com.cn/01577 (需要先登录),也可以在http://osfromscratch.org/downloadcn 下载源代码。
  
一、 开始搭建工作环境:
    1. 一台计算机(Windows操作系统)
    2. 虚拟机 VirtualBox
       可以在官网下载,下载地址:http://www.virtualbox.org/wiki/Downloads
       之所以选择VirtualBox是因为它是开源免费的,速度也可以,作者使用的虚拟机是Virtual PC 5.0,该虚拟机是商业软件,5.0版本的比较难找,网上可以找到5.2版本的,但我下载安装后不能正常运行,提示不能在PAE模式下运行,虽然网上可以找到解决方案,需要对电脑做些配置,但觉得麻烦,个人还是喜欢用VirtualBox,下载安装后没有任何问题。
    3. NASM 汇编编译程序
      下载地址:http://sourceforge.net/projects/nasm
      或者官网下载:http://www.nasm.us/pub/nasm/releasebuilds/
      这个是用来编译我们写的汇编程序的,以前常用MASM,但作者推荐这个。
    4. 软盘绝对扇区读写工具 FloppyWriter.exe
       在随书附赠的光盘中提供,在OS/Tools/FloppyWriter/Release文件夹下,运行 该程序有两个按钮可以选择,使用软盘映像的话使用下面那个Write File To Image。前面提到,如果没有光盘,可以去网上去下载光盘中的内容。
    5. 源代码编辑器
       可以用记事本,也可以用其他编辑工具。

二、写一个小的“操作系统”
     1.编写源代码:(书上有)
      ;boot.asm
      org 07c00h      ;告诉编译器程序加载到7c00处
       mov ax, cs
       mov ds, ax
       mov es, ax
       call DispStr    ;调用显示字符串例程
       jmp $           ;无限循环
DispStr:
       mov ax, BootMessage
       mov bp, ax       ;es:bp=串地址
       mov cx, 33
       mov ax, 01301h   ;ah=13, al=01h
       mov bx, 000ch    ;页号为0(bh=0) 黑底红字(bl=0ch,高亮)
       mov dl, 0
       int 10h          ;10h 号中断
       ret
BootMessage:       db  "Hello lijie, Welcome to OS World!"
times  510-($-$$)  db 0 ;填充剩下的空间,使生成的二进制代码恰好为512字节
dw     0xaa55           ;结束标志
  
     2. 编译boot.asm
      安装或解压缩NASM后,将NASM的安装目录加到PATH环境变量中后就可以在命令行的任何目录下使用NASM命令。进入到源代码所在目录,输入命令 nasm boot.asm -o boot.bin 后回车便完成了源代码的编译。
     3.将boot.bin写到TINIX.IMG
       从光盘源代码中复制TINIX.IMG文件到你的源代码目录下,运行FloppyWriter.exe,点击Write File To Image,分别在弹出窗口中选择boot.bin和TINIX.IMG,提示成功 OK。
     4. 在虚拟机中运行
       a.在虚拟机中新建一台PC
        启动VirtualBox->新建->名称任意取,操作系统选Other,Version选Other/Unknown->内存默认(可改变)->创建新的虚拟硬盘->动态扩展->选择虚拟硬盘的保存地址或默认,大小默认(可改变)->完成。
       b.将TINIX.IMG注册到VirtualBox
        管理(F)->虚拟介质管理(V)->虚拟软盘(F)->注册(A)->在弹出窗口中找到刚刚制作完成的TINIX.IMG打开->确定。
       c.运行刚刚创建的PC
        选择刚刚创建的PC->开始->首次运行向导->下一步->介质类型选软驱,介质位置选刚刚注册的TINIX.IMG->下一步->完成。OK,应该可以看到哪一行黑底红字了吧,呵呵。
       
     
   

你可能感兴趣的:(《自己动手写操作系统》—— 工作环境搭建)