忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 446 | 回复: 4

[内核入门] 保护模式下切换段? [复制链接]

论坛徽章:
9
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:12
发表于 2017-07-15 10:22 |显示全部楼层
假设一个保护模式的程序,选择段式映射进行内存管理,它有2份数据分别用段1、段2保存,再假设0x100、0x200分别在段1、段2中。那么如果当前指令正在访问0x100这个地址,下条指令要访问0x200这个地址,内核如何知道要修改DS寄存器,让它指向段2的描述符?

就是说,页式映射中,根据虚拟地址就可以知道它对应的目录索引、页表索引,但段式映射中,段描述符表索引在段寄存器中,难道访问0x200之前,要嵌入一段汇编代码,将DS段寄存器,改为段2描述符对应的选择子吗,那么动态分配时又该怎么办呢?

论坛徽章:
9
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:12
发表于 2017-07-15 14:00 |显示全部楼层
回复 1# _nosay

就是说,页式映射中,目录表、页表设置好后,程序只要给个虚拟地址就能得到物理地址了,而段式映射中,设置好段描述符,程序中要用段寄存器+32位偏移,才能得到物理地址,但C语言没有设置段寄存器的语言成分,我想请问大牛们的是,假设还没有出现页式内存管理的时候,那时候的C程序是怎么写的?

论坛徽章:
9
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:12
发表于 2017-07-15 14:02 |显示全部楼层
回复 2# _nosay

用汇编封装一个设置寄存器的函数吗?

论坛徽章:
18
程序设计版块每日发帖之星
日期:2015-08-17 06:20:0015-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:56黑曼巴
日期:2016-12-26 16:00:32每日论坛发贴之星
日期:2016-07-18 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:51程序设计版块每日发帖之星
日期:2016-06-03 06:20:00程序设计版块每日发帖之星
日期:2016-06-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-30 06:20:00
发表于 2017-07-21 18:11 |显示全部楼层
c的内存模型估计处理不了分段的情况吧,估计还是得靠汇编。

不过也未必,比如现在TLS使用fs/gs,可以看看pthread是怎么做到的

论坛徽章:
9
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:12
发表于 2017-07-22 07:51 |显示全部楼层
回复 4# nswcfd

ok,豪滴豪滴
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP