已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华东交通大学04计算机四班 金鑫 学号:20040610040430目录一、引言1二、Bochs基础介绍3三、Bochs使用配置6步骤1-下载操作系统镜像文件6步骤2-重新定义配置文件6步骤3-虚拟Minix8第一步、 配置BOCHS9第二步、 启动BOCHS10第三步、 调试功能11四、Bochs使用心得12五、结束语14六、致谢15七、参考文献17一、引言Bochs是一种开源且高度可移植的IA-32(x86)PC模拟器,用C+写成,能够在大部分常见的平台上运行。它包括了对Intel x86 CPU,通用I/O设备,和定制BIOS的模拟。通常情况下,Bochs能够被编译成模拟386,486或者Pentium CPU。Bochs能够模拟运行大部分的操作系统,包括Linux, Windows 95, DOS 和 Windows NT 4。Bochs 由Kevin Lawton所写,当前由Bochs项目进行维护。Bochs能够在多种方式下被编译和使用,有些方式仍在开发中。Bochs的“典型”应用是提供完全的x86 PC 模拟,包括x86处理器,硬件设备,以及内存。这些可以允许在你的工作站上利用这个模拟器去运行操作系统和软件,就像你有一台机器中的机器一样。举例来说,Bochs允许你在一台带有X11的Solaris机器上运行Win95的应用程序。 Linux是一种能运行于多种平台、源代码公开、免费、功能强大、遵守POSIX标准、与UNIX兼容的操作系统。Linux最初版本是由Linus Benedict Torvalds编写的,为了能够使Linux更加完善,Torvalds在网络上公开了Linux的源码,邀请全世界的志愿者来参与Linux的开发。在这些无私的人们的帮助下,Linux得到不断的完善,并在短时期内迅速崛起。现在,Linux内核已经发展到了2.5.X版,并还在以相当快的速度不断地发展着。据报道,它是一个很有发展前途的操作系统,也是为数不多可以与Microsoft旗下操作系统相竞争的操作系统。Linux 0.11是众多Linux 系统中非常出色的一个,它属于一个早期的Linux 版本。之所以选择Linux 0.11是因为它运行起来比较方便,而且所要设计的资料也比较完整全面,不足之处就是版本太低导致的研究资源缺失。我国的IT产业起步较晚,技术落后于西方经济发达国家。在我国,由于受知识产权的限制,无论是使用PC 平台上的Windows,还是使用应用于大中型机的UNIX,都无法窥视到其内部结构。这些系统很可能存在不为我们所知的漏洞,如果这些漏洞为别有用心者所利用,将会严重危及我国的经济安全和国家安全。操作系统不同于其它软件产品,它是其它应用程序得以运行的平台,应用软件的开发必须基于对相应平台(操作系统)的技术的理解和掌握。由于我们的软件企业无法获知这些系统的细节,根本无法与拥有这些关键技术的国外先进企业相抗衡,长此以往,将会对我国软件产业产生深远的负面影响。为了打破这种受制于人的局面,我国迫切的需要开发一个具有自主知识产权的操作系统。由于Linux性能优越,属于自由软件,公开源代码且完全免费,所以拿来作发展自主知识产权的操作系统的底版是非常合适的选择。只有完全了解当前Linux的实现细节,才能在它的基础上作进一步的开发和完善。因此,分析Linux源代码对于在Linux现有的基础上开发我们自己的Linux就具有非常现实和重要的意义。通过Bochs来虚拟运行Linux 0.11系统,在这个过程中我们需要进行很多的配置和修改参数操作,通过对Linux 0.11源代码的学习为来加深对自己这个课题的认识。本文主要论述如何在Bochs虚拟机上编译运行Linux 0.11系统,目的是通过对环境参数的设置来学习Linux 0.11,并提出一些自己的研究与看法。二、Bochs基础介绍对热衷于升级的朋友们来说,虚拟机是他们非常喜爱的工具,因为仅仅利用硬盘上的一些空间,就可以模拟出一台全新的“裸机”,有硬盘、软驱、光驱、声卡、网卡等硬件设备,然后在其中完成硬盘分区、格式化、系统安装、软件试用、体验病毒等等高风险操作你根本不用担心在虚拟机上进行的操作会对系统造成什么伤害,因为这一切只不过是“黑客帝国”中的虚拟世界而已!VMware、Virtual PC这两款软件几乎是虚拟机世界的代名词,但它们对系统配置的要求都非常高,因此有许多的朋友不能够使用。Bochs的出现改变了这个局面:它不仅对系统要求不高,而且可以模拟Windows、Linux、Unix等操作系统,更妙的是还可以从Bochs站点直接下载某个操作系统的镜像文件!这种模式能够简化许多我们的操作,为我们的使用提供了很大的便利。Bochs是一种开源且高度可移植的IA-32(x86)PC模拟器,用C+写成,能够在大部分常见的平台上运行。它包括了对Intel x86 CPU,通用I/O设备,和定制BIOS的模拟。通常情况下,Bochs能够被编译成模拟386,486或者Pentium CPU。Bochs能够模拟运行大部分的操作系统,包括Linux, Windows 95, DOS 和 Windows NT 4。Bochs 由Kevin Lawton所写,当前由Bochs项目进行维护,我们可以通过/去访问。我们可以在以上的网址中下载到Bochs源代码,以及最新发布的Bochs系统版本。Bochs能够在多种方式下被编译和使用,有些方式仍在开发中。Bochs的“典型”应用是提供完全的x86 PC 模拟,包括x86处理器,硬件设备,以及内存。这些可以允许在你的工作站上利用这个模拟器去运行操作系统和软件,就像你有一台机器中的机器一样。举例来说,Bochs允许你在一台带有X11的Solaris机器上运行Win95的应用程序。Bochs文档使用Docbook撰写。Docbook是一个文本格式,它能够被转换为多种常见的浏览器格式,诸如HTML,PDF,以及Postscript。每一个二进制release版包括转换为HTML格式的文档。如果你想浏览这些最新的WEB文档,那么你可以通过下面的网址进行观看:/doc/docbook/index.htmlBochs,一个模拟x86环境的虚拟机,如果没搞错的话应该算是元老级的 emulator了。值得我们注意的是Bochs是以可移植性为主要目标的,它可以运行在 PPC, Alpha, Sun SPARC, 和 MIPS等很多非X86的平台上,当然也可以运行在X86上,这几乎是Bochs虚拟机和其他虚拟机之间最大的区别。不幸的是,良好的可移植性以牺牲一定的效率为代 价的,和VMware等采用virtualization技术的模拟器相比,Bochs的速度要慢很多,和真正的物理机器相比,更是要慢好几倍。Bochs可以干的事情很多:用的最多的自然是所谓的虚拟机,在一个OS里面再跑一个OS。如果你的CPU足够强悍的话,或者你要写操作系统,Bochs也是很有价值的工具。Bochs所模拟的X86的每一部分都是可访问的,这就可以让你在不用启动机器的情况下分析代码的运行情况,而且你也可以随时查看 Bochs虚拟机的寄存器状态,内存的使用情况,I/O接口的输入输出等等,对一个程序员来说,能够完全控制一台机器的方方面面是不是会让自己很有成就感呢?哪怕它是虚拟的,而更为重要的是Bochs本身就提供了一个debugger层:如果你比较怀念DOS下的游戏,那么在性能可以忍受的情况下,你也可以尝试使用一下Bochs。我最为喜欢的是Bochs良好的可配置性,无论在Windows还是在Unix平台下,其配置接口几乎都是一样的,虽然它的配置语法很严格,但是严格的同义词其实也就是无二义性。同时其说明文档也写得很详细。还有很重要的一点,它是一个基于GPL的开源项目,用C/C+写成,如果你有自己的特殊需求你完全可以按照自己的意图修改它,相对其他商业化的emulator,你就有了更多可定制的空间。其实使用Bochs,你可以更清楚地了解 PC的运行原理,由于 Bochs 使用一个配置文件来模拟一个环境,这个配置文件中有很多的参数可以调整,这样使用起来会很方便。针对Bochs的使用,每个使用者都有自己独特的心得体会,这是由Bochs自身独有的特点所决定的。Bochs给使用者提供了很大的一个灵活度空间,允许使用者根据自身的需求来定向的配置Bochs的使用方向。我觉得这将会是以后软件产业的一个发展方向!顾客就是上帝将决定以后的软件将紧紧的围绕着市场和使用者来进行具体的功能搭配设置,这样才能让软件公司的利润最大化,同时也促进我们国内软件公司的发展壮大。这部分是为下面Bochs的使用配置做一个基础性的介绍说明,从而为下面Bochs的使用配置打下一个良好的基础。三、Bochs使用配置在这部分我将介绍本论文的重点,也就是如何配置Bochs来运行Linux 0.11,在这里我将具体的过程分成了详细的多个步骤,具体请看下面:步骤1-下载操作系统镜像文件下载了Minix的镜像文件,下载回来的是一个GZ格式的压缩文件,大小为6.4MB,可以用WinZIP或WinRAR层层展开,然后会得到Bochsrc.txt、Readme.txt、Minix203.img 3个文件,将它们全部复制到Bochs的安装目录中。复制完以后我们进行步骤二的具体操作。步骤2-重新定义配置文件Bochs的使用与其他软件不同,需要对Bochsrc.txt文件进行配置后才能正常使用,如果直接执行Bochs会提示出错。虽然我们可以参考安装目录下的Bochsrc-sample.txt文件,但仍然十分麻烦,这里我是通过去“/guestos/” 下载一个名为debian-2.2r5.bochsrc.txt的配置文件,将其重新命名为Bochsrc.txt,并复制到Bochs的安装目录中覆盖同名文件,然后按照下面的说明进行修改。需要注意的是,修改时只需更改行首不带“#”的内容即可,因为我们都清楚行首带“#”表示该行已被屏蔽。更改模拟BIOS文件的位置找到“romimage: file=bios/BIOS- bochs-latest, address=0xf0000”,这里定义了Bochs模拟BIOS文件的位置。Bochs安装文件夹中没有BIOS这个子目录,但有“BOOS-bochs-latest”这个文件,因此我们在这里将其更改为“romimage:file=BIOS-bochs-latest, address=0xf0000”更改虚拟内存配置找到“megs: 32”所在的行,它表示虚拟系统被分配到32MB的内存,如果你嫌少的话,可以在行首添加“#”将之屏蔽,然后选择更大的内存,当然不要忘记将行首的“#”删除掉。更改模拟VGABIOS文件的位置找到“vgaromimage: bios/ VGABIOS-elpin-2.40”,基于同样的理由,将之更改为“vgaromimage: VGABIOS-lgpl-latest”。更改虚拟硬盘的技术参数由于标准配置文件中指定debian-image作为硬盘的镜像文件,而我们下载的是Minix的镜像文件,因此这里我们需要进行重新配置:找到“diskc: file=debian-image, cyl=1024, heads=16, spt=63”,将之修改为“file=minix203.img, cyl=95, heads=16, spt=63”。注意:这里的“minix203.img”是解压得到的Minux镜像文件名,至于后面的cyl、heads、spt等参数,可以运行“开始所有程序Bochs 2.0.2Disk Image Creation Toolhd”,由于minix203.img的文件大小为46.8MB,因此这里键入47即可,接连按下两次回车键,程序会自动创建一个名为c.img的镜像文件,我们可以从图1所示窗口的底部查看到上述参数。步骤3-虚拟Minix现在,从“开始”菜单中运行Bochs 程序,打开如图2所示的主界面,由于相关配置已在Bochsrc.txt文件中全部修改完毕,因此我们只需要按下“5”就可以虚拟Linux操作系统了。稍等片刻,就可以看到下图所示的窗口了,从窗口顶端的工具栏上可以看到软盘、光驱、复制、粘贴、配置、复位、电源等按钮,看起来就像一台真实的计算机,登录后就可以领略Linux操作系统的风采了。以上就是一个具体的Bochs使用配置例子,下面我将要介绍另外一种方法。以下的方法是不需要去下载方法一中的镜像文件的,比起第一个来说可能更为方便。具体配置过程如下:第一步、 配置BOCHS实际上配置BOCHS是很简单的,bochs没有给我们提供图形界面的配置工具,这就需要我们自己来修改配置文件。如果你细心的话你会发现在BOCHS文件夹里面有一个bochsrc-sample.txt的文本文件,里面包含了所有BOCHS参数的信息。在这里我们仅仅介绍最简单的配置选项。在一行的最前面加上“#”表示这一行是注释行。 内存,以MB为单位,对于dos来说最大可以访问16MB 的内存,所以我就给了他16MB,你可以根据自己的机器来调 整megs: 16。下面两句一般是不可以改的,至于干什么用的就不用我说了。从他们的文件名就可以看出来。romimage: file=./BIOS-bochs-latest,address=0xf0000vgaromimage:file=./VGABIOS-lgpl-latest。boot: floppy 这一句可以不要,他只是指定用来保存日志的文件。如果不指定的 话他就会输出到命令控制台上。 log: bochsout.txt 这一句是设置在开机时是否激活鼠标,BOCHS对于鼠标的控制不是 很好。建议如果不是特别需要的话不要激活他。在运行期间也可以点窗口右上角的鼠标图标来激活它。下面就是软驱了,我想我们写操作系统肯定是先 把操作系统放在软盘(或映像)里的。在BOCHS里面是可以使用任意大小的软驱映像的。可以是1.44或2.88,还有就是BOCHS里面可以使用两个软驱。 floppya: 2_88=test.img, status=inserted #floppyb: 1_44=floppyb.img, status=inserted下面是硬盘,很简单,还有就是BOCHS也是可以支持多个硬盘的。那么,硬盘文件是怎么生成的呢?我们可以发现硬盘是 img格式的。你注意没有在BOCHS文件夹里有一个工具叫 bximage.exe,我想你应该猜出来了。他就是用来生成这个硬盘 文件的工具。我在这儿还想说的是硬盘分三种格式的,最好选用growing类型。这种有一个好处就是节省硬盘空间,不过使用这种类型的硬盘还需要在下面加上mode = growing这个选项。ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14ata0-master: type=disk, path=dos.img, cylinders=306, heads=4, spt=17。各种基础的相关配置就如上所述。第二步、 启动BOCHS配置文件已经写好了,硬盘文件等也都已经弄好了。那么我们如何来启动BOCHS呢?很简单,你右击一下上面写的那个配置文件(例如myos.bxrc,注意:扩展名要是.bxrc。)选择“运行”或双击即可。或者你也可以自己动手写一个批处理文件。很简单,代码如下所示:cd d:Bochs-2.2.1dos.bochs.exe -q -f bochsrc.bxrc(假设你机子上的Bochs程序安装在D盘的Bochs-2.2.1目录下)这样做的好处就是无论这个启动脚本放在哪儿都是可以使用的。第三步、 调试功能新建一个批处理文件,写入一下内容:cd d:Bochs-2.2.1dos.bochsdbg.exe -q -f bochsrc.bxrc运行这个批处理文件,你就可以进入调试状态了。不过你会发现,程序卡住了。没有像普通运行状态一样进入你的dos操作系统。为什么?因为调试在等待你的命令。你只有给他一个命令他才会继续。我们输入“c”,然后回车。DOS运行起来后可以通过按住CTRL+C来结束正在运行的程序。下面的是一些最基本的调试命令:help 现实调试命令列表;help 命令 显示某条命令的详细用法;c:继续,前面我们已经用过了;s:单步执行。他还有一个扩展用法:“s n :执行n步。”b 0x7c00:在内存0x7c00处设置一个断点.当程序执行到0x7c00处就自动进入到调试状态.后面的这个数指的是内存的线性地址。也可以使用10进制的数,但是好像没有人会这样做。x /20 0x7c00: 以16进制的形式从内存的0x7c00开始显示20个字的数据。这个是很常用的命令,但是需要注意的是它的显示顺序和16进制编辑器中的显示顺序有一点小的区别。它的显示是以字为单位的,而且在字中是从低到高显示的。不过也没有什么大不了的,只要稍微注意一下就可以了。dump_cpu:这个是我最长用的三个指令之一,功能是显示现在的寄存器的状态。u /20 0x7c00 :反汇编内存0x7c00处,反汇编的长度是20。有上面这6条语句后,对于日常应用已经完全够用了,如果你想了解其他命令的用法只要执行一下help “命令名”就可以了(注意,命令上要带有引号)。四、Bochs使用心得经过上面分析的调试配置后,我自己对Bochs虚拟机也有了自己的认识。在虚拟机的世界里,VMware、Virtual PC这两款软件几乎是虚拟机世界的代名词,但它们对系统配置的要求都非常高。这个学期学了操作系统这门课程后我才知道了 Bochs这个虚拟机系统,它不仅对系统要求不高,而且可以模拟Windows、Linux、Unix等操作系统,更妙的是还可以从Bochs站点直接下载某个操作系统的镜像文件!下载下来的镜像文件只需要经过简单的参数配置设置后就可以模拟Windows、Linux、Unix等操作系统,这样就不需要过多的操作,使用起来很是方便。Bochs是一个能够完全仿真Intel X86计算机的程序。它可以被配置成仿真386、486、Pentium或以上的新型CPU。在执行的整个过程,Bochs仿真了所有的指令,并且含有标准PC机外设所有的设备模块。由于Bochs仿真了整个PC环境,因此在其中执行的软件会“认为”它是在一个真实的机器上运行。这种完全仿真的方法使得我们能在Bochs下不加大修改地运行大量的软件系统。Bochs是Kevin Lawton于1994年开始采用C+语言开发的软件系统,被设计成能够在Inter X86、PPC、Alpha、Sun和MIPS硬件上运行。不管运行的主机采用的是哪一种平台,Bochs仍然都能够仿真X86 CPU的微机平台。这是其他两种仿真软件所不能够做到的,那也是Bochs虚拟机相对于他们的最大优势。为了在被模拟的机器上执行任何活动,Bochs需要与主机操作系统进行交互。当在Bochs显示窗口中按下一键时,一个击键事件就会发送到键盘的设备处理模块中。当被模拟的机器需要从模拟的硬盘上执行读操作时,Bochs就会从主机上的硬盘映像文件中执行读操作。经过这次的课程设计后我发现Bochs软件的安装非常方便。我们可以直接从B网站上下载到Bochs安装软件包。如果你所使用的计算机操作系统是Windows,则其安装过程与普通软件完全一样。安装好后会在C盘上生成一个目录:“C: Program FilesBochs-2.1.1”(其中版本号随不同的版本而不同)。为了在Bochs中运行一个操作系统,最少需要以下一些资源信息:Bochs执行文件、Bios映像文件(通常称为”BIOS-bochs-latest”)、vga bios映像文件(例如,“VGABIOS-lgpl-latest”)、至少一个引导启动磁盘映像文件(软盘、硬盘或CDROM的映像文件)。但是我们在使用过程往往需要为运行系统预先设置一些参数。这些参数可以在命令行上传递给Bochs执行程序,但通常我们都使用一个配置文件(文件后缀为.bxrc,例如Sample.bxrc)为专门的一个应用来设置。以上是我自己一些用了Bochs后的心得体会,每个人用了后都应该有自己独有的一些见解,这是一个开放性很高的软件,使用者可以根据自己使用的特点来定向的改造,使之能够成为自己心目中所想的那样。五、结束语通过对Bochs下如何配置运行Linux 0.11系统的学习,我加深了对Bochs虚拟机系统的认识,并在较深层次上理解了如何在其上构建虚拟操作系统的实现过程。通过对该软件内核代码的分析,我对代码中涉及核心功能部分的实现过程有了一个清晰的思路。虽然Bochs没有提供给我们一个良好的互操作界面,但它用 它良好的上手性和简单的操作弥补了它局部的不足。计算机由硬件和软件两部分组成,操作系统OS是配置在计算机硬件上的第一层软件,是对硬件系统的第一次扩充。它在计算机系统中占据了及其重要的地位,其它所有的软件如汇编程序、编译程序、数据库管理系统等系统软件以及大量的应用软件,都必须依赖于操作系统的支持,取得它的服务。操作系统已经成为了从大型机直至微机都必须配置的软件。操作系统具有非常丰富的功能:处理机管理功能、存储器管理功能、设备管理功能和文件管理功能。为了方便用户使用操作系统,还需要向用户提供一个使用方便的用户接口。OS的形成迄今为止已有约40年的时间了。在50年代中期出现了第一个简单的批处理操作系统。到60年代中期产生了多道程序批处理系统,不久又出现了基于多道程序的分时系统。80年代是微机和计算机局域网大发展的年代,同时也是微机OS和LAN OS的形成和大发展的年代。六、致谢感谢这一个学期来熊老师的谆谆教导,操作系统这门课程向来是大学生四年中最为重要的一门课程之一,因此这门课程是不好教的。经过这一个学期的学习,我发现以前我对操作系统的认识是很肤浅的,仅仅停留在了最基本的窗口操作界面。这也难怪,因为我们大多数同学用的都是Windows操作系统,而只有少部分同学可能在使用Linux操作系统。Linux操作系统没有像Windows操作系统那样良好的窗口操作界面,但是它也有Windows操作系统所不具备的优点:Linux速度比较快,安全性比windows好、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模压成型工保密意识强化考核试卷含答案
- 注聚工岗位安全风险考核试卷含答案
- 牙粉制造工班组建设竞赛考核试卷含答案
- 爆破作业技能与安全试题库及答案
- 木地板铺设施工工艺
- 2026年度毕节市专业技术继续教育公需科目考试及答案
- 2026年职业技能鉴定考试(水生产处理工-中级-四级)历年参考题库含答案
- 工程施工砌筑施工综合应急预案
- 湿地软基水上桩基设备及笼体防护
- 园林绿化建设消防安全安全应急预案
- 2026年济宁孔子文化旅游集团有限公司社会招聘笔试参考题库及答案详解
- 2026年云南民族大学附属中学西山分校教后勤工作人员招聘(5人)笔试备考题库及答案详解
- 2026年护理安全目标管理课件(完整版)
- 新版2026秋统编版(新版)小学道德与法治五年级上册(全册)知识点清单梳理
- 湖南省(2026年)公开遴选公务员笔试题及答案解析(B类)
- 2026 年 ICU 危重症患者综合监护护理课件
- 新版部编人教版四年级上册道德与法治(课件)1热爱班集体
- 《红星照耀中国》第六章:红星在西北 带读课(课件)
- 2025年全国青少年科学探究建模能力大赛初赛试题(含完整答案解析)
- (正式版)DB31∕T 885-2024 《 老旧住宅电梯安全评估规范》
- 世界银行贷款项目的准备和管理课件
评论
0/150
提交评论