首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >现代计算机系统(x86体系结构)是否具有独立于操作系统的虚拟地址?

现代计算机系统(x86体系结构)是否具有独立于操作系统的虚拟地址?
EN

Stack Overflow用户
提问于 2019-06-30 04:34:35
回答 2查看 38关注 0票数 1

抱歉,如果这个问题听起来有点混乱或混乱,但我对这个概念感到相当困惑。

我想知道的是,如果我用C/ Assembly为“裸”计算机硬件写一个内核,我能使用虚拟地址吗?我一直在研究内核的源代码,它似乎使用了虚拟地址,但这是怎么可能的呢?页表不是由操作系统实现的吗?

谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-01 10:55:51

“现代架构”有MMU,但Arduino等小型控制器没有。如果你查看Linux内核源代码,你会发现它同时实现了MMU和no-MMU架构。

有一些代码可以专门设置页表,并解决由于交换区域中的页面而导致的页面错误。这段代码可能不会被换出,而且IIRC Linux无论如何也不会把自己换出,因此它自己的内存始终保留在页表中,从而允许内核空间也在虚拟内存中运行。

票数 2
EN

Stack Overflow用户

发布于 2019-06-30 05:53:44

虚拟内存完全由操作系统实现。逻辑地址转换是实现虚拟内存的前提条件,它是硬实现的。逻辑寻址依赖于维护页表的操作系统。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56820718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档