Mensajes de arranque de un kernel Linux 2.6.25.17 Los componentes básicos de la familia de sistemas operativos Linux , que se basan en el núcleo Linux , la biblioteca C de GNU , BusyBox o bifurcaciones de este como μClinux y uClibc , se han programado con un cierto nivel de abstracción en mente. Además, existen rutas de código distintas en el lenguaje ensamblador o código fuente de C que admiten cierto hardware. Por lo tanto, el código fuente se puede compilar con éxito en (o compilar de forma cruzada para) una gran cantidad de arquitecturas informáticas .
Además, también se ha desarrollado el software libre y de código abierto necesario para la interfaz entre Linux y el hardware en el que se va a ejecutar Linux. Por ejemplo, hay compiladores disponibles, como GNU Compiler Collection (GCC) y LLVM / Clang . Para la compilación cruzada, hay disponibles varias cadenas de herramientas completas , como GNU toolchain , OpenWrt Buildroot o OpenEmbedded . El proyecto Yocto está orientado a casos de uso integrados.
La sección de portabilidad del artículo sobre el kernel de Linux contiene información y referencias a detalles técnicos.
Tenga en cuenta que otros componentes, como un sistema de ventanas o programas como Blender , pueden estar presentes o ausentes. Básicamente, todo software debe ser portado, es decir, adaptado específicamente, a cualquier tipo de hardware en el que se supone que se ejecutará. El nivel de abstracción que se ha tenido en cuenta al programar ese software en primer lugar dicta el esfuerzo necesario.
El término relevante para el objetivo de la portabilidad es la arquitectura de la computadora ; comprende el conjunto de instrucciones y la microarquitectura del procesador o procesadores, al menos de la CPU . El objetivo también comprende el "diseño del sistema" de todo el sistema, ya sea una supercomputadora , una computadora de escritorio o algún SoC , por ejemplo, en caso de que se use un bus único. En tiempos anteriores, el controlador de memoria era parte del chipset en la placa base y no en la matriz de la CPU .
Aunque el soporte de un conjunto de instrucciones específico es tarea del compilador, el software debe estar escrito con un cierto nivel de abstracción en mente para que sea posible esta portabilidad. Cualquier código escrito en lenguaje ensamblador será específico para el conjunto de instrucciones.
El soporte de una microarquitectura específica incluye optimizaciones para la jerarquía de caché de la CPU , la TLB , etc.
Lanzamientos Alfa DEC ( alpha
)Intel (Altera) NIOS II ARM -nios2
Dispositivos analógicos Blackfin (compatible desde la versión 2.6.22 [1] y abandonado desde la versión 4.17 [2] ) ( blackfin
)Andes Technology NDS32 ( nd32
) [3] (eliminado en el kernel v5.18.6)Familia de conjuntos de instrucciones ARM (32 y 64 bits) ( arm
y arm64
):Atmel AVR32 (abandonado desde 4.12 [7] ) ( avr32
)C-CIELO [8] Elbrus-8S ETRAX CRIS de Axis Communications (abandonado desde la versión 4.17)Familia de DSP TMS320 de Texas Instruments TMS320C64x ( c6x
) [9] (eliminado en el kernel v5.18.6) Arquitectura 68k de Freescale (anteriormente Motorola ) (68020, 68030, 68040, 68060) ( ):m68k
Fujitsu FR-V (abandonado desde 4.17) ( frv
)Hexágono de Qualcomm ( hexagon
)PA-RISC de Hewlett-Packard ( parisc
)Arquitectura H8h8300
de Renesas Technology, anteriormente Hitachi (abandonada desde 5.19) ( ) [10] Máquinas de negocios internacionales ( IBM ) Imaginación META [11] (eliminado desde la versión 4.17)Intel IA-64 Itanium, Itanium II (eliminados desde la versión 6.7) ( ia64
) [12] [13] Arquitectura x86 ( x86
):IBM PC compatibles que utilizan procesadores IA-32 y x86-64 :Intel 80386 (abandonado desde la versión 3.8), 80486 y sus variantes AMD , Cyrix , Texas Instruments e IBM Toda la serie Pentium y sus variantes Celeron y Xeon Procesadores Intel Core AMD 5x86, K5 , K6 , Athlon (todas las versiones de 32 bits), Duron , Sempron x86-64 : arquitectura de procesador de 64 bits, ahora conocida oficialmente como AMD64 (AMD) o Intel64 (Intel); compatible con los procesadores Athlon 64 , Opteron e Intel Core 2 , entre otrosSerie Cyrix 5x86, 6x86 (M1), 6x86MX y MediaGX (National/AMD Geode) Procesadores VIA Technologies Eden (Samuel II), VIA C3 y VIA C7 (todos de 32 bits) y VIA Nano (x86-64)La Xbox de Microsoft (procesador Pentium III), a través del proyecto Xbox Linux Estación de trabajo visual SGI (procesador(es) Pentium II/III con chipset SGI)PC-98NX (modelos de 1997 a 2000)Ciudades FM Estación de trabajo Sun Microsystems Sun386i (80386 y 80486)El soporte para las CPU 8086 , 8088 , 80186 , 80188 y 80286 está en desarrollo (la bifurcación ELKS ) [14] M32R de Mitsubishi (eliminado desde 4.17) ( m32r
) MicroBlaze de Xilinx ( microblaze
)Arquitectura MIPS ( mips
):MN103 de Panasonic Corporation (eliminado desde 4.17) ( mn10300
)OpenRISC ( openrisc
)Familia OpenRISC 1000 en el núcleo principal de Linux a partir de la versión 3.1Más allá del semiconductor OR1200 Más allá del semiconductor OR1210 ISA de potencia :Arquitectura PowerPC powerpc
( ): RISC-V ( riscv
)SPARC ( sparc
)SPARC (32 bits): UltraSPARC (64 bits): Sunway [ cita requerida ] SúperH ( sh
)Núcleos ARC de Synopsys DesignWare , desarrollados originalmente por ARC International ( arc
)S+core (eliminado desde la versión 4.17) ( score
)Tilera (abandonada desde la versión 4.17)Xtensa de Tensilica Transmeta Crusoe UniCore32 (abandonado desde la versión 5.9) ( unicore32
) [18] La variante μClinux sin MMU admite procesadores adicionales (en particular, el 68000 de Freescale y el ColdFire ) .
Véase también
Referencias ^ "'Linux 2.6.22-rc1' - MARC". marc.info . Consultado el 15 de abril de 2024 . ^ "Limpieza de primavera de Linux 4.17 para eliminar algunas arquitecturas de CPU antiguas". www.phoronix.com . Consultado el 15 de abril de 2024 . ^ "Linux_4.17 - Linux Kernel Newbies" (en inglés). kernelnewbies.org . Consultado el 15 de abril de 2024 . ^ "Base de datos de controladores del núcleo de Linux: CONFIG_ARCH_ARC: Archimedes". cateee.net . Consultado el 5 de enero de 2021 . ^ "ARM Linux - Acorn - Descripción general". www.arm.linux.org.uk . Consultado el 5 de enero de 2021 . ^ "Linux en Palm Tungsten E". palmtelinux.sourceforge.net . Consultado el 15 de abril de 2024 . ^ "Kernel/Git/Torvalds/Linux.git - Árbol de código fuente del kernel de Linux". ^ "Csky « arch - kernel/Git/Torvalds/Linux.git - Árbol de fuentes del kernel de Linux". ^ "Arch/C6x: Nuevo puerto de arquitectura para Linux [LWN.net]". ^ "[GIT PULL] Cambios en asm-generic para 5.19 - Arnd Bergmann". kernel.org . ^ "Puerto del kernel Meta Linux [LWN.net]". ^ "Eliminar el soporte de la arquitectura IA-64". kernel.org . ^ "Registro de cambios-6.7". kernel.org . ^ "ELKS: El sistema de núcleo Linux integrable". elks.sourceforge.net . Consultado el 15 de abril de 2024 . ^ "uClinux en la PSP". 14 de enero de 2007. Archivado desde el original el 14 de enero de 2007. Consultado el 15 de abril de 2024 . ^ Datos técnicos del Dream Multimedia DM 800 PVR Archivado el 27 de mayo de 2008 en Wayback Machine. ^ "Dream Multimedia DM 500 + datos técnicos". Archivado desde el original el 30 de mayo de 2008. ^ "[GIT PULL] eliminar soporte para unicore32 - Mike Rapoport". kernel.org .
Enlaces externos Jae Yun Moon y Lee Sproull (noviembre de 2000). "La esencia del trabajo distribuido: el caso del núcleo Linux". First Monday . 5 (11). BlueCat – Guía de adaptación del kernel de Linux