linux - 内核如何管理虚拟内存
问题描述
我只是想知道内核实际上是如何拒绝进程访问另一个内存区域的,例如,如果IP寄存器设置为0x41414141
不是直接 cpu 指令,内核如何拒绝 cpu 访问物理内存中的该地址
另一个问题:
在调试应用程序时,我们看到的地址以及 libc 和共享库地址都在虚拟内存中,那么 cpu 如何访问不存在的内存?或者实际上内核如何在运行时告诉 cpu 该区域在物理内存中的位置
还有另一个问题,在 x86_32 arch syscalls issues by int 0x80 内核如何为自己保留一个软件中断号是如何发生的
解决方案
推荐阅读
- ios - iOS如何明确请求蓝牙后台操作模式的权限?(CBPeripheralManagerAuthorizationStatus)
- acumatica - Acumatica REST API 未设置自定义字段值
- javascript - 带有圆形边框动画的倒数计时器在页面刷新时保留值
- ansible - 在 Ansible 任务中访问其他组/主机 ip
- azure - 没有 Cosmos DB 图形数据库模拟器
- css - 如何在重复时使用 css 变换属性制作动画
- android - ListView 更新单项
- java - 我需要在 Singleton 类中同步每个方法吗?
- android - 使用意图打开浏览器并将其保持在前台
- dart - 如何在 Flutter 中定义离散动画?