社区
Linux_Kernel
帖子详情
CR0的PE和PG置位后,linux源码中的逻辑地址、线性地址、物理地址问题
天行健__
2013-12-24 02:28:42
看了赵老师的linux内核源码注解一书。
有一些疑惑,请大家不吝赐教。
1、这是获取一页物理内存的代码,代码中计算了某个页面的物理地址,并使用edi寄存器对改页面的对应对的物理地址进行清0。这段代码应该是在CR0的PE和PG置位后运行的,既然开启了段页存储,内核怎么会还用物理地址进行寻址操作呢?不是要经过段页转换的吗?
2、这个是释放页目录所对应页表的操作,内核代码里面使用的是相对的逻辑地址,怎么可以直接用*号操作物理内存中的页表了?不是要经过段页转换的吗?
...全文
408
2
打赏
收藏
CR0的PE和PG置位后,linux源码中的逻辑地址、线性地址、物理地址问题
看了赵老师的linux内核源码注解一书。 有一些疑惑,请大家不吝赐教。 1、这是获取一页物理内存的代码,代码中计算了某个页面的物理地址,并使用edi寄存器对改页面的对应对的物理地址进行清0。这段代码应该是在CR0的PE和PG置位后运行的,既然开启了段页存储,内核怎么会还用物理地址进行寻址操作呢?不是要经过段页转换的吗? 2、这个是释放页目录所对应页表的操作,内核代码里面使用的是相对的逻辑地址,怎么可以直接用*号操作物理内存中的页表了?不是要经过段页转换的吗?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
天行健__
2013-12-26
打赏
举报
回复
太让我失望了,csdn果然没有高手,还是我自己苦思冥想,想到了怎么回事。 内核把自己的代码段和数据段设为了0,内核初始化的时候就在页目录表里放了四个页表,每个页表映射4M物理内存,共映射了16M物理内存,也就是说内核的页表已经覆盖了整个物理内存,内核线性地址空间等于物理地址空间。 所以代码里面用物理地址寻址其实就是线性地址,线性地址和物理地址一一映射,完全相等,寻址时cpu的mmu单元也进行了段页转换。
天行健__
2013-12-24
打赏
举报
回复
怎么没人回啊?是觉得问题不削一顾,还是csdn都我一般菜鸟?大侠们出来。
Linux
内核学习笔记之系统启动(三)
分段机制和分页机制,共同构成了保护模式下的
地址
映射机制,也为多任务操作系统以及程序部分加载的实现提供了支持。本节我们将探究分页机制的原理,并结合
源码
来研究在启动CPU分页机制前,操作系统都做哪些设置。 1.再练神功 九阴真经残卷(四)----分页机制 首先在开始讲解分页机制前,我们要明白三个
地址
的含义:
逻辑
地址
、
线性
地址
和
物理
地址
。程序运行的时候,所有的
地址
都是
逻辑
地址
,
保护模式-内存寻址
好久以前就想系统的学习一下
linux
源码
了,由于懒得一直没有执行,最近终于下定决定开始学习了。 首先从保护模式开始吧。 1、系统标志寄存器EFLAGS 系统标志寄存器EFLAGS控制这I/O,可屏蔽
中
断,调试,任务切换以及保护模式和多任务环境下虚拟8086程序的执行。其
中
系统标志:VM-虚拟8086模式,RF恢复标志;NT-嵌套标志;IOPL-I/O特权标志...
论文基于java 的公司财务管理系统.docx
公司财务管理系统(
源码
+数据库+论文+答辩ppt一整套齐全)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 本系统分为员工、管理员两个用户角色。 员工功能: 1. 注册登录:填写员工账号、密码、姓名、部门职位等信息完成注册,账号密码登录系统。 2. 请假管理:填写请假标题、原因、时间、类型提交请假申请,查看本人请假记录与审核回复。 3. 考勤查看:查看个人考勤信息,查看出勤、请假、迟到、早退、缺勤统计数据。 4. 薪资查询:查看每月薪资详情,查看底薪、绩效、奖金、扣款以及实发工资等信息。 5. 薪资异议申请:对薪资有疑问时提交薪资异议申请,查看申请审核状态与管理员回复。 6. 个人
中
心:修改个人头像、手机号等资料,修改登录密码。 管理员功能: 1. 员工管理:查询、新增、编辑、删除员工账号,维护员工部门、职位等基础信息。 2. 请假信息管理:查看全部员工请假申请,搜索筛选请假记录,审核请假申请并填写回复。 3. 考勤信息管理:录入、编辑、删除员工考勤数据,按年月统计员工出勤相关信息。 4. 薪资信息管理:录入员工每月薪资数据,维护底薪、绩效、奖金、扣款等薪资记录。 5. 薪资异议处理:查看员工提交的薪资异议申请,审核申请内容,填写处理回复。 6. 系统管理:维护首页轮播图,发布系统公告,查看系统操作日志。
【飞机能量-机动性(E-M)特性】飞机评估的最大转弯速度(即机动速度)、最大可持续转弯速度和最大可持续载荷系数对应的真空速度(Matlab代码实现)
内容概要:本文系统介绍了基于Matlab代码实现的飞机能量-机动性(E-M)特性分析方法,重点聚焦于评估飞机在不同飞行状态下的关键性能指标,包括最大转弯速度(即机动速度)、最大可持续转弯速度以及对应最大可持续载荷系数的真空速。通过构建精确的数学模型并开展仿真计算,深入剖析飞机在能量高度与过载限制下的机动包线边界,揭示其飞行性能极限。文
中
不仅阐述了理论推导过程,还提供了完整的Matlab仿真代码与结果可视化分析,具有较强的实践指导意义和工程应用价值。; 适合人群:航空航天工程领域的研究人员、飞行器设计与性能分析工程师、高等院校飞行器设计、飞行动力学等相关专业的研究生及高年级本科生,以及对飞行性能仿真与空战战术分析感兴趣的技术爱好者。; 使用场景及目标:①用于新研飞行器的初步性能评估与设计方案优化;②支撑飞行训练
中
安全飞行边界的确定与高过载机动操作指导;③辅助空战战术研究、任务剖面设计及飞行控制系统开发验证; 阅读建议:建议读者具备空气动力学、飞行力学及Matlab编程基础,结合文
中
提供的仿真代码进行实操演练,通过调整气动参数与飞行条件深入理解E-M图谱的生成机制及其在实际工程
中
的应用逻辑。
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章