前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >windows内核系统结构

windows内核系统结构

作者头像
sofu456
发布2021-12-06 14:24:04
3830
发布2021-12-06 14:24:04
举报
文章被收录于专栏:sofu456sofu456

CPU中断

  • 中断号,地址
  • 中断向量,中断号+中断服务
  • 中断服务,执行函数

中断只有使用汇编调用,所以很多C++代码里面会有汇编调用中断

IDT表

cpu通过IDT,找到ISR(中断服务)

windbg的!idt可以查看IDT表

GDT全局描述表

windows分为实模式(内核)和保护模式

  • 实模式,Segment+Offset的方式访问,Segment16位(向后兼容,cpu位数增加寄存器位数增加,16位段寄存器数据被写入内存,所以增加了GDT描述段地址、段属性、段界限),每个段地址指向64k(16位cpu)大小,段地址因为左移4位所以地位大都是0,Offset是相对于Segment偏移
  • 保护模式,内存的管理模式分为两种,分段模式(段+偏移)和分页模式

分段内存段间的内存空间太大(16位64k),碎片太多,段+偏移转换为线性地址后,通过分页管理,映射到新的地址空间,页目录+页表+页内偏移(12位4k),减小内存间隙的大小

地址通过三次转换: 逻辑地址(段+偏移)>> 线性地址(分页)>> 物理地址

内核内存管理参考:https://blog.csdn.net/u013928208/article/details/115580324?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162701749516780271539308%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162701749516780271539308&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-12-115580324.pc_search_result_control_group&utm_term=idt+gdt+ldt++%E5%88%86%E9%A1%B5&spm=1018.2226.3001.4187

LDT局部描述表

任务切换,系统当前的局部描述符表LDT也随之切换,LDT实现了任务间的隔离,GDT可以存放任务共享的段

SSDT表

内核到应用层的函数映射

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CPU中断
  • IDT表
  • GDT全局描述表
  • LDT局部描述表
  • SSDT表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档