只是关于编译内核的一点说明(不是我在做任何:P)。 我对编译的了解是它特定于机器,尽管您可以使用交叉编译器将工作编译为在不同计算机上运行(或编译为字节码以在虚拟机下运行),但是交叉编译需要一些基础知识/要求是运行您编译的程序所必需的(例如C ++ / C libs或Java VM ...)。

但是内核呢? 他们一次编译它们并神奇地在每台*机器上运行(*没有检查),我在网上搜索了一些指南,介绍了如何交叉编译内核,但没有说明为什么或如何工作! 具有不同指令集的不同CPU如何成功运行相同的二进制文件?

如果您有其他疑问来回答我的问题,我将非常感谢,也许让我开始学习更多有关内核的知识将是很棒的:D

===============>>#1 票数:0 已采纳

他们没有。 例如,为ARM v6编译的内核无法在任何其他类型的CPU上运行。 每个二进制文件都是一样的,内核不是魔术。 交叉编译仅表示生成的二进制文件特定于与编译器所运行的体系结构不同的体系结构。 例如,在我的x86桌面上,我可以编译将在x86上运行的二进制文件,或者可以交叉编译将在例如PowerPC上运行的二进制文件。 但是它们都不能在对方的目标平台上运行。

  ask by SomeKidding Guy translate from so

未解决问题?本站智能推荐: