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

Kernel 现代计算机系统(x86体系结构)是否具有独立于操作系统的虚拟地址?,kernel,virtual-memory,page-tables,addressing,Kernel,Virtual Memory,Page Tables,Addressing,对不起,如果这个问题听起来有点混乱,但我觉得这个概念有点混乱 我想知道的是,如果我用C/Assembly为“裸”计算机硬件编写内核,我能使用虚拟地址吗?我一直在寻找内核的源代码,它似乎使用虚拟地址,但这怎么可能呢?页表不是由操作系统实现的吗 感谢您的帮助虚拟内存完全由操作系统实现。逻辑地址转换是实现虚拟内存的先决条件,在硬件上实现。逻辑寻址取决于维护页表的操作系统。“现代体系结构”有,但小型控制器(例如)没有。 如果您看一下Linux内核源代码,它有MMU和体系结构的实现 有专门设置页面表的代码

对不起,如果这个问题听起来有点混乱,但我觉得这个概念有点混乱

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


感谢您的帮助

虚拟内存完全由操作系统实现。逻辑地址转换是实现虚拟内存的先决条件,在硬件上实现。逻辑寻址取决于维护页表的操作系统。

“现代体系结构”有,但小型控制器(例如)没有。 如果您看一下Linux内核源代码,它有MMU和体系结构的实现


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

为386之后的任何处理器获取一本手册并进行阅读。他们有硬件分页。操作系统只是控制它