memory - 限制内存访问
问题描述
如果软件代码具有使用直接地址位并命令 cpu 访问受限区域的指令,我们如何真正限制机器内存访问?
如果我们使用容器或虚拟或......,我们应该运行一个代码来检查原始代码的每条指令,看看它是否没有访问受限区域?
解决方案
权限管理通常需要 CPU 中的硬件支持。在软件仿真的情况下,仿真器需要确保执行适当的权限级别。
MMU是一个(除其他外)控制内存访问的组件。某些内存区域可以标记为可读、可写和可执行。MMU 将检查所有内存访问并在非法访问时导致某种故障。这可以防止 CPU 在任意内存位置读取/写入/执行。
许多 CPU 都在 CPU 本身中内置了特权分离。它将具有特权级别的概念(例如,x86 中的环,ARM 中的模式位)并检查正在运行的指令是否在当前特权级别内被允许。这可以防止在非特权模式下运行的代码执行特权指令。
托管容器或虚拟机主机软件的操作系统将需要确保正确实施适当的权限分离(适当地使用硬件功能)。
推荐阅读
- c++ - 如何使用“using”关键字来定义函数原型/签名
- python - 为什么python给了我额外的浮点数?
- treeview - 如何使用 Angular Tree 组件以编程方式将子节点添加到父节点的子节点
- javascript - 在云函数中的 exports.favoriteTrigger.functions.firestore.document.onCreate 中最喜欢的数据不可迭代
- python-3.x - 使用 Serverless-offline 插件时,任何 API 路由均无响应
- java - 金融应用程序开发中的 NodeJS 与 Java
- node.js - 如何使用配置在单个 package.json 行中运行多个命令
- asterisk - SIP 状态(响铃、忙碌、正在使用等)
- encryption - PKWARE 强加密算法
- python - 子字符串 SQL 查询变量