磁盘结构:

来源:互联网 发布:清华学霸 知乎 编辑:程序博客网 时间:2024/05/17 08:40

 

 

http://blog.sina.com.cn/u/1946468044

 

磁盘结构:

 

#磁盘结构的数据结构大致可分为5部分:

1. MBR区、2.DBR区、FAT区、DIR区和DATA

MBR

即主引导记录,位于整个硬盘的0柱面而0磁道1扇区,共占用了63个扇区

但实际只使用了1个扇区(512字节)

 

#MBR使用的一个扇区内容分析

第一部分:引导代码,占用了446个字节;

第二部分:分区表,占用了64个字节;

第三部分:55 

 

在数据恢复中主要就是恢复第二部分:

分区表也是重点

 

wps_clip_image-21501

wps_clip_image-22327

wps_clip_image-10360

wps_clip_image-27546

 

 

MBR程序段的主要功能如下: ·

检查硬盘分区表是否完好。 ·

分区表中寻找可引导的“活动分区。 ·

将活动分区的第一逻辑扇区内容装入内存。在DOS分区中,此扇区内容称为DOS引导记录(DBR)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

80X86处理器的互作模式

==========================================

#80386以后的处理器有3种互作模式:

1.实模式:dos

2.保护模式:内核

3.虚拟8086模式:应用软件

============================================

#其实,实模式和虚拟8086模式是为了向下兼容而设置的。而保护模式是我们的主角,

是我们现代系统实际上的互作模式。

============================================

#只有在保护模式下,32 bit cpu 的寻址才能达到4G的地址空间,同时,也能实现多任务、

内存分页管理和优先级保护模式等先进的机制。

============================================

#Windows 7 的启动过程

 

1.开启电源

--计算机系统将进行加电检(POST)(硬盘、显卡等等的设备进行自检)。如果通过,

之后BIOS会读取主引导记录(MBR,)--被标记为启动设备的硬盘的首扇区,并传送被

windows 7 建立的控制编码给MBR

注;

硬盘的0磁道的第一个扇区称为MBR,他的大小事521字节,而这个区域可以

分为两个部分。第一部分为pre-boot区(预启动区),占446字节。

第二部分是partition tables 区(分区表)占66个字节(64个字节是表示64/16=4个主分区,后连个字节表示),该区相当于一个小程序,作用是

判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行区中的代码。

2.启动菜单生成

--windows启动管理器读取“启动配置数据存储(Boot Configure Data store)”中的信息。此信息包括已被按装在计算机的所有操作

系统的配置信息。并且用以生成启动菜单。

当你在启动菜单中选择下列动作时:

--如果你选择的是windows 7 windows启动管理器(windows Boot manager)运行

%SystemRoot%\System32文件夹中的OS loader---Windows.exe

--如果你选择的是自休眠状态恢复windows 7 ,那么启动管理器将装载Winresume.exe 并恢复你先前的使用环境

3.核心文件加载及其登陆

--Windows 7 启动时,加载其核心文件

Ntoskrnl.exe hal.dll ---从注册表中读取设置并加载驱动程序。

---接下来将运行windows启动程序(Winit.exe ,本地安全验证

Lsass.exe)与服务(services.exe)进程,完成后,你就可以登录你的系统了

--如果你在启动菜单中选择的是早期得到windows版本,启动管理器将定位系统安装所在的卷,并且加载Windows Nt

风格的早期OS loaderNtldr.exe---生成一个由boot.ini内容决定的启动菜单

========================================================================

 

 

MBR

MBR:全称为Master Boot Record,即硬盘的主引导记录(位于硬盘的第一个扇区,就是硬盘首先被读取的地方)

为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标识),

也就是上面所说的主引导记录;而狭义的MBR仅指引导程序而言。

硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。

它由三个部分组成,主引导程序、硬盘分区表DPTDisk Partition table)和硬盘有效标志(55AA)。

在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),

DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA

注意:

MBR是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它,但可以通过命令来修改和重写,

如在minix3里面,可以用命令:installboot -m /dev/c0d0 /usr/mdec/masterboot来把masterboot这个小程序写到

mbr里面,masterboot通常用汇编语言来编写。我们也可以用ROM-BIOS中提供的INT13H2号功能来读出该扇区的内容,

也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。

==========================================================

 

#实模式

处理器被复位或者加电的时候以实模式启动。

这时候处理器中各寄存器以实模式的初始化值互作

 

80386处理器在实模式下的存储器寻址方式和8086是一样的,由段寄存器的内容乘以16

当做基地址,加上段内的偏移地址形成最终的物理地址,这时候他的32位地址线只是用了低20

 

在实模式下,80386处理器不能对内存进行分页管理,所以指令寻址的地址就是内存中实际

的物理地址,在实模式下,所有的段都是可以读、写和执行的。

实模式下80386不支持优选级,所有的指令相当于互作在特权级(优先级0),所以他可以执行所以特权指令,

包括读写控制寄存器CR0等。

实际上,80386就是通过在实模式下初始化控制寄存器。GDTRLDTRIDTRTR等管理器以及

页表,然后再通过加载CR0使其中的保护模式使能位置位而进入保护模式的。当然,实模式

下不支持硬件上的多任务切换

 

实模式下的中断处理方式和8086处理器相同,也用中断向量表示定位中断服务程序地址

 

中断向量表的结构也是和8086处理器一样:每4个字节组成一个中断向量,其中包括两个字节的段地址和两个字节的偏移地址

 

 

从编程的角度看,除了可以访问80386新增的一些寄存器外,实模式的80386处理器和8086有设么进步呢?

 

其实最大的好处是可以使用80386的位寄存器,用32位的寄存器进行编程可以使计算机程序

更加简捷,加快了执行速度。

--比如:在8086时代用16位寄存器来完成32位的乘法和除法时,要进行的步骤是在是太多了,现在用32位寄存器一条指令就完成

 

===================================================================================

#保护模式

80386工作在保护模式下的时候,他的所有功能都是可用的,这是80386所有32根地址线都可供寻址,物理寻址空间高达4GB

 

在保护模式下,支持内存分页机制,提供了对虚拟内存的良好支持。虽然与8086可寻址的1MB物理地址空间相比,80386

可寻址的物理地址空间可谓很大,但是实际的微机系统不可能安装如此大的物理内存。所以,为了运行大型程序和真正实现多任务,

虚拟内存是一种必须的技术。

在保护模式下80386支持多任务,可以依靠硬件仅在一条指令中实现多任务的切换。任务环境的保护互作是用处理器自动完成的

在保护模式下,80386处理器还支持优先级机制,不同的程序可以运行在不同的优先级上

 

配合良好的检测机制后,既可以在任务间实现数据的安全共享也可以很好地隔离各个任务。从实模式切换到保护模式是

通过修改控制寄存器CR0的控制位PE(位0)来实现的。在这之前好需要建立GDT和中断描述符表IDT

 

DOS操作系统是运行在实模式下,而Windows操作系统运行于保护模式下。

 

虽然实模式兼容以前的系统,但是摄像一下,如果windows或者80386处理器推出的时候宣布不能运行以前的MS-DOS程序,那么

就等于放弃了一个巨大的软件库,Windows以及80386处理器可能就会落得和苹果机一样的下场,

这是MicrosoftIntel都不愿意看到的

 

由于这这种特殊需求的普遍性,虚拟8086应运而生!

虚拟8086模式是以任务形式在保护模式上执行的,在80386上可以同时支持有多个真正的80386任务和虚拟86模式构成的任务。

在虚拟86模式下,80386支持任务切换和内存分页。

windows操作系统中,有一部分程序专门用来管理虚拟86模式的任务,称为虚拟86管理程序。

既然虚拟86模式以保护模式位基础,他的互作方式实际上是实模式和保护模式的混合

为了和8086程序的寻址兼容,虚拟86模式采用和8086一样的寻址方式,即用段寄存器乘以16当做基址再配合偏移地址形成线性地址,

寻址空间为1MB

但显然多个虚拟86任务不能同时使用同一位置的1MB地址空间,否则会引起冲突。操作系统利用分页机制

将不同虚拟86任务的地址空间映射到不同的物理地址上去,这样每个虚拟86任务看起来都认为

自己在使用0-1MB的地址空间

 

============================================================================

#Windows 的内存管理机制

--Dos 操作系统的内存安排情况

--80386的内存寻址机制

--80386的内存分页机制

--Windows 的内存安排

 

 

wps_clip_image-26227

 

wps_clip_image-11865

wps_clip_image-24005

 

wps_clip_image-26845

wps_clip_image-12142

wps_clip_image-18521

wps_clip_image-2862

wps_clip_image-24480

 

wps_clip_image-31339

 

wps_clip_image-21713

wps_clip_image-11194

wps_clip_image-349

wps_clip_image-2893#Windows的特权保护模式

---80386的中断和异常

---80386的保护机制

---Windows的保护模式

 

 

#80386的内存分页机制

 

 

wps_clip_image-16169

 

wps_clip_image-6146

wps_clip_image-13279

wps_clip_image-8702

wps_clip_image-13228

wps_clip_image-18157

 

原创粉丝点击