Linux 如何能在不同的微处理器上运行?Linux 内核每次安装时都要编译吗?
答案1
每个编译/安装的内核映像都是为一个特定的微处理器(或通常是微处理器系列)构建的。
源代码部分独立于硬件(= 许多驱动程序、调度程序等),部分特定于平台(= 与硬件的低级交互等),但生成的二进制文件是总是特定于一种架构。
答案2
Linux 内核,作为每个编译的程序,平台相关。
内核黑客是非常熟练的编码员,因此内核代码的很大一部分是以平台感知的方式编写的(例如通过使用 ho 预处理器宏),剩余部分必须依赖于架构,要么是出于性能问题,要么是因为它受限于其他架构上不存在的某些硬件特性,等等。
这通常不是在架构 A 上编译内核并生成可在架构 B 上运行的内核的能力的限制,这个过程称为交叉编译,并且通过交叉編譯器
所以答案是它没有待编译在安装时,因为它可以由你的发行版供应商编译或交叉编译。当然,如果您需要定制它,您可以在自己的机器上重新编译它。
答案3
让 Linux 在特定平台上运行的通常步骤:
- 下载内核源代码
- 下载特定平台补丁(例如,针对 Atmel 的 AT91RM9200 ARM CPU)
- 应用官方/非官方/你的补丁
- 下载 crosstool-ng 或类似工具并构建交叉编译器/库
- 构建你的内核
- 手动或使用脚本/工具组装/更新/构建你的根目录
- 使用引导加载程序/JTAG/复制/其他方法将您的内核和根 FS 传输到您的平台。
- 完毕
对每个平台重复上述操作。
答案4
通常在安装前会进行编译。但是确实会针对每个平台分别进行编译。