社区
Linux_Kernel
帖子详情
关于GDT和IDT地址的问题
seanhou21cn
2009-05-25 09:00:06
请问各位大虾,保护模式下在lgdt和lidt中所使用的gdt base 和 idt base 地址是线性地址还是物理地址。
谢谢,我很菜,请不要见笑。
...全文
183
6
打赏
收藏
关于GDT和IDT地址的问题
请问各位大虾,保护模式下在lgdt和lidt中所使用的gdt base 和 idt base 地址是线性地址还是物理地址。 谢谢,我很菜,请不要见笑。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
seanhou21cn
2009-05-29
打赏
举报
回复
对不起回复帖子的朋友,我是新人,所以没办法给你分。
seanhou21cn
2009-05-29
打赏
举报
回复
谢谢回复,这个地址是线性地址,我在别的地方查到了.在CR3中是物理地址,GDTR和LDTR存储的都是线性地址,根据CR3的物理地址计算得出物理地址。
goodluckyxl
2009-05-27
打赏
举报
回复
线性地址到物理还有一次运算啊
充电宝111
2009-05-26
打赏
举报
回复
都是线性地址那你怎么映射到物理地址上?
goodluckyxl
2009-05-25
打赏
举报
回复
我觉得应该不是物理地址
ldt和gdt都是段的描述表,
段的基地址是虚拟的4G线性空间中的一个地址,
用于表示在这个4G线性平坦空间下这个段起始位置。
既然只是在段在线性空间下的一个地址,还需要被转化成真正的物理地址
所以base add不是物理地址而是线性地址
充电宝111
2009-05-25
打赏
举报
回复
当然是物理内存
OS:简单的操作系统程序,如引导加载程序、HelloWorld 内核、操作系统计算器、设备 IO、VGA、
GDT
、
IDT
、游戏等
Global_Descriptor_Table 包含在 x86 NASM 程序集和 C 中设置
GDT
的代码。 Interrupt_Descriptor_Table 包含使用中断服务例程在 C 中设置
IDT
的代码。 GUI 包含 C 中的图形相关程序,用于绘制框、DOSBox GUI 等...
内核:PsSetXxxNotifyRoutine1
x64内核
GDT
、
IDT
等一项改为16字节fs寄存器改为gs寄存器SSDT的函数
地址
数组元素需要右移4位+数组首
地址
得API
地址
DSE驱动强制签名关闭驱动强制签
loader,我自己的操作系统使用的loader
我在这个程序里设置了内存分页,加载
GDT
,
IDT
,设置了
IDT
table,开启保护模式,设置了中断的入口程序
地址
,设置了中断的处理函数
地址
。我的思路是把中断的
IDT
table,中断的入口函数,中断的处理函数都硬写入了固定的...
Kinux内核:Kinux内核是用于32位和64位系统的内核
如果您在编译时发现任何代码
问题
或错误,只需使用文件名和错误创建一个
问题
。 发展历程 创建启动文件 创建文件系统 IPC 系统调用 图书馆 创建键盘驱动程序 创建IRQ 创建端口驱动程序 创建
GDT
创建
IDT
...
linux 内核
gdt
limit=2048, 256
GDT
entries 126: .word 0x7c00+
gdt
,0 !
gdt
base = 07xxx !全局描述符表寄存器(
GDT
R)为 48 位,前 16 位为全局 !描述符表限长度,后 32 位为全局描述符表基
地址
,其中限 !长度,为 2048,共...
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章