
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)
- Blackfin (compatible desde la versión 2.6.22 [1] y abandonado desde la versión 4.17 [2] ) (
- Andes Technology NDS32 (
nd32) [3] (eliminado en el kernel v5.18.6) - Familia de conjuntos de instrucciones ARM (32 y 64 bits) (
armyarm64):- Series Acorn Archimedes y RiscPC (las máquinas originales fueron admitidas en 2.6.22 [4] ) [5]
- Ganador de todo
- Procesadores de la serie A de Apple
- Procesadores de la serie M de Apple
- Núcleo de vídeo Broadcom
- DEC Brazo fuerte
- Samsung Exynos
- Marvell (anteriormente Intel) XScale
- Zaurus afilado
- HiSilicon
- iPAQ
- Dispositivo portátil Tungsten de Palm, Inc. [6]
- GP2X de GamePark Holdings
- Abrir Pandora
- MediaTek
- Tableta de Internet Nokia 770
- Nokia N800
- Nokia N810
- Nokia N900
- Nómada
- NovaThor (descontinuado)
- palitos de goma
- Sony Mylo
- Qualcomm Snapdragon
- Nvidia Tegra
- TI OMAP
- Psion 5, 5MX, Serie 7, netbook
- Chip de roca
- Algunos modelos de iPods de Apple (a través de iPodLinux )
- OpenMoko Neo 1973 , Neo FreeRunner
- Procesadores multimedia i.MX de Freescale (anteriormente Motorola )
- 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)
- TMS320C64x (
- 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 H8
h8300de Renesas Technology, anteriormente Hitachi (abandonada desde 5.19) ( ) [10]- H8/300
- H8/500
- Máquinas de negocios internacionales ( IBM )
- Sistema/390 ( 31 bits ) (
s390) - z/Architecture ( IBM Z e IBM LinuxONE ) ( 64 bits ) (
s390x)
- Sistema/390 ( 31 bits ) (
- 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 otros
- Serie 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]
- IBM PC compatibles que utilizan procesadores IA-32 y x86-64 :
- M32R de Mitsubishi (eliminado desde 4.17) (
m32r) - MicroBlaze de Xilinx (
microblaze) - Arquitectura MIPS (
mips):- Dingoo
- Procesadores de red Amazon & Danube de Infineon
- Ingenieria Jz4740
- Loongson (compatible con MIPS) y modelos 2 y 2E, de BLX IC Design Ltd ( China )
- Algunos modelos de PlayStation 2 , a través del proyecto PS2 Linux
- Puerto uClinux 2.4.19 para PlayStation Portable [15]
- Conjuntos de chips inalámbricos Broadcom
- Dreambox (modelos HD) [16]
- Procesadores de paquetes Cavium Octeon
- 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.1
- Más allá del semiconductor OR1200
- Más allá del semiconductor OR1210
- ISA de potencia :
- Servidores IBM
- Arquitectura PowerPC
powerpc( ):- La célula de IBM
- La mayoría de las computadoras Apple anteriores a Intel (todas las Power Macintosh basadas en PCI , soporte limitado para las Power Mac NuBus más antiguas)
- Clones del PCI Power Mac comercializados por Power Computing , UMAX y Motorola
- Amigas mejoradas con una tarjeta "Power-UP" (como Blizzard o CyberStorm)
- Placa base AmigaOne de Eyetech Group Ltd ( Reino Unido )
- Samantha de Soft3 (Italia)
- Sistemas IBM RS/6000 , AS/400 y pSeries
- Placas Pegasos I y II de Genesi
- GameCube y Wii , a través de GameCube Linux
- Proyecto BlackDog de Realm Systems, Inc.
- Sony PlayStation 3
- La Xbox 360 de Microsoft , a través del proyecto free60
- CPU V-Dragon de Culturecom
- Matriz de puertas programables en campo (FPGA) Virtex II Pro de Xilinx con núcleos PowerPC
- Dreambox (modelos no HD) [17]
- RISC-V (
riscv) - SPARC (
sparc)- SPARC (32 bits):
- Sun-4 (abandonado desde 2.6.27)
- Serie SPARCstation/SPARCserver (sun4m, sun4d) sun4c (eliminado desde la versión 3.5)
- LEÓN
- UltraSPARC (64 bits):
- Serie Sun Ultra
- Hoja de sol
- Fuego solar
- Sistemas SPARC Enterprise , también basados en los procesadores UltraSPARC T1 , UltraSPARC T2 , UltraSPARC T3 y Ultra SPARC T4
- SPARC (32 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
- Comparación de núcleos de sistemas operativos
- Comparación de sistemas operativos
- Subconjunto del kernel de Linux integrable
- Linux en modo usuario
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