1. 计算机怎么启动操作系统
启动电脑时可以通过bios来设定是通过U盘启动还是通过硬盘启动。
对硬盘来说,硬盘的第一个扇区是0面0道1扇区,这个扇区称为主引导扇区。如果计算机设置了从硬盘启动,那么ROM-BIOS将读取硬盘主引导扇区的内容,将它加载到内存地址0x0000:0x7c00处(也就是物理地址0x07c00),然后jmp到那里接着执行。
通常主引导扇区的功能是继续从硬盘的其他部分读取更多的内容加以执行。
2. 实模式和保护模式
实模式被特殊定义为20位地址内存可访问空间,这意味着它的容量是1M可访问内存空间(物理内存和BOIS-ROM),软件可以通过这些地址直接访问BOIS和外围硬件。实模式下没有硬件级别的内存保护概念和多道任务的工作模式。
286处理器体系引入了地址保护模式的概念,处理器能够对内存及一些其他外围设备做硬件级的保护设置(保护设置实质上就是屏蔽一些地址的访问)。现在的x86机器上电启动时都是工作在实模式下。
在实模式中内存被划分成段,每个段的大小为64K(寄存器是16位的),而这样的段地址可以用16位来表示。内存段的处理是通过和段寄存器相关联的内部机制。这些段寄存器(CS/DS/SS和ES)的内容形成了物理地址的一部分。具体来说,最终的物理地址是由16位的段地址和16位的段内偏移组成的:物理地址(20位) =段值*16 + 偏移。
因为段寄存器是16位的,在段不重叠的情况下,最多可以将1MB的内存分为65536个段,段地址分别是0x0000~0xFFFF。将段地址左移4位,变为0x????0。再加上偏移地址,就形成了20位物理地址。
在保护模式下,段是通过一系列被称之为“描述符表”的表所定义的。段寄存器存储的是指向这些表的指针。用于定义内存段的表有2种:全局描述符表GDT和局部描述符表LDT。
3. 分页机制
分页机制增强了分段机制的性能。页地址变换是建立在段变换基础之上的。因为,段管理机制对于Intel处理器来说是最基本的,任何时候都无法关闭。所以即使启用了页管理功能,分段机制依然是起作用的,段部件也依然工作。
内存分页管理的基本原理是将整个内存区域分成4096(4K)作为一页。
一级页表PDE:也就是页目录表(4K),含1K个表项,每个4B(32b)。
二级页表PTE:大小4K,含有1K个表项,每项4B。
页表总共1K*1K = 1M个表项,1M * 4K = 4G。