写在前面的话:
做这个实验主要是为了对操作系统有一个更具体的了解,并且在这个过程中巩固一下自己的基础知识。
实验需要:
虚拟机 Ubuntu系统 材料网址为:https://pdos.csail.mit.edu/6.828/2016
虚拟机我用的是Oracle VM virtualBox
part1的主要目的是介绍x86和PC bootstrap还有就是调试
这里把材料git clone以后 进入到Lab这个目录下需要make编译,大概需要40分钟左右。
成功以后 make qemu 如果出现
就说明之前的编译成功了,就可以开始做实验了。
物理地址:
在最开始的16位英特尔8088处理器的计算机中,只有1MB的物理空间,1MB以上的部分都没有,计算机只能用LOW MEMORY那一块地址(RAM)
VGA DIAPLAY内存部分给一些硬件用,像是显示屏这类的。
16-bit devices 这块也是给一些设备用。
bios rom这块内存负责机器的一些基础设备的初始化,比如显卡啊内存的初始化等。这一块还有接下去要讲的一个最重要的一个功能就是把操作系统的代码从外存中(像磁盘啊软盘都叫外存)读到内存中
The ROM BIOS
这部分讲的是在计算机按下电源键的时候究竟发生了什么。
还没有进行调试时,第一句的物理地址是f000:fff0,这块物理地址的计算方法是早期计算机16位数据线和20位地址线之间的历史原因,有需要的同学可以自行百度一下。算的方法是f0000+fff0,则物理地址应该是ffff0,也就是按下电源键的一瞬间,跳转到了ffff0这个地址上。
根据前面的物理地址的分布图可以发现,这个物理地址是在BIOS ROM区域中的。
至于为什么会直接跳转到这个位置,这是由硬件控制的。至于为什么要跳转到这个位置,查阅了一些资料意思就是大家的一个标准,硬件都按这个标准来做,才能适用于所有不同的计算机。开机都直接能到这个位置然后在这个位置“烧制”接下来计算机开机需要的代码。
这行代码跳转到了fe05b这个位置,还在BIOS区域内。继续执行就是一些硬件初始化。
到这里第一部分就完成了
新闻热点
疑难解答