Portabilidad del núcleo Linux y arquitecturas soportadas
La Portabilidad del núcleo Linux y arquitecturas soportadas, se refiere a que originalmente escrito para procesadores Intel i386, el núcleo Linux fue recodificado para facilitar la portabilidad de éste.
Los componentes básicos de la familia de sistemas operativos Linux, que se basan en el kernel Linux, la biblioteca GNU C, BusyBox o sus bifurcaciones como μClinux y uClibc, se han programado teniendo en cuenta un cierto nivel de abstracción. Además, hay distintas rutas de código en lenguaje ensamblador o código fuente C que admiten cierto hardware. Por lo tanto, el código fuente se puede compilar con éxito o compilar de forma cruzada para una gran cantidad de arquitecturas informáticas.
Habiendo sido reescrito una vez para la arquitectura Motorola 68K, la perspectiva de las tediosas reescrituras para cada arquitectura posible, incitada por Linus Torvalds, se enfocaba en poseer una base de código modular que pudiese ser portada hacia diferentes arquitecturas con un mínimo de esfuerzo.
Carpetas específicas de arquitectura en las fuentes del núcleo, se dirigen a detalles particulares de cada procesador soportado, mientras todas las ventajas radican el en hecho de compartir un idéntico código de núcleo.
La modularidad adicional fue alcanzada por el núcleo 2.0 con módulos dinámicamente cargables.
Linux en los dispositivos portátiles
editarEs posible instalar el núcleo Linux en cualquier dispositivo o máquina de carácter portátil, como por ejemplo, un teléfono celular, o un ordenador de mano, siempre y cuando el núcleo se compile para las necesidades de dicho dispositivo. El concepto no es completamente aplicable a las computadoras portátiles, aunque Linux puede instalarse allí también. Aun cuando Linus Torvalds no ideó originalmente Linux como un sistema portable, ha evolucionado en esa dirección. Linux es ahora de hecho, uno de los núcleos de sistema operativo más ampliamente portados, y funciona en sistemas muy diversos que van desde iPAQ (una handheld) hasta un zSeries (un mainframe masivo, muy costoso). Está planeado que Linux sea el sistema operativo principal de las nuevas supercomputadoras de IBM, Blue Gene cuando su desarrollo se complete.
De todos modos, es importante notar que los esfuerzos de Torvalds también estaban dirigidos a un tipo diferente de portabilidad. Según su punto de vista, la portabilidad es la habilidad de compilar fácilmente en un sistema aplicaciones de los orígenes más diversos; así, la popularidad original de Linux se debió en parte al poco esfuerzo necesario para tener funcionando las aplicaciones favoritas de todos, ya sean GPL o de Código abierto.
Lista de arquitecturas soportadas
editarEl núcleo Linux soporta las siguientes arquitecturas:
Arquitectura raíz o tipo | Arquitectura específica |
---|---|
Alpha |
|
Intel (Altera) NIOS II ARM - nios2 [1]
|
|
Analog Devices |
|
Andes Technology NDS32 (nd32 )[4] (incluido en el kernel v5.18.6)
|
|
Argonaut RISC Core (ARC[5]) de ARC International | |
Arquitectura ARM[6] (32 y 64-bit) (arm y arm64
|
|
Atmel AVR32 (eliminado desde 4.12[10]) (avr32 )
|
|
C-SKY[11] | |
Elbrus-8S | |
Familia de Texas Instruments TMS320 de DSP de Texas Instruments |
|
ETRAX CRIS de Axis Communications (retirado desde 4.17) | |
Freescale (anteriormente Motorola 68k arquitecturas (68020, 68030, 68040, 68060) (m68k )[13]
|
|
Fujitsu FR-V (retirado desde 4.17) (frv )
|
|
PA-RISC[14] de Hewlett-Packard (parisc )
|
|
H8 arquitectura de Renesas Technology, anteriormente Hitachi. (h8300 )
|
|
IBM |
|
Intel IA-64[16] Itanium, Itanium II (ia64 )[17]
|
|
x86 (x86 )[18]
|
|
M32R de Mitsubishi (retirado desde 4.17) (m32r ).
|
|
Microblaze de Xilinx (m32r ).
|
|
MIPS (mips )[20]:
|
|
MN103 from Panasonic Corporation (dropped since 4.17) (mn10300 )
|
|
NEC v850e | |
Olivetti |
|
OpenRISC[24], series de procesador open core (openrisc )
|
|
Power Architecture (Power ISA) |
|
PowerPC[25] |
|
RISC-V (riscv )[27]
|
|
SPARC (sparc )[28]
|
|
SuperH (sh )[29]
|
|
Synopsys DesignWare Núcleos ARC, desarrollados originalmente por ARC International (arc )
|
|
S+core (retirado desde 4.17) (score )
|
|
Tilera (retirado desde 4.17) | |
Xtensa[30] de Tensilica | |
Transmeta Crusoe | |
UniCore32 (unicore32 )
|
Procesadores adicionales (particularmente los 68000 de Freescale y ColdFire) están soportadas por la variante MMU-less μClinux.
Referencias
editar- ↑ Nios II Specific Documentation
- ↑ Blackfin
- ↑ Versión 2.6.22
- ↑ «Linux_4.17 - Linux Kernel Newbies».
- ↑ ARC architecture, kernel.org
- ↑ ARM Architecture, kernel.org
- ↑ «Linux Kernel Driver DataBase: CONFIG_ARCH_ARC: Archimedes». cateee.net. Consultado el 5 de enero de 2021.
- ↑ «ARM Linux - Acorn - Overview». www.arm.linux.org.uk. Consultado el 5 de enero de 2021.
- ↑ Linux on Palm Tungsten E
- ↑ «Kernel/Git/Torvalds/Linux.git - Linux kernel source tree».
- ↑ «Csky « arch - kernel/Git/Torvalds/Linux.git - Linux kernel source tree».
- ↑ «Arch/C6x: New architecture port for linux [LWN.net]».
- ↑ m68k Architecture - kernel.org
- ↑ PA-RISC Architecture - kernel.org
- ↑ s390 Architecture
- ↑ IA-64 Architecture - kernel.org
- ↑ «Linux 5.4 Dropping Support For The Itanium IA64-Powered SGI Altix - Phoronix». www.phoronix.com. Consultado el 5 de enero de 2021.
- ↑ x86-specific Documentation - kernel.org
- ↑ ELKS project
- ↑ MIPS-specific Documentation, kernel.org
- ↑ LoongArch Architecture - kernel.org
- ↑ uClinux on the PSP
- ↑ «Dream Multimedia DM 800 PVR technical data». Archivado desde el original el 27 de mayo de 2008. Consultado el 14 de junio de 2023.
- ↑ OpenRISC Architecture
- ↑ powerpc - kernel.org
- ↑ «Dream Multimedia DM 500 + technical data». Archivado desde el original el 30 de mayo de 2008.
- ↑ RISC-V architecture
- ↑ Sparc Architecture - kernel.org
- ↑ SuperH Interfaces Guide - kernel.org
- ↑ Xtensa Architecture - kernel.org
Véase también
editarEnlaces externos
editar- Página web de kernel.org (en inglés)
- Página web de documentación de kernel.org (en inglés)
- Esencia de trabajo distribuido: El caso del núcleo Linux Archivado el 26 de septiembre de 2011 en Wayback Machine. (en inglés)
- BlueCat -Linux Kernel Porting Guide (en inglés)