打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
中断上下文为何不可访问用户空间地址


在保护模式下,中断是通过IDT来创造中断上下文的执行空间。至于说中断上下文不能访问用户空间地址,并不是因为权限不够(考虑到IDT中中断描述符项中的segment selector的RPL),而是因为中断上下文并不是一个完整的进程空间,所以就虚拟地址空间而言,中断上下文不具备完整的虚拟地址空间的页表项,所以理所当然地,不具有用户空间的虚拟地址页表目录。

但是从理论上讲,让中断上下文环境中做到访问用户空间是完全可行的。在中断发生时,将被中断进程的CR3加入到为中断上下文创立的堆栈中,这样中断上下文将具备完整的进程上下文中完备的虚拟地址空间页表。

但是似乎目前的操作系统并没有这样实现(至少Linux是这样),原因是这样做有意义吗?!中断的发生是完全随机的,在它发生的那一刻被中断的进程很可能是完全无辜的,也即和目前发生的中断毫无关系。如果将这种被无辜打扰的进程的某些上下文信息传递给中断,比脱了裤子放屁还恶心。所以这种想法想想是可以的,甚至无聊的时候,试着去改改内核相关的代码把这种进程某些信息传递给中断上下文,让它去试着访问下你的用户空间...
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
聊聊线程技术与线程实现模型
支撑百万并发的“零拷贝”技术,你了解吗?
从 Linux 内核访问用户空间内存
虚拟地址空间 (Windows Drivers)
linux 是如何进行内存分配的
解惑之所谓的最大2GB可用虚拟地址空间
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服