operating-system - 为什么加载程序将 xv6 内核加载到物理地址 0x80000000 的内存中?
问题描述
我在 MIT6.828 中读过这个:
加载程序将 xv6 内核加载到物理地址 0x80000000 的内存中。将内核放置在 0x80000000 而不是 0x0 的原因是因为地址范围 0x0:0x80000000 包含 I/O 设备。
但是 I/O 设备如何占用这些地址?例如,单个设备将占用什么范围?(假设 0x0:0x00000040 用于一个设备,因为在 64 位机器上,一个设备占用一个字节?)
解决方案
推荐阅读
- python - 用户输入验证不会坚持
- regex - sed 中的正则表达式仅从每行中删除第一次出现
- excel - 找不到 div 类时出现“内存不足”错误
- php - 添加新列时如何更新 SQL 查询
- mysql - 此查询不在我的 macbook 上运行,但在 linux 上运行。是什么原因
- c++ - 模板化运算符重载中的成员函数不起作用
- c# - 这个单元测试在练习时如何通过?
- arrays - 如何使用 MongoDB 在数组中的对象中更新数组中的对象中的文档?
- c# - 通过 MVVM 动态过滤绑定到 SelectedItem 的 CollectionViewSource
- java - 上下文初始化期间遇到异常 - 取消刷新尝试:UnsatisfiedDependencyException