【问题标题】:How to modify the user space and kernel space in xv6?xv6中如何修改用户空间和内核空间?
【发布时间】:2017-11-06 22:33:04
【问题描述】:

XV6 有 2 GB 的用户空间和 2 GB 的内核空间。如果我想将其更改为 3 GB 的用户空间和 1 GB 的内核空间。我应该如何实施这种修改? 我尝试在 memlayout.h 中修改 KERNBASE + PHYSTOP,然后在链接描述文件 kernel.ld 中修改起始地址。但是失败了。

【问题讨论】:

  • 您不必触摸PHYSTOP 来执行此操作,只需使用KERNBASE... 对于新的起始地址,您是否使用了new KERNBASE + 0x100000kernel.ld 中的评论指出值“[m]必须等于 KERNLINK”。

标签: operating-system xv6


【解决方案1】:

你的方法没有错。你在使用 QEMU 运行 xv6 吗?如果是这样,请修改 Makefile 并将内存增加到 4GB 或更多。 在文件的第 215 行附近使用 -m 选项设置内存的地方。默认为 512 GB。

QEMUOPTS = -drive file=fs.img,index=1,media=disk,format=raw -drive file=xv6.img,index=0,media=disk,format=raw -smp $(CPUS) -m 512 $(QEMUEXTRA)

然后修改memlayout.h和kernel.ld文件。 可能它应该工作。如果 xv6 不起作用,请告诉我失败的部分。请同时显示修改后的 memlayout.h 和 kernel.ld 文件。

【讨论】:

  • 无需更改提供给 QEMU 的值。 OP 的问题是关于虚拟内存而不是物理内存。更改 QEMU -m 标志会更改 xV6 可用的“物理”内存(因为它在 QEMU 模拟的计算机中运行)。此外,-m 512 指定 512 MB,而不是 512 GB(请参阅man qemu)。
猜你喜欢
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多