1. 什么是实模式,什么是保护模式
实模式就是用基地址+偏移量就可以拿到物理地址的模式
保护模式就是不能直接拿到物理地址的模式
2. 什么是选择子
- 选择子共16位,放在段选择寄存器里
- 低2位表示请求特权级
- 第三位表示选择GDT方式还是LDT方式
- 高13位标识在描述符表中的偏移
3. 什么是描述符
保护模式下引入描述符来描述各种数据段,所有描述符均为8个子节(0-7),由第5个子节说明描述符的类型。类型不同,描述符的结构也有所不同。
4. 什么是GDT,什么是LDT
GDT
全局描述符表,是全局唯一的。存放一些公用的描述符和包含各进程局部描述符表首地址的描述符
LDT
局部描述符表,每个进程可以有一个。存放本进程使用的描述符。
5. 请分别说明GDTR和LDTR的结构
GDTR
48位寄存器,高32位放置GDT首地址,低16位放置GDT限长(限长决定了可寻址的大小,注意低16位放的不是选择子)
LDTR
16位寄存器,放置一个特殊的选择子,用于查找当前进程的LDT首地址
6. 请说明GDT直接查找物理地址的具体步骤
- 给出段选择子+偏移量
- 若选择了GDT方式,则从GDTR获取GDT首地址,用段选择子中的13位做偏移,拿到GDT中的描述符
- 如果合法且有权限,用描述符中的段首地址加上(1)中的偏移量找到物理地址。
7. 请说明通过LDT查找物理地址的具体步骤
- 给出段选择子+偏移量
- 若选择了LDT方式,则从GDTR获取GDT首地址,用LDTR中的偏移量做偏移,拿到GDT中的描述符1
- 从描述符1中获取LDT首地址,用段选择子中的13位做偏移,拿到LDT中的描述符2
- 如果合法且有权限,用描述符2中的段首地址加上(1)中的偏移量找到物理地址。
8. 根目录区大小一定么?扇区号是多少?为什么?
不一定,1+9+9=19(fat12),因为长文件名需要追加LFN项
9. 数据区的第一个簇号是多少?为什么?
2号。因为FAT表前三个字节为0xf0, 0xff, 0xff,一个簇用12位表示,所以前三个固定字节占去了2个簇号,因此数据区的第一个簇号是2号。
10. FAT表的作用
FAT文件分配表被划分为紧密排列的若干个表项,每个表项都与数据区中的一个簇相对应,而且表项的序号也是与簇号一一对应的。
11. 解释静态链接的过程
静态链接是指在编译阶段直接把静态库加入到可执行文件中去,这样可执行文件会比较大。
- 空间与地址分配
- 符号解析和重定位
12. 解释动态链接的过程
动态链接是指链接阶段仅仅只加入一些描述信息,而程序执行时再从系统中把相应动态库加载到内存中去。