不管是做作业,还是以后做工程,都应该从目的着手,才能做到有的放矢,达到事半功倍的效果。
先来看一下本试验的要求:
(1)主要为将 uCOS/II 移植到模拟器 bochs 上运行
(2)掌握操作系统和底层体系结构之间的关系(x86)
(3)掌握操作系统的引导和启动过程
(4)掌握中断的设置
(4)掌握 intel 汇编与 AT & T 汇编的差异
我们要做的就是把一个操作系统移植到一个模拟器上,首先应该做的就是这一套开发环境是怎么个样的。
1 熟悉bochs模拟器
(1)bochs的安装
如果是ubuntu系统的话,可以直接才用下面的命令:
sudo apt-get install bochs bochs-x bximage
如果才用其他的linux系统,可以去官方网站下载源码,编译安装。
ubuntu的安装方式确实很简单,但是忽略了很多的细节,这就需要我们多加的思考:
a. 安装的bochs是哪个版本?
b. 还要安装bochs-x 和 bximage ,它们是干什么的,不安装的话,会出现什么错误等等。
如果你对configure比较熟悉的话,采用编译安装可能会了解更多的信息。
(2)安装完了bochs,要做的就是如何在bochs上跑一个操作系统,或是怎么引导一个操作系统
在做上面的步骤之前,我感觉应该先大体上了解:
a. 看看bochs与qemu,virtualPC之类的模拟器 到底有什么区别,优缺点是什么?
b. bochs是怎么跑起一个OS的
bochs肯定是仿真的PC,那么我们就想到bochs肯定也是模拟了PC机的各个部件,
CPU,Memory,Clock,软驱,光驱,硬盘,串口,并口等等之类的东西,事实上bochs在启动的时候就会要求进行这些配置。
进行配置我们可以参考bochs自带的配置文件,如果是apt-get install 安装的话,这个配置文件被安装在/usr/share/doc/bochs目录下,文件名应该是
example.gz之类的,解压就可得到一个example文件,里面是bochs的默认配置,这个配置文件很容易读懂,建议大家花20分钟读一下,就会对bochs
有个大体的了解。
c. 根据自己的要求,稍微修改下,把这个文件拷贝到bochs的安装目录下,试着运行bochs,看看会出现什么结果,然后,想想为什么会出现这样的结果,
原因是什么?
这里给出几点提示:
1. 通俗说,我们根本没有指定bochs启动要运行什么,就相当于一个没有bios的PC机,你感觉能出现什么结果?
2. 可能还会出现一些其他的错误,举个例子: 说某个并口错误。这个应该上面提到无关,那么又是什么原因导致的(可能也不会出现这个错误)
d. 确定bochs是安装配置成功了。
2 思考PC机上操作系统的启动过程
a. 大体上了解下,pc机上操作系统是怎么启动的?也可以说要引导起一个操作系统,需要哪些条件?参考《深入理解Linux内核》和网上的一些资料
b. 了解了a中的知识后,就应该想,我应该自己制作哪些东西才能模仿PC机上操作系统的启动,这些东西的大体制作过程是什么? (不要只是抄抄网上的命令,要把每个命令的意思弄明白)
3 阅读ucos的源代码
至于源代码怎么读,需要哪些基础知识,我个人感觉不用考虑这么多。重要的是我先了解ucos源码的结构,以及大体的执行流程,顺着这个过程来阅读代码。
在读代码时,肯定会碰到很多不懂的东西,这时再去学习相应方面的知识就行了,这是一个循序渐进的过程,开始可能很难,一段代码包括的知识可能自己以前一点都没接触过,确实是很郁闷,
但是,只要坚持,慢慢就会感觉自己入门了!
具体的一些知识,以后会介绍,这里知识给大家一点建议,提供一个思路!
阅读(365) | 评论(0) | 转发(0) |