Creador | Linus Torvalds |
---|---|
Desarrollado por | Linus Torvalds y miles de colaboradores |
Primera versión | 0,01 (17 de septiembre de 1991) |
Última versión | 5,12 (25 de abril de 2021) |
Depositar |
git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git |
Estado del proyecto | En constante desarrollo |
Escrito en | C , ensamblador y C ++ |
Medio ambiente | Tipo UNIX |
Idiomas | inglés |
Tipo | Núcleo monolítico modular |
Política de distribución | Libre |
Licencia | GPLv2 , excepto BLOB patentados |
Sitio web | www.kernel.org |
El kernel de Linux es un kernel de UNIX . Se utiliza en varios sistemas operativos, incluidos GNU / Linux (comúnmente llamado "Linux") y Android . El kernel de Linux es un software parcialmente libre (que contiene BLOB y módulos no libres, ver Linux-libre ) desarrollado principalmente en el lenguaje C por miles de voluntarios y empleados que colaboran en Internet .
El kernel es el corazón del sistema, es él quien se encarga de dotar al software de una interfaz de programación para utilizar el hardware. El kernel de Linux fue creado en 1991 por Linus Torvalds para PC compatible . Diseñado originalmente para la arquitectura del procesador x86 , luego fue portado a muchos más, incluidos m68k , PowerPC , ARM , SPARC , MIPS y RISC-V . Se utiliza en una amplia gama de equipos, desde sistemas integrados hasta supercomputadoras , incluidos teléfonos móviles y computadoras personales .
Sus principales características son ser multitarea y multiusuario . Respeta los estándares POSIX , lo que lo convierte en un digno heredero de los sistemas UNIX . Inicialmente, el núcleo fue diseñado para ser monolítico. Esta elección técnica fue la ocasión de acalorados debates entre Andrew S. Tanenbaum , profesor de la Universidad Libre de Amsterdam que había desarrollado Minix , y Linus Torvalds . Andrew Tanenbaum argumenta que los núcleos modernos tienen que ser micro-núcleos y Linus responde que el rendimiento de los micro-núcleos no es bueno. Desde la versión 2.0, el kernel, aunque no es un micro-kernel, es modular, es decir, se puede agregar o eliminar alguna funcionalidad del kernel sobre la marcha (en uso).
En 1991 , los PC-compatibles dominan el mercado de las computadoras personales y generalmente funcionan con los sistemas operativos MS-DOS , Windows u OS / 2 . Las PC basadas en el microprocesador Intel 80386 , vendidas desde 1986, están empezando a ser asequibles. Pero los sistemas convencionales siguen comprometidos con la compatibilidad con los procesadores de 16 bits más antiguos de Intel y hacen un mal uso de las capacidades de 32 bits y la unidad de administración de memoria del 80386.
Es este año que el estudiante finlandés Linus Torvalds , indispuesto por la baja disponibilidad del servidor informático UNIX de la Universidad de Helsinki , acomete el desarrollo de un kernel de sistema operativo , que luego se llamará "Linux". Linus entonces quiere sobre todo entender el funcionamiento de su computadora basada en un Intel 80386.
Linus Torvalds aprendió con el sistema operativo Minix . Como el diseñador de Minix, Andrew Tanenbaum , se niega a incorporar contribuciones destinadas a mejorar Minix, Linus decide programar un reemplazo para Minix. Comienza por desarrollar un emulador de terminal simple , que usa para conectarse a través de un módem al servidor de la computadora de su universidad. Después de agregar varias características, incluido un sistema de archivos compatible con el de Minix, Linus dirige su proyecto hacia algo más ambicioso: un kernel según los estándares POSIX . A este kernel, adapta muchos componentes disponibles del sistema operativo GNU para lograr un sistema operativo más completo.
La 25 de agosto de 1991, anuncia en el foro de noticias de Usenet : comp.os.minix que está escribiendo un sistema operativo, pero como un "hobby, que no será tan grande y profesional como gnu". La5 de octubre de 1991, anuncia la disponibilidad de una versión borrador 0.02 de su kernel, habiéndose distribuido la versión 0.01 de manera más que confidencial. Finalmente enFebrero de 1992, la versión 0.12 se publica bajo la Licencia Pública General GNU (GNU GPL) en lugar de la licencia ad hoc que anteriormente prohibía la redistribución comercial.
La versión 1.0.0 de Linux se lanzó el 14 de marzo de 1994 con 176,250 líneas de código.
Inicialmente llamado Freax por su creador, el proyecto encuentra su nombre final gracias a Ari Lemmke , administrador del servidor FTP ftp.funet.fi , que aloja el trabajo de Linus Torvalds en un directorio llamado Linux . Esta fue la primera aparición de un término compuesto por "Linus" y "UNIX", que luego se convertiría en una marca registrada a nombre de Linus Torvalds. El pingüino Tux , diseñado por Larry Ewing en 1996, se convierte en la mascota del proyecto.
El lanzamiento del código Linux generó mucho interés en la comunidad de usuarios de Minix. A partir de entonces, miles de programadores voluntarios de todo el mundo participaron en el proyecto. El modelo de desarrollo de Linux todavía se considera un representante típico de la organización característica de los grandes colectivos de código abierto . Hoy en día, cientos de entusiastas y empresas de todos los tamaños participan en el proyecto, del que Linus Torvalds sigue siendo el coordinador. Eric Raymond describe en el ensayo La Cathédrale et le Bazar (2001) el modelo de desarrollo del kernel de Linux y parte del software libre .
En sistemas embebidos , Linux se usa frecuentemente con las herramientas uClibc y BusyBox que fueron desarrolladas para hardware particularmente limitado en capacidad de memoria. Poder compilar el kernel de Linux con opciones especialmente adaptadas al hardware de destino brinda a los desarrolladores muchas posibilidades de optimización.
Si al comienzo de su historia el desarrollo del kernel de Linux lo llevaron a cabo desarrolladores voluntarios, los principales contribuyentes hoy son un grupo de empresas, muchas veces en competencia, como Red Hat , Novell , IBM o Intel .
IBM tenía su propio UNIX, llamado AIX, pero el cambio a Linux, además de permitir que los desarrolladores y mantenedores de AIX sean asignados a otros proyectos, también tiene la ventaja de permitir una recuperación, sin dificultades de portabilidad de aplicaciones o nueva capacitación para equipos de TI. , desde servidores de PC Linux hasta Linux en sus series i, py z.
La licencia del kernel de Linux es la Licencia Pública General GNU en la versión 2. Esta licencia es gratuita y le permite usar, copiar y modificar el código fuente según sus deseos o necesidades. Por lo tanto, cualquier persona con los conocimientos necesarios puede participar en las pruebas y la evolución del kernel .
Entre marzo y Abril de 2005, el número de líneas de código se ha duplicado (de 4,4 millones a 8,8 millones). A principios de 2009, la versión 2.6.30 del kernel de Linux constaba de más de 11,5 millones de líneas de código en 28.000 archivos, mientras que se añadieron 2,8 millones de líneas entre la Navidad de 2008 yenero 2010.
Entre 2005 y mediados de 2009, 5.000 desarrolladores y 500 empresas participaron en la redacción del kernel. La cantidad de parches ofrecidos está aumentando, especialmente desde la versión 2.6.25.
Linus Torvalds , creador del kernel de Linux, ha sido el mantenedor oficial desde su creación en 1991 . Es una especie de "dictador benevolente", la autoridad en términos de elecciones técnicas y organizativas. Las diferentes versiones del kernel publicadas por Linus Torvalds se denominan "mainline" o "vanilla" en inglés. Estos son los kernels vanilla que están integrados por los distribuidores, a veces con la adición de algunos parches de seguridad, correcciones de errores u optimizaciones.
Linus Torvalds ha provocado un cambio radical en la forma en que se desarrollan los sistemas operativos, aprovechando al máximo el poder de Internet.
El proceso de desarrollo de Linux es público en Internet: las fuentes del kernel son visibles para todos, los cambios en estas fuentes se publican y revisan en Internet y también son visibles para todos. Desde el principio se adoptó un ciclo de desarrollo incremental y rápido (hoy se lanza una nueva versión cada 9 semanas aproximadamente), que ha hecho posible construir alrededor de Linux e Internet en capas sucesivas una comunidad dinámica formada por desarrolladores, empresas y usuarios.
Los números de versión del kernel se componen de tres números: el primero es el número mayor, el segundo es el número menor. Antes del lanzamiento de las versiones 2.6.x, incluso los números menores indicaban una versión estable y los números menores impares indicaban una versión en desarrollo. Así, las versiones 2.2, 2.4 son estables, las versiones 2.3 y 2.5 son versiones de desarrollo. Sin embargo, desde la versión 2.6 del kernel, este modelo de numeración estable / de desarrollo ha sido descontinuado y, por lo tanto, no hay un significado especial para números menores pares o impares. El tercer número indica una revisión, que corresponde a correcciones de errores, correcciones de seguridad o una adición de funcionalidad, por ejemplo 2.2.26, 2.4.30 o 2.6.11. El cambio a la versión 3.0 fue decidido por Linus Torvalds con motivo de los 20 años del kernel de Linux, incluso si la verdadera razón fue bastante arbitraria.
Desde Marzo de 2005(fecha de lanzamiento del kernel 2.6.11), Greg Kroah-Hartman y Chris Wright intentan mantener una rama estabilizada del kernel de vainilla de Linus Torvalds. Su objetivo es estabilizar aún más el kernel mediante la integración de parches de corrección de errores, seguridad u optimización simples y concisos que cumplan con criterios estrictos. Esta rama no integra nuevas funcionalidades. Sus publicaciones se indican con un cuarto número de versión, por ejemplo 2.6.11.1 o 2.6.11.6. El funcionamiento técnico y organizativo de esta rama se pondrá a prueba a lo largo del tiempo, a medio y largo plazo.
Hay una multitud de parches disponibles en Internet dentro de la comunidad de desarrollo del kernel de Linux. Los más conocidos son los de Andrew Morton con el sufijo -mm que integran parches de funcionalidades y optimizaciones muy solicitadas y el WOLK ( trabajando sobre kernel cargado , kernel funcional sobrecargado).
La distribución de Ubuntu Studio también incluye un kernel de baja latencia (Kernel de baja latencia ) que garantiza una latencia más baja para las aplicaciones de audio, a costa, sin embargo, de una mayor carga en el sistema en sí (debido a bucles de vigilancia, sondeo ) y, por lo tanto, una disminución en su rendimiento . Este núcleo se usa poco fuera de la creación musical, que requiere el menor retraso posible entre el toque de una tecla y la producción del efecto correspondiente.
Linux en tiempo realLos parches de Ingo Molnár con el sufijo -rt son utilizados por distribuciones multimedia de Linux como DeMuDi ; proporcionan el rendimiento en tiempo real necesario para el correcto funcionamiento de una estación de trabajo multimedia profesional. Ingo Molnar también es el creador del depurador del kernel kgdb .
Versión | Con fecha de | Principales mejoras |
---|---|---|
0,01 | 17 de septiembre de 1991 | Distribución confidencial (10,000 líneas de códigos). |
0,02 | 5 de octubre de 1991 | Anuncios en Usenet, sistema casi inutilizable. |
0,03 | Octubre de 1991 | bash y gcc disponibles en binario. |
0,10 | Diciembre de 1991 | Primeras aportaciones externas, internacionalización del teclado. |
0,11 | medio-Diciembre de 1991 | Driver para disquete, SCSI en desarrollo. |
0,12 | 5 de enero de 1992 | Memoria virtual, sistema utilizable, más hardware soportado, distribuido en GNU GPL , consolas virtuales. |
0,95 | 7 de marzo de 1992 | Init / login, X Window es portado, existe un grupo de noticias : alt.os.linux |
0,95a | 17 de marzo de 1992 | Nuevo responsable del disquete raíz de Linux : Jim Winstead . |
0.96 - 0.99 nivel de parche 15Z | 2 años de desarrollo, para la incorporación de funcionalidades y correcciones, los comp.os.linux. * Los foros son los más frecuentados de Usenet y se reorganizan 3 veces, señal de que la comunidad está creciendo y es muy activa. | |
1.0 | Marzo de 1994 | El kernel de Linux es estable para la producción y proporciona los servicios de un UNIX clásico (176.000 líneas de código). |
1.2 | Marzo de 1995 | Muchas más arquitecturas de procesador, módulos cargables, etc. (311.000 líneas de código) |
2.0 | Julio de 1996 | PowerPC , multiprocesador , más hardware compatible, gestión de red más completa, aparición de la mascota Tux . |
2.1.80 | Enero de 1998 | Soporte preliminar para arquitecturas ARM |
2.2 | Enero de 1999 | Framebuffer , NTFS , Joliet , IPv6 ,… (1,8 millones de líneas de código) |
2.4 | Enero de 2001 | USB , PCMCIA , I2O, NFS 3, X86-64 … (3.378 millones de líneas de códigos) |
2.6 | diciembre de 2003 | ALSA , kernel interrumpible, ACL , NFS 4,… (5,93 millones de líneas de código) |
2.6.16 LTS | 20 de marzo de 2006 | Primera versión con soporte extendido, soporte OCFS2, soporte de procesador Cell , 13 nuevas llamadas al sistema agregadas para plataformas x86 y x86_64, soporte cpufreq para Power Mac G5s , administración de energía mejorada para algunos dispositivos, soporte IPv6 para el protocolo DCCP , administración ACL para CIFS sistema de archivos , gestión del sistema de archivos HFSX , soporte para ejecutar ejecutables desde el sistema de archivos plan9,…. |
2.6.17 | 17 de junio de 2006 | Soporte para CPUs multinúcleo Niagara de Sun, soporte para chipset wifi Broadcom 43xx, optimización de imagen del kernel al inicio en x86, nuevo programador optimizado para procesadores multinúcleo…. |
2.6.18 | 19 de septiembre de 2006 | Herramienta Lockdep, herencia de prioridad, gestión de prioridad con SMPnice, planificador de CFQ,…. |
2.6.19 | 29 de noviembre de 2006 | Sistema de archivos GFS2, cifrado eCryptfs, subsistema libata, etc. |
2.6.20 | 4 de febrero de 2007 | Virtualización KVM, soporte UDP-Lite, escaneo SCSI asíncrono,…. |
2.6.21 | 25 de abril de 2007 | Interfaz de paravirtualización VMI (Virtual Machine Interface), Dynticks y Clockevents,…. |
2.6.22 | 8 de julio de 2007 | Toda la nueva capa wifi, asignador de memoria SLUB, programador de E / S CFQ , nuevos controladores… (8.499 millones de líneas de código). |
2.6.23 | 9 de octubre de 2007 | Nuevo programador de tareas CFS , entorno de soporte de controlador de espacio de usuario UIO integrado en el kernel, asignador de memoria predeterminado SLUB,…. |
2.6.24 | 24 de enero de 2008 | Unificación de arquitecturas i386 y x86-64 , E / S vectorial, autenticación de periféricos USB, programación grupal con CFS ,…. |
2.6.25 | 16 de abril de 2008 | SMACK (alternativa a SELinux ), gestión de bus CAN , rediseño de timerfd , mejora de la gestión en tiempo real …. |
2.6.26 | 13 de julio de 2008 | Integración del depurador del kernel kgdb , inicio de soporte para redes de topología de malla unificada, soporte para pantallas Braille , soporte para PAT para arquitectura x86 , ensamblaje "--bind" de solo lectura, administración de derechos de seguridad por proceso ( securebits ), virtualización mejorada con KVM …. |
2.6.27 LTS | 9 de octubre de 2008 | Conjunto de controladores de cámara web GSPCA, capa de red de múltiples archivos, UBIFS , sistema de depuración ftrace (en) …. |
2.6.28 | 24 de diciembre de 2008 | Gestor de memoria para tarjetas gráficas GEM ( Graphics Execution Manager ), sistema de archivos ext4 , mejor soporte para la gestión de memoria, gestión de redes UWB …. |
2.6.29 | 23 de marzo de 2009 | Integración de Btrfs , squashfs , batería WiMAX , mejora de eCryptfs (in) , integración de KMS , etc. |
2.6.30 | 9 de junio de 2009 | Integración de NILFS , un caché local para sistemas de archivos remotos , el módulo de seguridad TOMOYO, soporte para equipos de almacenamiento de objetos (11.561 millones de líneas de código). |
2.6.31 | 9 de septiembre de 2009 | Soporte para USB 3.0, API de apariencia fsnotify para notificación de eventos relacionados con el sistema de archivos, desfragmentación de disco en caliente a ext4 , monitor de rendimiento PerfCounters . |
2.6.32 LTS | 3 de diciembre de 2009 | Escritura de datos por BDI, Cambios en el programador CFS, Gestión dinámica de energía, Gestión de integridad TXT , Devtmpfs para listado de dispositivos, Técnica KSM para reducir la huella de memoria de sistemas virtualizados con KVM , Toma a cargo de la función TRIM por Btrfs . |
2.6.33 LTS | 24 de febrero de 2010 | Sistema de archivos DRBD , nuevo controlador , transacción TCP por cookie, controlador IO-Block, soporte de función TRIM por ext4 . |
2.6.34 LTS | 16 de mayo de 2010 | Sistemas de archivos Ceph y LogFS, dispositivo asíncrono en espera, mecanismo de seguridad GTSM, Lockdep-RCU, VGA-Switcheroo. |
2.6.35 LTS | 2 de agosto de 2010 | Función cpu_stop, gestión de energía, compresión de memoria, rendimiento de red con RPS y RFS, calidad de servicio con pm_qos, gestión de interrupciones. |
2.6.36 | 20 de octubre de 2010 | AppArmor , reescritura de funciones OOM Killer , herramienta fanotify , optimizaciones de VFS . |
2.6.37 | 5 de enero de 2011 | Rendimiento mejorado de ext4 y seguimiento de mecanismos ( etiqueta de salto ) compatible con FITRIM (un TRIM diferido) para ext4 , introducción del asignador de memoria memblock para reemplazar early_res, batería PPTP , primer controlador wifi Broadcom (todos los principales constructores de wifi ahora tienen un controlador gratuito). |
2.6.38 | 15 de marzo de 2011 | Nueva gestión de paginación macroscópica , optimización de la resolución de la ruta de acceso . |
2.6.39 | 18 de mayo de 2011 | Enfoque enhebrado para conectar periféricos , integración de ipsets oficial, soporte FITRIM (un TRIM retrasado) por Btrfs , fin del bloqueo global ( Big Kernel Lock ). |
3,0 LTS | 22 de julio de 2011 | Nuevo almacenamiento en caché de páginas de memoria, mejoras de Btrfs , nueva interfaz de acceso a alarmas de BIOS , eliminación de captación previa, compilador sobre la marcha para declaraciones de comparación de pilas de red. |
3.1 | 24 de octubre de 2011 | Arquitectura OpenRISC , gestión del consumo por cpupower, funciones adicionales para KVM , mejora de la gestión de la memoria Xen , gestión del rendimiento del disco, sistema de archivos virtual , protocolo BATMAN , adición de controladores NFC |
3,2 LTS | 4 de enero de , 2012 | CFS , ext4 , Btrfs , MPI y controladores gráficos mejorados , algoritmos del módulo de verificación extendido para verificación criptográfica y reducción de la tasa proporcional para la pila TCP , administración de generadores de números aleatorios digitales y arquitecturas Bulldozer Hexagon y secAMD , administración dinámica de escritura diferida , implementación de ensamblaje de SHA- 1 , Blowfish y Twofish , RAID-5 para EXOFS (en) , Escala dinámica de voltaje y frecuencia API , lectura asíncrona para SMB . La versión 3.2.5 corrige un error que existía desde la versión 2.6.38 en Active State Power Management (ASPM) que causaba un consumo excesivo de energía. |
3.3 | 19 de marzo de 2012 | Integración de controladores de Android , libgcrypt , Open vSwitch, un controlador de red de "equipo", arquitectura C6X, adición de un cgroup para recursos de red, "naturalización" de memcg, nuevos límites de infraestructura de " cola de bytes ", búfer DMA , PAE para procesadores ARM , Soporte LLCP y NVM Express , nuevo administrador de batería, mejora de ext4 y Btrfs , reconstrucción "en caliente" para RAID, salida de audio a través de HDMI |
3.4 | 20 de mayo de 2012 | Arquitectura X32 , dm-verity en la placa periférica , unificación de gestión de reloj para la arquitectura ARM, módulo de seguridad YAMA, mejora de ext4 , Btrfs , gráficos y drivers perf , soporte para Universal Flash Storage y HSI, algoritmo Camellia en ensamblador, dominios IRQ |
3,5 | 21 de julio de 2012 | Algoritmo CoDel para la pila TCP, revisión de la tabla de excepciones x86, mejor manejo de EDAC , NUMA , espacios de nombres de usuario y registros del kernel, Btrfs mejorados , ext4 , perf y controladores gráficos AMD e intel , método de suspensión automática , filtrado de llamadas al sistema por Seccomp, levanta sondas, modo de reparación para conexiones TCP |
3.6 | 30 de septiembre de 2012 | Modo de espera e hibernación combinados, ahorro de energía para ATA y PCIe, mejoras en TCP , Btrfs y ext4 , generación de entropía y controladores de gráficos, eliminación de la caché de enrutamiento IPv4, intercambio sobre NFS, mejor manejo de SSD en RAID |
3,7 | 11 de diciembre de 2012 | Compilación multiplataforma, virtualización y versión de 64 bits para la arquitectura ARM, Prevención de acceso al modo Supervisor , la gestión del módulo de firma por MODSIGN, Wii Balance Board , el procesador SPARC T4 (in) , reescritura de KMS y nuevo controlador Radeon mejorado, Sistemas de archivos TCP , perf , Btrfs y ext4 , NAT IPv6 , VXLAN, limpieza de encabezados |
3.8 | 19 de febrero de 2013 | Fin de la compatibilidad con i386 , compatibilidad con POWER8 añadida , programador NUMA mejorado , controladores de gráficos Tegra , Intel , Nouveau y Radeon mejorados , nuevo sistema de archivos F2FS y Btrfs y ext4 mejorados , Netlink mejorado , cifrado de algoritmos mejorado , administración de Wi-Fi 802.11ac y 802.11ad , espacios de nombres de red para usuarios, implementación de RFC5961. Contenedores LXC agregados . |
3.9 | 29 de abril de 2013 | Nuevo modo standby, reagrupamiento de arquitecturas ARM, mejora de drivers gráficos Intel , Nouveau y Radeon , RAID 5 y 6 para Btrfs , mejoras de IPv6 , nuevo filtro en Netfilter , bloqueo de filtros en socket , device-mapper-cache para usar un dispositivo como el caché de otro algoritmo LZO mejorado |
3.10 LTS | 30 de junio de 2013 | Se agregó soporte para Unified Video Decoder (in) , integración Bcache SSD / HDD , procesadores de soporte significativamente mejorados Intel Haswell , soporte mejorado para procesadores ARM de 64 bits, funciones de virtualización mejoradas y adición de controladores de audio. Como con cada nueva versión, se proporcionan actualizaciones para los sistemas de archivos ext4 y btrfs |
3.11 | 2 de septiembre de 2013 | Compresión de páginas de intercambio, compresión del kernel en LZ4 para la arquitectura ARM, optimización de la creación de archivos temporales, mejoras para las arquitecturas ARM y Aarch64, controladores gráficos intel, nVidia y ATI / AMD, reducción del consumo de tarjetas gráficas por Dynamic Power Administración y administración de energía de estado activo , mejoras en ext4 , Btrfs, XFS, F2FS y Lustre |
3.12 LTS | 3 de noviembre de 2013 | Rendimiento mejorado de cpufreq , nodos de renderizado para DRM , gestión de derechos para búferes gráficos, infoframes HDMI y ultra HD, suspensión profunda para procesadores gráficos Haswell, apagado automático y decodificación de hardware VP3-VP4 para tarjetas nVidia, mejor gestión de la energía para ATI / AMD tarjetas, soporte para núcleos gráficos Adreno, rendimiento mejorado de ext4 y F2FS |
3.13 | 20 de enero de 2014 | Mecanismo UEFI Common Platform Error record , earlyprintk para UEFI , seqcount / seqlocks en lockdep, balanceo automático de NUMA, limitación de consumo de Intel, controlador mejorado para tarjetas GPU Adreno ARM y nVidia, sonido sobre HDMI y GPU de gestión de energía para AMD / ATI, procesadores de gestión Broadwell (microarquitectura) (en) y Display Serial Interface , reemplazo de iptables por nftables , cola múltiple para escribir archivos en sistemas multi-core, mejor gestión de loginuid , mejora de / dev / urandom |
3.14 LTS | 31 de marzo de 2014 | Soporte para coprocesadores criptográficos AMD , chipset Intel Merrifield y nuevos procesadores ARM y MIPS, controladores gráficos AMD e Intel mejorados, aceleración para GPUs nVidia GK110 / GK208, direcciones IPv6 temporales en el espacio de usuario, autocap de TCP, depurador para filtro de paquetes BSD , mejora de Btrfs y F2FS , mejora de la virtualización de Xen . |
3,15 | 8 de junio de 2014 | Admite EFI de modo mixto , admite el conjunto de instrucciones AVX-512 (in) , programador mejorado, abandono de plataformas x86 antiguas, gestión mejorada de las teclas de brillo, mejora de los controladores de gráficos gratuitos, protección mejorada contra ataques de denegación de servicio , nivel de seguridad Bluetooth compatible 4 , sistemas de archivos ext3 / 4 estabilizados y XFS, Btrfs, F2FS mejorados |
3,16 LTS | 3 de agosto de 2014 | Controladores de gráficos gratuitos mejorados, TCP Fast Open disponible para IPv6, correcciones de vulnerabilidades, mejoras en los sistemas de archivos XFS, Btrfs, F2FS, Reiser4 y NFS |
3,17 | 5 de octubre de 2014 | Soporta modo inactivo por la generación Broadwell (microarquitectura) (en) , soporte para nuevos chips ARM, arquitecturas de soporte final IBM POWER3 e IBM RS64 , controladores gráficos gratuitos mejorados, correcciones de vulnerabilidades, mejoras de sistemas de archivos F2FS, NFS, XFS y Btrfs |
3,18 LTS | 7 de diciembre de 2014 | Espera acelerada, compatibilidad mejorada con CLANG , mejoras gratuitas en el controlador de gráficos, correcciones de vulnerabilidades, mejoras en el sistema de virtualización Xen y KVM , F2FS, NFS, OverlayFS , mejoras en el sistema de archivos Ceph |
3,19 | 8 de febrero de 2015 | Admite nuevos chips ARM , tecnología de soporte Intel MPX (in) , gestión mejorada del problema del año 2038 , mejora de controladores gráficos gratuitos, corrige vulnerabilidades, mejoras en el sistema de archivos f2fs, NFS, OverlayFS, Ceph, Btrfs y SquashFS , mejoras en los sistemas de virtualización Xen |
4.0 | 12 de abril de 2015 | Actualización del kernel sobre la marcha, compatibilidad con el chip Trusted Platform Module 2.0, mejora gratuita del controlador de gráficos, correcciones de vulnerabilidades, mejoras en el sistema de archivos F2FS, OverlayFS, Ceph y Btrfs, mejoras en el sistema de virtualización KVM y Virtio |
4.1 LTS | 21 de junio de 2015 | Soporte de nuevos chips (ARM, Xilinx , Qualcomm ), mejora de la gestión energética, actualización importante de la arquitectura x86 , corrección de vulnerabilidades, mejora de controladores gráficos gratuitos, sistemas de archivos y sistemas de virtualización |
4.2 | 30 de agosto de 2015 | Soporte para nuevos chips (ARM, Hitachi H8 ), bloqueos mejorados, rendimiento de red mejorado, módulos de seguridad mejorados, vulnerabilidades parcheadas, controladores de gráficos gratuitos mejorados, sistemas de archivos Btrfs, Ext4, FUSE, F2FS y sistemas de virtualización KVM y Xen |
4.3 | 1 st de noviembre de 2015 | Gráficos Intel Skylake habilitados de forma predeterminada, compatibilidad con AMD Radeon R9 Fury, compatibilidad con OpenGL para VMware, reescritura del controlador NVIDIA / Nouveau, controlador EXT3 desaparecido (compatible con el controlador EXT4), muchas mejoras para XFS, EXT4, F2FS, Btrfs, RAID5 / 6 y TRIM . |
4.4 LTS | 10 de enero de 2016 | Soporte para aceleración de gráficos en máquina virtual, mejora de E / S (directa y asíncrona), soporte para SSD de canal abierto, registro de RAID5 en la capa MD (RAID / LVM ), los programas eBPF pueden ser utilizados por usuarios sin privilegios, nuevos pilotos . |
4.5 | 13 de marzo de 2016 | Mejora la gestión del consumo energético. Soporte preliminar para AMD PowerPlay (en) . Rediseño masivo de arquitecturas ARM v6 y ARM v7. |
4.6 | 15 de mayo de 2016 | Al agregar el sistema de archivos OrangeFS (en) , se agregó soporte para USB 3.1, admite la versión 5 del protocolo BATMAN . |
4,7 | 24 de julio de 2016 | Gestión de controladores Microsoft Xbox One, Apple / Intel Thunderbolt (interfaz) y USB / IP. |
4.8 | 4 de septiembre de 2016 | Admite el overclocking de AMDGPU (a través del soporte OverDrive). |
4.9 LTS | 11 de diciembre de 2016 | Mejoras en la seguridad del kernel. AMDGPU es compatible con AMD PowerPlay (in) . Compatible con Raspberry Pi Zero. |
4.10 | 30 de abril de 2017 | Mejoras (exː Amlogic S905) y correcciones (exː AMD Ryzen ). |
4.11 | 1 st de mayo de 2017 | Mejoras y correcciones. |
4.12 | 2 de julio de 2017 | Brinda soporte para USB Type-C e IMSM ( Intel Matrix RAID (en) Storage Manager). |
4.13 | 3 de septiembre de 2017 | Mejoras ( ext4 , E / S , aceleración TLS ) y correcciones. |
4.14 LTS | 12 de noviembre de 2017 | Mayor RAM máxima administrada en arquitecturas x86_64 , soporte para nuevos dispositivos ARM y correcciones. |
4.15 | 28 de enero de 2018 | Mejoras con respecto a la resistencia a Meltdown (vulnerabilidad) y Spectre (vulnerabilidad) , muchas mejoras con respecto a AMDGPU . |
4.16 | 16 de mayo de 2018 | Mejoras en la resistencia a vulnerabilidades de seguridad en CPU. Adición de la segunda parte del código sobre la virtualización cifrada segura de AMD (en) . |
4.17 | 3 de junio de 2018 | Mejoras para el kernel 4.17. |
4.18 | 12 de agosto de 2018 | Mejoras para el kernel 4.18. |
4.19 LTS | 22 octubre 2018 | Mejoras para el kernel 4.19. |
4.20 | 23 diciembre 2018 | Mejoras para el kernel 4.20. |
5,0 | 3 de marzo de 2019 | Mejora del controlador gratuito para AMD Radeon VIIs, llevando el renderizado a un nivel nunca alcanzado por ningún controlador de GPU gratuito y compitiendo frontalmente con el controlador propietario de Nvidia. . |
5.1 | 5 de mayo de 2019 | Mejoras relativas a VFS con la adición de fsopen, mejoras a io asincrónico con la integración de io_uring. .
|
5.2 | 7 de julio de 2019 | Mejoras en el kernel 5.2. |
5.3 | 15 de septiembre de 2019 | Mejoras relativas al kernel 5.3. |
5.4 | 24 de noviembre de 2019 | Mejoras relativas al kernel 5.4. |
5.5 | 26 de enero de 2020 | Mejoras para el kernel 5.5. |
5,6 | 29 de marzo de 2020 | Mejoras para el kernel 5.6. |
5.7 | 31 de mayo de 2020 | Mejoras para el kernel 5.7. |
5.8 | 2 de agosto de 2020 | Mejoras en el kernel 5.8. |
5.9 | 11 de octubre de 2020 | Mejoras en el kernel 5.9. |
5.10 | 13 de diciembre de 2020 | Mejoras para el kernel 5.10. |
5.11 | 14 de febrero de 2021 | Mejoras para el kernel 5.11. |
Fuente: www.kernel.org
El núcleo se ha mantenido durante mucho tiempo sin control de versiones del sistema , principalmente porque a Linus Torvalds no le gustaban los sistemas de control de versiones centralizados.
En 2002 , el kernel se trasladó a Bitkeeper , un sistema de control de versiones propietario que cumplía con los requisitos técnicos de Linus Torvalds. El uso de este software se ofreció de forma gratuita a los desarrolladores del kernel . Sin embargo, al no ser software libre , la elección de este producto ha provocado polémica en la comunidad. El sistema, por ejemplo, no era interoperable con sistemas de control de versiones de código abierto como CVS y SVN .
En Abril de 2005, Los esfuerzos de Andrew Tridgell para aplicar ingeniería inversa a Bitkeeper llevaron a BitMover, el editor de ese software, a descontinuar el soporte para el desarrollo de Linux. En respuesta, Linus Torvalds y algunos otros desarrollaron un nuevo sistema de control de versiones: Git . Se escribió una primera versión de Git en unas pocas semanas y, dos meses después, se lanzó una nueva versión del kernel desarrollada con Git. El desarrollo y mantenimiento del software Git se dejó rápidamente en manos de Junio Hamano y la comunidad. Desde entonces ha sido ampliamente adoptado, entre otros, por la comunidad de software libre.
Como todos los programas de computadora, el kernel de Linux está escrito como código fuente y debe transformarse en un binario ejecutable para que el microprocesador lo entienda.
En la medida en que el código fuente del kernel de Linux contenga una gran cantidad de funcionalidades, el usuario puede optar por integrar solo las que le sean útiles o las que mejor se adapten a él (muchas funcionalidades son concurrentes): es el paso de configuración del kernel.
La gran mayoría de las distribuciones GNU / Linux instalan un kernel precompilado que satisface las necesidades de las estaciones de trabajo y los servidores. Por lo tanto, es raro que un usuario de Linux tenga que compilar un kernel. La compilación permite adaptar el kernel a necesidades específicas como el soporte de hardware poco común, la activación de funcionalidades experimentales o la adaptación a plataformas particulares como los sistemas embebidos.
El código fuente del kernel de Linux está disponible en kernel.org , pero las distribuciones GNU / Linux también proporcionan fuentes empaquetadas en sus depósitos.
El paso más importante en la construcción de un kernel personalizado es configurar el kernel. Las opciones de configuración están declaradas en el archivo .config, cada una corresponde a una funcionalidad del kernel, que se decide usar o no. En general, son posibles tres opciones:
Algunas opciones son una elección binaria: la funcionalidad está incluida en la imagen del kernel o no está compilada.
Hay varias herramientas para ajustar la configuración:
La compilación del kernel y los módulos se realiza mediante el comando make. Esta operación puede llevar bastante tiempo, sin embargo, el uso del argumento -jreduce el tiempo de compilación. Esto en detrimento de la capacidad de respuesta de otros programas y, por tanto, del sistema operativo. La instalación es automatizada, los comandos make instally make modules_installpermiten respectivamente instalar la imagen del kernel y sus módulos.
Para permitir que el sistema arranque con la nueva imagen del núcleo, es necesario configurar el cargador de arranque ( LILO , GRUB ) para que ejecute la imagen del núcleo al arrancar. Con ( GRUB , GRUB2 ) el comando update-grub automatiza la configuración.
La distribución Debian proporciona una utilidad make-kpkgque automatiza los pasos anteriores y crea paquetes Debian. Esto permite una fácil implementación en una gran cantidad de máquinas. De lo contrario, aún para debian, podemos ingresar los comandossudo su ; make menuconfig ; make deb-pkg ; cd ../ ; dpkg -i *deb
Aunque el objetivo inicial del proyecto era solo proporcionar un kernel similar a UNIX en arquitecturas x86 , la disponibilidad de fuentes permitió a los colaboradores adaptarlo a una gran cantidad de arquitecturas .
Linux puede ejecutarse en computadoras de consumo, así como en las supercomputadoras mejor clasificadas en el Top 500. noviembre 2011 : en este ranking, Linux estuvo presente en el 91,4% de las máquinas.
El kernel también se utiliza en sistemas embebidos, provistos de hardware más modesto; Algunos de los ejemplos más conocidos son los sistemas de navegación por satélite TomTom o los teléfonos con distribución Linux Android .
Si bien la mayoría de las aplicaciones están desarrolladas para trabajar con codificaciones de caracteres particulares, el diseño del kernel de Linux es tal que no se conoce la codificación de caracteres utilizada. En particular, como en el antiguo Unix, el nombre de los archivos se considera como una cadena de bytes, sin que sea posible saber de forma determinista qué texto específico representa, en ausencia del conocimiento de la codificación de caracteres utilizada.
Con respecto al shebang , el kernel de Linux asume que los scripts se escribirán en una codificación de caracteres que se extienda ASCII , sin incluir un byte de bandera antes del primer carácter, como puede suceder en Unicode . Sin embargo, el texto Unicode puede pasar a través del kernel, especialmente cuando se accede a los sistemas de archivos NTFS o CIFS / Samba .
Un simple pasatiempo de un estudiante al principio, el kernel de Linux permitió la aparición de sistemas operativos libres en competencia directa con otros sistemas operativos comerciales. Desde su lanzamiento en muchas arquitecturas (después de la versión 1.0), ha sido objeto de acciones legales :
Brad Spengler , desarrollador de grsecurity , acusa al kernel de Linux de centrar a veces sus esfuerzos en la funcionalidad en detrimento de la seguridad. Afirma que Linus Torvalds le dijo que no estaba interesado en agregar opciones de seguridad útiles para evitar desbordamientos de búfer, ya que ralentizaría la carga de aplicaciones .
Critica la ausencia de una persona oficialmente responsable de la seguridad, con quien sería posible comunicarse en privado y con total seguridad. En cambio, la única solución es enviar un correo electrónico a una lista de correo de problemas de seguridad donde las vulnerabilidades descubiertas a veces se utilizan con fines maliciosos antes de que se publique una actualización de seguridad, mientras que los usuarios de Linux no son conscientes de la existencia de esta falla.
Finalmente, cuestiona la implementación del sistema LSM desde la versión 2.6 del kernel, que se habría implementado laxa y habría facilitado la inserción de rootkits invisibles dentro del sistema haciéndolos pasar como módulos de seguridad. Esta revisión ya no es relevante gracias a los cambios realizados desde la versión 2.6.24.