本操作系统实验的硬件环境是IA-32(x86)架构的PC机(就是你现在正在使用的计算机),主要软件环境是Bochs + gcc + 你最喜欢的编辑器/IDE + 你最喜欢的操作系统 + Linux 0.11源代码。实验的基本流程是根据实验要求编写应用程序、修改Linux 0.11的源代码,用gcc编译后,在Bochs的虚拟环境中运行、调试目标代码。
上述实验环境涉及到的软件都是免费且开源的,具有较强的可移植性,可以在多种计算机的多种操作系统上搭建。为方便实验者,我们在最常见的平台Ubuntu(最流行的GNU/Linux发行版之一)——上制作了hit-oslab集成环境,它基本包含了实验所需的所有软件,安装过程非常简单,基本上是直接解压就可以使用。
主要平台和工具简介
x86模拟器Bochs
Bochs是一个免费且开放源代码的IA-32(x86)架构PC机模拟器。在它模拟出的环境中可以运行Linux、DOS和各种版本的Windows等多种操作系统。而Bochs本身具有很高的移植性,可以运行在多种软硬件平台之上,这也是我们选择它做为本书的指定模拟器的主要原因。如果您想拥抱自由的Linux,那么Bochs几乎是您的不二选择。如果您想继续把自己绑定在Windows平台上,那么除了Bochs,您还可以选用VMware或者Microsoft Virtual PC。它们是最著名虚拟机软件,而且都可以免费使用。因为Bochs的是模拟器,其原理决定了它的运行效率会低于虚拟机。但对于本书所设计的实验来说,效率上的差别很不明显。而且,Bochs有虚拟机无可比拟的调试操作系统的能力,所以我们更建议您选用Bochs。hit-oslab已经内置了bochs,本实验后文假定的缺省环境也是Bochs。
关于Bochs的更详细的介绍请访问它的主页及Bochs使用手册。
GCC编译器
GCC是和Linux一起成长起来的编译器。Linux最初的版本就是由GCC编译的。现在GCC也是在自由软件领域应用最广泛的编译器。所以,我们也选择GCC做为本书实验的指定编译器。
DB调试器
GDB调试器是GCC编译器的兄弟。做为自由软件领域几乎是唯一的调试器,它秉承了*nix类操作系统的一贯风格,采用纯命令行操作,有点儿类似dos下的debug。关于它的使用方法请看GDB使用手册。
Ubuntu (GNU/Linux)
Ubuntu也许不是目前最好用的Linux桌面发行版,但它一定是最流行的。主要特点是易用,非常的易用。
现在,已经有越来越多的人开始用Ubuntu完全代替Windows,享受更加自由、安全、守法的感觉。Ubuntu的主页是http://www.ubuntu.com/ ,这里不仅可以免费下载到iso文件,甚至能免费申领Ubuntu的安装光盘。
我们强烈建议您在Ubuntu下做实验。因为有些实验内容涉及到在自己改进的Linux 0.11下,运行自己编的应用程序。被改进的功能都是高版本Linux内核已经具有的,在其上确认自己编写的应用程序无误后,再用之测试自己改进的Linux 0.11,可以更有信心些。