购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2.2 配置运行环境

操作系统的运行不同于普通应用程序,需要BIOS支持,所以我们在运行与调试自己写的操作系统时需要采用虚拟机进行模拟运行。当系统在虚拟机上验证通过以后,再部署到真实的机器上执行。

目前,常用的虚拟机有VMWare、Virtual PC、QEMU、Bochs等。其中,QEMU和Bochs因为轻便易用,成为开发操作系统的首选。接下来就介绍Bochs和QEMU的安装与使用方式。

首先介绍Bochs。Bochs是一个模拟器,它用纯软件的办法完全模拟x86 CPU和外围设备,所以,Bochs的运行性能相对较差。但也正是因为Bochs是纯软件实现对硬件的模拟,所以使其对操作系统进行代码级的调试变得相对容易。

Bochs是完全开放源码的软件,读者可以通过搜索引擎下载到Windows、Linux等各种版本的二进制安装文件。这就意味着,编译和运行调试可以采用双系统的方式,即在Linux下完成编译,在Windows等图形界面支持比较好的系统上进行调试。

Bochs的安装过程非常简单,只需要一路单击Next按钮即可。需要注意的是,在安装的过程中要选择Full选项,这样DLX Linux Demo才会出现在Bochs的安装目录下。

安装完成以后,在Bochs的安装目录下,可以找到一个名为dlxlinux的文件夹。将这个文件夹复制一份,并且改名为linux011。之后进入这个文件夹,编辑bochsrc.bxrc文件。这个文件是Bochs的配置文件,虚拟机运行所依赖的软盘、硬盘、显卡等信息都可以在这个文件中进行配置。

这个文件的大多数内容都不必修改,关键的配置只有两行。

第一行是floppya:1_44=floppya.img,status=inserted。这一行指定Bochs所使用的虚拟镜像文件,比如,操作系统镜像叫作linux.img,那就需要把这一行中的floppya.img改为linux.img。

第二处需要修改的地方是boot:c。这一行代表了系统要从硬盘启动,因为本书中的实验都是以软盘为基础的,所以应该改为boot:a,这样虚拟机就会从floppya开始启动了。

文件的其余部分暂时保持不变,最终bochsrc.bxrc的内容如下所示

1  #########################################

2  #bochsrc.txt file for DLX Linux disk image.

3  #########################################

4

5  #how much memory the emulated machine will have

6  megs:32

7

8  #filename of ROM images

9  romimage:file=../BIOS-bochs-latest

10 vgaromimage:file=../VGABIOS-lgpl-latest

11

12 #what disk images will be used

13 floppya:1_44=linux.img,status=inserted

14 floppyb:1_44=floppyb.img,status=inserted

15

16 #hard disk

17 ata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14

18 ata0-master:type=disk,path="hd10meg.img",cylinders=306,heads=4,spt=17

19

20 #choose the boot disk.

21 boot:a

22

23 #default config interface is textconfig.

24 #config_interface:textconfig

25 #config_interface:wx

26

27 #display_library:x

28 #other choices:win32 sdl wx carbon amigaos beos macintosh nogui rfb term svga

29

30 #where do we send log messages?

31 log:bochsout.txt

32

33 #disable the mouse,since DLX is text only

34 mouse:enabled=0

35

36 #enable key mapping,using US layout as default.

37 #

38 #NOTE:In Bochs 1.4,keyboard mapping is only 100%implemented on X windows.

39 #However,the key mapping tables are used in the paste function,so

40 #in the DLX Linux example I'm enabling keyboard mapping so that paste

41 #will work.Cut & Paste is currently implemented on win32 and X windows only.

42

43 #keyboard:keymap=$BXSHARE/keymaps/x11-pc-us.map

44 #keyboard:keymap=$BXSHARE/keymaps/x11-pc-fr.map

45 #keyboard:keymap=$BXSHARE/keymaps/x11-pc-de.map

46 #keyboard:keymap=$BXSHARE/keymaps/x11-pc-es.map

QEMU也是一款模拟器软件,采用动态二进制翻译的技术来模拟不同架构的CPU,并提供对应的硬件设备模型。它能保证运行在其中的客户OS(Guest OS)不用进行修改就能运行。QEMU与KVM技术一起,可以使得Guest OS系统的运行接近物理机的速度。相比Bochs,QEMU的特点是高效、跨平台。

QEMU在Windows上的安装很简单,只需要在QEMU的官网上下载对应的安装文件,并通过QEMU installer安装即可。

安装QEMU之后,打开QEMU所在的文件目录,可以看到有一系列qemu-systemxxx.exe的可执行文件。这些文件对应的是需要模拟的不同架构的CPU类型。本书实验开发的Linux 0.11的镜像文件可以使用qemu-system-x86_64.exe或者qemu-systemi386.exe运行。

读者也可以在Linux环境中进行开发、运行,因此需要在Linux上配置虚拟机,这是一项比较简单的工作。在Linux环境下可以直接使用发行版对应的包管理工具进行安装,下面以Ubuntu为例:

sudo apt install bochs bochs-x

安装完之后可以在任意目录新建bochsrc文件,文件内容可以参考前面的Windows的配置。这里要注意修改romimage和vgaromimage的路径,如下所示:

1 #filename of ROM images

2 romimage:file=/usr/share/bochs/BIOS-bochs-latest

3 vgaromimage:file=/usr/share/bochs/VGABIOS-lgpl-latest

之后就可以直接通过命令“bochs-f bochsrc”运行Bochs。 a4YpGIfH/TFjoAG4Jh83DQhXhNToaOcDwQsu9wB/dq0MOP7Xk/LW/ZusOu+MJP7n

点击中间区域
呼出菜单
上一章
目录
下一章
×