逻辑地址到线性地址: 逻辑地址 = 段标识符(或者叫段选择符)16位 + 偏移量 32位 段标识符 = index + tl + rpl 其中,cpu中的段寄存器只保存段标识符,根据其中的tl 确定段描述符在GDT还是LDT中,从不同的寄存器获取线性基地址,再加上index*8就得到了段描述符的地址 ...
分类:
其他好文 时间:
2017-10-16 18:07:47
阅读次数:
139
操作系统引导探究 Version 0.02修改记录: 对与GDT有关的段描述符方面的描述进行了修订,更正了上一个版本中出现的一些错误,增加了一些描述,使其更完善。 与上个版本中不同的地方均用红色标记。 前言 本篇文章并不旨在完整的讨论一个多引导系统程序怎样去引导不同的操作系统,而只打算从编写操作系统 ...
分类:
其他好文 时间:
2017-08-26 10:17:28
阅读次数:
116
问题:段描述符中的字段含义? 段首地址的线性地址/偏移/粒度/特权限制等信息。 1,快速访问段描述符 在加载段选择符时,相应的段描述符被自动由内存装入对应的非编程CPU寄存器。装入后就不再访问主存中的GDT或LDT。 2,段选择符的字段 index:指定了放在GDT或LDT中相应段描述符的入口 TI ...
分类:
系统相关 时间:
2017-08-25 01:12:26
阅读次数:
183
全局符号与弱符号之间的区别主要有两点: (1). 当链接编辑器组合若干可重定位的目标文件时,不允许对同名的 STB_GLOBAL 符号(全局变量)给出多个定义。 另一方面如果一个已定义的全局符号已经存在,出现一个同名的弱符号并不会产生错误(强弱附后存在,取强)。链接编辑器尽关心全局符号,忽略弱符号。 ...
分类:
其他好文 时间:
2017-08-22 01:46:13
阅读次数:
344
参考文章:Intel64 and IA32 Architectures Software Developer's Manual Volume 2 ~ 3 GDT(Global Descriptor Table,全局描述符表)是x86和amd64架构最最基本的数据结构,它存储在内存中,以GDTR记录基 ...
分类:
其他好文 时间:
2017-08-20 10:24:49
阅读次数:
175
/etc/fstab文件的格式GDT,超级块,Indode,校验码inode表,inode组成,地址指针结构创建文件:位图索引查找文件:目录硬链接,软链接删除文件,复制文件,移动文件开机后,首先挂载的是根,然后手动通过根中的mount命令,关联其他分区至根自动挂载的实现1)定义在/etc/fstab文件..
分类:
系统相关 时间:
2017-08-10 18:05:34
阅读次数:
329
在分析linux中的set_base之前,我们定义 ;eax is TSS0 offset address ;ebx is kernel_base address 0x10000 ;ecx is gdt_address ;edi is TSS0_SEL 0x20 set_base: addl %eb ...
分类:
系统相关 时间:
2017-05-31 14:22:57
阅读次数:
266
1、logical address = segment identifier (16bits) + offset (32bits) segment selector其实就是GDT或者LDT的索引,其中的TI字段用来确定是选择GDT还是IDT 2、segment identifier is calle ...
分类:
系统相关 时间:
2017-01-19 14:05:10
阅读次数:
195
保护模式寻址入门,了解保护模式分段机制,全局描述符GDT与局部描述符LDT的区别,分析描述符的结构、类型。 ...
分类:
其他好文 时间:
2016-12-30 17:20:52
阅读次数:
282
harib12a: 这一部分我们来尝试两个任务的切换。下面我们一步一步的看: 1、定义TSS任务状态段(task statuc segment);定义的一种段,需要在GDT中定义使用 2、尝试两个任务的切换。A和B 3、TR(task register)寄存器:让CPU记住当前运行哪一个任务(GDT ...
分类:
其他好文 时间:
2016-08-28 09:53:23
阅读次数:
208