Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3308340
  • 博文数量: 258
  • 博客积分: 9440
  • 博客等级: 少将
  • 技术积分: 6998
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-03 10:28
个人简介

-- linux爱好者,业余时间热衷于分析linux内核源码 -- 目前主要研究云计算和虚拟化相关的技术,主要包括libvirt/qemu,openstack,opennebula架构和源码分析。 -- 第五届云计算大会演讲嘉宾 微博:@Marshal-Liu

文章分类

全部博文(258)

文章存档

2016年(1)

2015年(4)

2014年(16)

2013年(22)

2012年(41)

2011年(59)

2010年(40)

2009年(75)

分类:

2009-09-12 16:15:55

不管是做作业,还是以后做工程,都应该从目的着手,才能做到有的放矢,达到事半功倍的效果。
先来看一下本试验的要求:
(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源码的结构,以及大体的执行流程,顺着这个过程来阅读代码。
   在读代码时,肯定会碰到很多不懂的东西,这时再去学习相应方面的知识就行了,这是一个循序渐进的过程,开始可能很难,一段代码包括的知识可能自己以前一点都没接触过,确实是很郁闷,
   但是,只要坚持,慢慢就会感觉自己入门了!

  具体的一些知识,以后会介绍,这里知识给大家一点建议,提供一个思路!
        
阅读(3186) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~