Linux操作系统家族的基本组件如Linux内核GNU C 函数库、BusyBox,或其复刻如μClinuxuClibc,在编程时已经考虑了一定程度的抽象。此外,在汇编语言C语言原始码中包含了不同的代码途径,以支持特定的硬件。因此,原始码可以在大量的电脑系统结构上成功编译(或交叉编译)。

Linux 2.6.25.17启动界面

此外,还开发了必需的自由及开放原始码软件,作为Linux和将要执行Linux的硬件之间的接口。例如,编译器GCCLLVM/Clang。对交叉编译来说,则有数个完整工具链,像GNU工具链OpenWrt BuildrootOpenEmbeddedYocto计划针对嵌入式应用案例。

条目Linux内核可移植性一节中包含了有关技术细节的资讯及参考。

请注意,额外的组件,如显示伺服器或程序(像Blender),不一定适用以下所有平台。根本上说,所有软件都需要移植到执行该软件的硬件上,即适用特定体系。在编程时抽象的程度决定了该软件日后移植时所需要付出的努力。

相关术语:移植目标中有电脑系统结构,包括指令集架构微处理器(至少为CPU)的微架构。目标还包括整个系统的“系统设计”,无论是超级计算机台式电脑还是某些系统晶片,如在某些情况下,使用的是独一无二的总线。过去,内存控制器是在主板晶片组的一部分,而不是在CPU晶粒上。

尽管支持特定指令集是编译器的任务,软件在编写时也需考虑一定程度的抽象,才能使移植成为可能。以汇编语言写成的任何代码都将限定于某一指令集。

对特定微架构的支持包括优化CPU缓存层次结构中的TLB等。

发行

其它处理器(特别是Freescale 68000和ColdFire)受无MMU的变种μClinux支持。

参见

  • 操作系统比较
  • 嵌入式Linux内核子集
  • 用户模式Linux

参考

外部链接

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.