XV6操作系统剖析_1.1 XV6操作系统的安装与使用

1.1  XV6操作系统的安装与使用

麻省理工大学的网站上
http://pdos.csail.mit.edu/6.828/2011/xv6.html,已经对XV6的来龙去脉及如何下载做了较详细的介绍。这里我们以32位的Ubuntu12.04为例,简单介绍一下如何通过x86模拟器Bochs来运行XV6操作系统。

XV6操作系统是可以运行在多核结构的X86平台上,我们需要支持SMP功能的Bochs模拟器,可从http://sourceforge.net/projects/bochs/files/bochs/2.6.1/下载bochs-2.6.1.tar.gz,解压后的路径不妨记为/home/cse/src/bochs-2.6.1。Bochs的图形界面需要用到GTK函数库,可通过以下命令安装该函数库。

[email protected]:~$  sudo apt-get install libgtk2.0-dev

之后进入/home/cse/src/bochs-2.6.1目录,依次执行以下命令编译并安装Bochs。

./configure --enable-debugger --enable-disasm --enable-smp

make

sudo make install

不妨假设我们把从MIT网站下载来的XV6源代码存放在/home/cse/src/xv6。我们需要对其中的dot-bochsrc文件做一些修改,该文件相当于是模拟器Bochs的配置文件。由于XV6的源代码memlayout.h中把宏PHYSTOP定义为0xE000000,即224M字节的物理内存,而从MIT网站下载来的dot-bochsrc文件只设置了32M的物理内存,因此可把dot-bochsrc第121行的“megs:
32”改为“megs: 256”,比224M更大即可。另一个需要修改的地方是dot-bochsrc第497行的“vga_update_interval: 300000”改为“#vga_update_interval: 300000”,即注释掉配置选项vga_update_interval,Bochs2.6.1模拟器不支持该选项。还有一个需要修改的选项为第273行的“cylinders=1024”,改为“cylinders=1000”,其原因是文件fs.img的大小为512,000 字节,共占用1000个扇区,每扇区512字节,如下所示。

ata0-slave: type=disk, mode=flat, path="fs.img",cylinders=1000, heads=1, spt=1

之后执行以下命令,我们就可以看到图1.1.1这样的界面。

[email protected]:~/src/xv6 $ make bochs

图1.1.1  make bochs

在图1.1.1左下方的<bochs:1>后输入一个字母c,表示continue后,我们就可以得如图1.2的XV6运行界面。从图1.1.2中我们可以看到有cpu0和cpu1这两个CPU在运行,

图1.1.2  XV6在bochs上的运行界面

同时运行的CPU个数,是由配置文件dot-bochsrc由第110行的配置选项count所指定,如下所示。

cpu: count=2, ips=10000000

运行ls命令,我们可得到图1.1.3这样的运行结果,从中我们可以看到我们在Linux系统上也可用的cat、echo、grep、kill、ln、ls、mkdir、rm和wc等命令。刹那间,我们仿佛看到了生命进化的源头,而Unix系统正是Linux系统的源头,XV6是Unix V6在X86多核平台上的重生。

图1.1.3  ls命令的运行结果

在图1.1.3中形如“cat  2  3  11451”的输出告诉我们,根目录下的文件cat在硬盘上占用了11451字节的空间,其i节点号为3,文件类型为2,即普通的文件(不是目录,也不是设备文件)。我们在分析XV6的文件系统时,会进一步讨论什么是i节点。这里我们只要知道,文件中存放了用户要保存的内容,但在文件系统中,我们还需要记录这些文件内容存放在硬盘的哪些扇区,即还要保存文件的说明信息。简单来说,文件由“文件内容本身”和“文件的说明信息”这两部分构成,在XV6操作系统中,会将“文件的说明信息”存放到索引结点(即index
 node,通常简称为i节点)中,一个文件对应一个inode,对不同的inode进行编号,因此不同的文件就对应不同的i节点号。

而图1.1.3中的“.  1  1  512”告诉我们,当前所处的目录也是个文件,其文件类型为1,在XV6中,这代表着一个目录(即Windows中的文件夹),其i节点号为1,共占用512字节硬盘空间。而“console  3  18  0”则告诉我们文件console所占的硬盘空间为0,这是一个类型为3的文件,即设备文件,其i结点号为18。文件console即所谓的“控制台”,对应的物理实体是键盘和显示器,对该console文件的读操作,相当于是读取从键盘输入的字符,对console文件的写操作,则是在屏幕上显示字符。在PC还未普及的年代,console文件对应的物理设备,是位于主机房的与主机直接相连的键盘与显示器,在那个年代,能进入主机房这样的核心位置的人员,当然是管理员级别的人物了。在无法人手一机的年代,其他用户就需要通过各自的终端设备,通过电话线等介质连接到主机房,分时共享主机房里的计算机,较早期的终端设备是由Teletype公司生产的电传打字机,缩写为tty。时至今日,我们仍然可在Linux上看到名为/dev/tty的设备文件,虽然其对应的物理实体早已物是人非,但这名字tty却延用至今。XV6为了简单,并未支持tty终端设备。

我们还可在qemu虚拟机上运行XV6,安装qemu及运行XV6的主要步骤如下所示,如果一切顺利,我们可得到如图1.1.4的运行结果。

(1)安装qemu

sudo apt-get install qemu

sudo ln -s /usr/bin/qemu-system-i386/usr/bin/qemu

(2)进入/home/cse/src/xv6目录,在qemu中运行xv6

make qemu

图1.1.1.4 Qemu上运行XV6

时间: 2025-01-03 00:27:38

XV6操作系统剖析_1.1 XV6操作系统的安装与使用的相关文章

XV6操作系统代码阅读心得(三):锁

锁是操作系统中实现进程同步的重要机制. 基本概念 临界区(Critical Section)是指对共享数据进行访问与操作的代码区域.所谓共享数据,就是可能有多个代码执行流并发地执行,并在执行中可能会同时访问的数据. 同步(Synchronization)是指让两个或多个进程/线程能够按照程序员期望的方式来协调执行的顺序.比如,让A进程必须完成某个操作后,B进程才能执行.互斥(Mutual Exclusion)则是指让多个线程不能够同时访问某些数据,必须要一个进程访问完后,另一个进程才能访问. 当

虚拟化基础架构Windows 2008篇之7-添加其他操作系统的安装镜像

看完文章,请顺手投我一票(王春海),谢谢 http://edu.51cto.com/activityvote/voteRanking 京东6.18结束了,IT人自己的6.18来了!!!51CTO学院3周年(6月30日-7月1日)70000课程不止5折!http://edu.51cto.com/lecturer/user_id-225186.html 2.5 添加其他操作系统的安装镜像 前文介绍过,使用Windows部署服务,可以为网络中的计算机部署Windows Vista.Windows 7.

Linux操作系统的安装

随着嵌入式的发展,Linux的知识是必须的一部分,下面就让我们进行Linux系统的安装过程演示: 一. Linux的安装 在此博客中以红旗(Red Flag)Asianux Workstation 3为例进行描述,其他版本的Linux与此相似. 1.1 安装方式 根据Linux系统在计算机中的存在方式,将Linux的安装分为单系统.多系统和虚拟机. 1.单系统安装.指在计算机中仅安装Linux系统,无其它操作系统. 2.多系统安装.指在同一台计算机中,除了安装Linux系统外还有其它操作系统,需

基础知识——CentOS7操作系统的安装图文教程

学习了很久的Linux操作系统,也看了不少的资料,对于操作系统的安装,相对来说都在不断的改进,安装的难度也在不断的降低,操作步骤也变得非常的简单了. 有很多CentOS系统的安装教程,但是比较不全面或者存在着一些错误.或者是讲解不详细,太过概括.这里我们对CentOS系统的安装给出了一份详细的安装方案.以图文共用的方式,希望能够解决大家的困惑. CentOS系统是商业版Red Hat Enterprise Linux(RHEL)的免费版,是架构LAMP的理想操作系统,稳定性非常好,和Ubuntu

在虚拟机上安装win 7操作系统的安装步骤详细截图

首先把所有虚拟机需要的东西贡献出来地址:我的百度网盘里面包括各种ISO映像文件,也就是操作系统,可以选择性的下载. 鄙人的截图软件和Windows激活软件地址:http://pan.baidu.com/s/1i37qRfZ 下载之后首先点击文件夹里面的VMware双击安装包进行安装软件 下面是安装操作系统实验的要求: 在安装有VMware虚拟机中完成如下任务(包含关键步骤.配置命令及验证结果的截图). 1. 创建一个安装Windows 7的虚拟机环境,其中硬盘一块40GB,内存512MB,两块网

虚拟机VMware的安装以及操作系统的安装1

打开虚拟机!我们对虚拟机进行设置,这里我们选择自定义(高级) 虚拟机硬件兼容性---默认的就可以,因为低版本的不兼容新硬件的和新系统 安装来源我们选择"稍后安装操作系统" 现在我们来选择需要安装的操作系统和版本(我以windows为例 版本:需要安装什么版本的就选择什么版本的) . 设置虚拟机的名称和安装路径(安装路径尽量不要放在C盘) 处理器的配置(默认就可以) 设置虚拟机的内存(一般按推荐就可以 记得不要超出你电脑的内存!会很卡的) 设置网络类型(根据自己的需要选择 后期也可以更改

第三章 Linux操作系统的安装

第三章 Linux操作系统的安装 因为笔者一直都是使用CentOS,所以这次安装系统也是基于CentOS的安装.把光盘插入光驱,设置bios光驱启动.进入光盘的欢迎界面. 其中有两个选项,可以直接按回车,也可以在当前界面下输入 linux text 按回车.前者是图形下安装,可以动鼠标的,后者是纯文字形式的.建议初学者用前者安装.直接回车后,出现一下界面: 这一步是要提示你是否要校验光盘,目的是看看光盘中的安装包是否完整或者是否被人改动过,一般情况下,如果是正规的光盘不需要做这一步操作,因为太费

用VMWare对Ubuntukylin_Linux_操作系统的安装

用VMWare软件对Ubuntukulin_Linux_操作系统的安装过程 1.打开VM虚拟机,点击创建新的虚拟机   2.之后在此选择典型一项即可   3.找到下载的Linux Ubnutn系统的iOS镜像文件 4.之后点击下一步出现如下对话框后完成填写. 5.填写完成后点击下一步,设置虚拟机的名称 以及 选择你要将系统安装到的地方. 6.这里制定磁盘大小,推荐值以上可以随意安排.剩下的基本都是默认下一步下一步即可 7.选取完毕  开启Linux系统 8.安装成功后,选择你之前建立的用户,点击

关于KB905474正版验证补丁破解办法 KB905474是个微软操作系统正版/盗版监测间谍软件。更新安装后,右下角有个提示说“系统监测到你的操作系统是盗版”。 如果没有安装的: 在系统提示更新的时候注意看一下,如果包含有“更新KB905474”就去掉“更新KB905474”方框前的勾,点击关闭(注意如果没有去掉那个勾得话,会找不到“关闭”,而是“确定”),在不在提示我该消息前打勾。 如果已经安装

关于KB905474正版验证补丁破解办法 KB905474是个微软操作系统正版/盗版监测间谍软件.更新安装后,右下角有个提示说“系统监测到你的操作系统是盗版”. 如果没有安装的: 在系统提示更新的时候注意看一下,如果包含有“更新KB905474”就去掉“更新KB905474”方框前的勾,点击关闭(注意如果没有去掉那个勾得话,会找不到“关闭”,而是“确定”),在不在提示我该消息前打勾. 如果已经安装的: 1,  搜索“KB 905474”这个文件,删除. 2,  打开注册表,找到 HKEY_LOC