操作系统真相还原笔记(第二章)

1)为什么程序要载入内存?
CPU 的硬件电路被设计成只能运行处于内存中的程序,这是硬件基因的问题,这样做的原因,首先肯定是内存比较快,且容量大。
其次,操作系统可以存储在软盘上,也可以存储在硬盘上,甚至 U 盘,当然还有很多存储介质都可以。但由于各个硬件特性不同,操作系统要分别考虑每种硬件的特性才行。所以,都在内存中运行程序,操作系统和硬件设计都省事了,这可能也是为了方式的统一吧,否则总不能出现某种存储介质后,操作系统和硬件就要付出额外努力去支持。
2)什么叫载入内存?
(1 )程序被加载器(软件或硬件)加载到内存某个区域。
(2) CPU 的 CS: ip 寄存器被指向这个程序的起始地址。
3)实模式下的1M内存布局
在这里插入图片描述
地址。0x0~Ox9FFFF 处是 DRAM (Dynamic Random Access Memory ),即动态随机访问内存,我们所装的物理内存就是 DRAM,如 DDR、 DDR2 等 。
4)在 CPU 眼里,为什么我们插在主板上的物理内存不是它眼里“全部的内存”?
在计算机中,并不是只有咱们插在主板上的内存条需要通过地址总线访问,还有一些外设同样是需要通过地址总线来访问的,这类设备还很多呢。若把全部的地址总线都指向物理内存,那其他设备该如何访问呢?由于这个原因,只好在地址总线上提前预留出来一些地址空间给这些外设用,这片连续的地址给显存,这片连续的地址给硬盘控制器等.留够了以后,地址总线上其余的可用地址再指向 DRAM,也就是指插在主板上的内存条、我们眼中的物理内存。
在这里插入图片描述
物理内存多大都没用,主要是看地线总线的宽度。还要看地址总线的设计,是不是全部用于访问DRAM。所以说,地址总线是决定我们访问哪里、访问什么,以及访问范围的关键。我们平时用的机器一般是 32 位,上面的内存条并不是全部都用到了,按理说内存条大小超过 4GB 就没意义了,超过了地址总线的势力就是浪费。不过通过前面的介绍,即使内存条大小没有超过地址总线的范围,也不会全都能被访问到,毕竟要预留一些地址用来访问其他外设,所以最终还得看地址总线把地址指向哪块内存了 。 这就是安装了 4GB 内存,电脑中只显示 3.8GB 左右的原因。

5)Ubuntu下nasm的安装
sudo apt-get install nasm
6 ) MAR的制作
编写MBR的程序mbr.S.
nasm -o mbr.bin mbr.S
通过dd工具把生成的bin文件写入到之前建立的虚拟磁盘
dd if=/boch/mbr.bin of=/boch/hd60M.img bs=512 count=1 conv=notrunc
运行bochs -f bochsrc.disk
在这里插入图片描述

发布了24 篇原创文章 · 获赞 3 · 访问量 930

猜你喜欢

转载自blog.csdn.net/HIT_zhanmusi/article/details/102845031