内核编译 - 跨平台

时间:2013-04-16 00:41:15

标签: compiler-construction cross-platform kernel cross-compiling

关于编译内核的一点点澄清(不是我正在做的任何事情:P)。 我对编译的了解是它是特定于机器的,虽然您可以使用交叉编译器来编译您的工作以在不同的机器上运行(或编译为字节代码以在虚拟机下运行),但是交叉编译需要一些基础/要求运行您编译的程序(如C ++ / C库或Java VM ...)。

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

如果你有一些答案可以回答我的问题,我将非常感谢,也许让我开始学习更多关于内核的东西将会很棒:D

1 个答案:

答案 0 :(得分:0)

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