【发布时间】:2021-07-25 00:27:22
【问题描述】:
我目前正在研究操作系统中的虚拟内存,我有几个问题。
- 在 Linux 中交换分区或交换文件是否与虚拟内存相同?
- 如果是,那么如果我的 Linux 系统中没有启用交换,这是否意味着我的系统没有虚拟内存?
- 我还读到虚拟内存使系统更安全,因为使用虚拟内存,CPU 生成虚拟地址,然后由 MMU 将其转换为实际物理地址,从而保护系统,因为没有进程可以与实际物理内存进行实际交互。因此,如果我只在我的 Linux 系统上启用交换,我的 CPU 会开始生成虚拟地址,而目前它正在直接生成物理地址,因为我没有交换分区吗?
- CPU 如何知道虚拟内存是否存在?
【问题讨论】:
-
您首先需要阅读好的textbook on operating systems。然后你需要了解 Linux syscalls(2) 并阅读 Advanced Linux Programming。另请参阅 proc(5) 并提供一些 minimal reproducible example 以解决您在 StackOverflow 上的下一个问题
-
注意 Linux 是open source :您可以下载并研究其kernel 的源代码 并改进它。见kernelnewbies.org和linuxfromscratch.org和strace(1)、mmap(2)、credentials(7)
标签: linux operating-system virtual-memory