JOS学习笔记(一)

起初 神创造天地。 
地是空虚混沌.渊面黑暗. BIOS运行在水面上。 
神说、要有mbr、就加载了mbr。 
神看mbr是好的、就用mbr加载了kernel。 
神称mbr为引导程序、称kernel为内核.有晚上、有早晨、这是头一日。



用课余时间重新拾起JOS,作为一个码农通过了解不同技术层面的机制对自己的技术水平提高非常大,而JOS作为一个MIT的开放课程,可让我们从一无所有构造一个自己的操作系统,这无疑是学习OS的一个非常好的方法。

然而不可否认,操作系统本身是非常复杂的,即使是一个简化过的、只有基本功能的OS,里面的代码也够我研究好久,所以我在学习之余写这么几篇博客,当作学习笔记。

我使用的是6.828版本。地址http://pdos.csail.mit.edu/6.828/2011/schedule.html

1、环境搭建

(1)建立一只ubuntu11.10虚拟机,刚做好的系统是裸系统并,没有装任何东西。

(2) 装git,vim,cscope,qemu,eclipse(本来想用vim+cscope看代码的,结果因为本人太低端,vim还是玩不转,所以又装了eclipse用来看代码)

 

2、start

首先让我们从lab1开始,lab1的目的也就是让我们熟悉一下os的启动过程,所以这篇笔记也就不拘泥于里面的excerise了而直接尝试去理解里面的代码。

先按lab1的pdf里的说明将jos的代码git下来:

git clone http://pdos.csail.mit.edu/6.828/2011/jos.git lab

然后拖到eclipse里,我们就可以阅读代码了。

通过讲义(或者是经验)我们知道,当计算机加电,首先会把bios加载进内存执行,然后bios从硬盘加载mbr,之后由mbr来加载操作系统或者grab之类的东西。

那么这个过程我们就会面临很多问题

(1)bios加载进了内存的什么地方?

直接上图不解释:

 

+------------------+  <- 0xFFFFFFFF (4GB)
|      32-bit      |
|  memory mapped   |
|     devices      |
|                  |
/\/\/\/\/\/\/\/\/\/\

/\/\/\/\/\/\/\/\/\/\
|                  |
|      Unused      |
|           
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值