gpt4 book ai didi

具有自定义架构的 Linux VM

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:37 24 4
gpt4 key购买 nike

我正在考虑创建几个具有不同参数/架构的 VM(可能但不一定使用 QEMU)。

  • 不同的 sizeof(int)
  • 不同的字节序
  • 不同的对齐规则(例如 int 必须在 4 字节边界上对齐)
  • 等...

我熟悉构建自己的内核、gcc、glibc 等,但我不完全确定究竟是什么决定了这些参数(假设它以某种方式与 CPU 相关)。在我的例子中,性能无关紧要,目的只是为了测试不同环境下的构建(主要是网络相关)。

这可能吗?有人能把我推向正确的方向吗?我很乐意阅读文档,但我不确定从哪里开始。

最佳答案

I'm familiar with building my own kernel, gcc, glibc etc but I'm not entirely sure what actually decides those parameters (assuming it is related to the CPU somehow).

如果“那些参数”是指项目符号列表中的项目,是的,它们由 CPU 的指令集架构决定。在几乎所有运行 Linux 的设备上,sizeof(int) 都将为 4,即 32 位,即使在 64 位机器上也是如此,但是 sizeof(long)sizeof({something} *) 在 32 位机器上为 4,在 64 位机器上为 8。所以:

  • sizeof(long)/sizeof({pointer type}): 4 on 32-bit x86/32-bit PowerPC/32-bit SPARC/etc., 8 在 64 位 x86(x86-64)/64 位 PowerPC/64 位 SPARC/等上。
  • endianness:x86、ARM 和其他一些系统上的小端模式,PowerPC、SPARC 和其他一些系统上的大端模式(我认为 Linux 可能在某些双端架构上同时支持小端模式和大端模式)
  • 对齐规则:x86 不要求对齐,但一些处理器可能运行得更快,对齐更好,我认为 PowerPC 并不完全需要它,尽管它可能有问题跨页边界的操作数未对齐 - SPARC 是我所知道的一种架构,需要严格对齐。

所以我猜测主机可能是 x86 的某种风格,因此可能不需要模拟它。

从 QEMU 2.3.0 版本的源代码来看,QEMU 似乎可以模拟 32 位和 64 位 SPARC;如果可以的话,我建议使用 SPARC 虚拟机来解决字节顺序和对齐问题。如果可能,您应该同时拥有 32 位和 64 位 x86 和 SPARC。

在那之后,我会看看 ARM(从源代码来看,好像 64 位 ARM 正在开发中,如果还没有的话),然后是 PowerPC(32 位和 64 位;我是但是,不确定它们是否模拟任何 64 位平台)和 MIPS(32 位和 64 位,以及两种字节顺序,如果可能的话)。

在那之后,如果您真的有雄心壮志,您可以设置一个 Linux 机器来模拟像 this one 这样的机器的后代。 ; QEMU 似乎支持 S/390 和/或 z/Architecture,或者您可以使用 Hercules .您还可以尝试一些支持 Linux 的附加嵌入式架构。

关于具有自定义架构的 Linux VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30687408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com