Kernel de Linux

Linux

Información
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).

Historia

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.

Desarrollo del kernel de Linux

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 .

Ritmo de desarrollo

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.

Papel de Linus Torvalds

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.

Proceso de desarrollo

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.

Modo de marcado

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.

Parches

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 real

Los 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 .

Cronología

Cronograma de lanzamiento de Linux
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

 

Gestión de versiones

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.

Características técnicas

Compilación de kernel

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:

  • Y : la funcionalidad se compila e implementa en la imagen del kernel
  • M : la función se compila como un módulo
  • N : la característica se ignora

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:

  • make config : programa en modo texto que enumera todas las opciones y le pide que ingrese su elección
  • make menuconfig : utilidad en modo texto escrito con ncurses , permite una navegación más sencilla en la configuración
  • make gconfig : herramienta gráfica basada en GTK +
  • make xconfig : herramienta gráfica basada en Qt
  • make defconfig : herramienta utilizada para recuperar los parámetros de configuración predeterminados del kernel. Estos parámetros los dan los desarrolladores del kernel cada vez que se lanza el kernel.
  • make oldconfig : herramienta utilizada para recuperar los parámetros de configuración de una versión antigua del kernel para no volver a iniciar la configuración.
  • make olddefconfig : herramienta que permite recuperar los parámetros de configuración del kernel predeterminados y establecer los demás parámetros por defecto.
  • make localmodconfig : herramienta utilizada para recuperar los parámetros de configuración del kernel que se está ejecutando actualmente en la máquina para cargar solo los módulos necesarios.

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

Interfaces

Portabilidad

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 .

Codificación de caracteres

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 .

Disputas

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  :

  • Sobre la marca: en 1995 , cuando Linux ya había adquirido cierta notoriedad, un particular tuvo la idea de registrar la marca Linux , cosa que nadie había hecho. La reacción fue viva en toda la comunidad, la disputa se resolvió fuera de los tribunales y Linus se convirtió en el propietario del nombre Linux (y por lo tanto, libre de rechazarlo o no a una distribución considerada demasiado comercial).
  • Sobre derechos de autor: una demanda contra SCO contra IBM sobre el tema del kernel de Linux: ver sobre este tema SCO contra Linux .
  • Sobre las patentes de software: incompatibles con la idea de interoperabilidad esencial para el éxito del software libre, las patentes de software constituyen una amenaza para Linux. Estas patentes se emiten en los Estados Unidos, pero han sido rechazadas por el Parlamento Europeo .

Reseñas

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.

Notas y referencias

  1. (en) Es oficial, Linux fue lanzado el 17 de septiembre de 1991  " (consultado el 10 de abril de 2018 )
  2. Linus Torvalds , Linux 5.12  " ,25 de abril de 2021(consultado el 26 de abril de 2021 )
  3. (en) Linus Benedict Torvalds , "  comp.os.minix  " ,Agosto de 1991(consultado el 6 de septiembre de 2009 )
  4. Esta información está extraída del documento El nacimiento de Linux , disponible en Wikisource . Contiene los mensajes en cuestión y sus traducciones.
  5. Notas de la versión para Linux v0.12
  6. (en) "  Lanzamiento de la versión 1.0.0 del kernel de Linux  " en www.webdevelopersnotes.com (consultado el 7 de diciembre de 2017 )
  7. (en) Nate Larkin , Samson and the Pirate Monks: Llamando a los hombres a la auténtica hermandad , Thomas Nelson,18 de febrero de 2007, 224  p. ( ISBN  978-1-4185-7769-8 , leer en línea )
  8. Según Lars Wirzeniu en una presentación de 1998: Anécdotas de Linux
  9. "  estadounidense Reg No: 1916230  " , Patente de Estados Unidos y la Oficina de Marcas (consultado el 1 er de abril de de 2006 )
  10. Sébastien Broca , Utopía del software libre: del retoque informático a la reinvención social , Ed. el polizón2013( ISBN  978-2-916952-95-6 y 2916952950 , OCLC  867598251 , leer en línea )
  11. la catedral y el bazar , de Eric S. Raymond.
  12. [pdf] La Fundación Linux, “  Kernel Linux Desarrollo  ” ,2009(consultado el 4 de febrero de 2010 )
  13. "  Proyecto de código abierto del kernel de Linux: página de idiomas  " , en Open Hub (consultado el 30 de septiembre de 2015 )
  14. Open Source: el 75% de los contribuyentes de Linux reciben su pago en ZDNet
  15. Mensaje de Linus en LKML
  16. Lanzamiento de Linux 2.1.80
  17. Kernel 2.6.16 lanzado en LinuxFr.org
  18. Kernel 2.6.17 lanzado en LinuxFr.org
  19. Kernel 2.6.18 lanzado en LinuxFr.org
  20. Kernel 2.6.19 lanzado en LinuxFr.org
  21. Kernel 2.6.20 lanzado en LinuxFr.org
  22. Kernel 2.6.21 lanzado en LinuxFr.org
  23. Kernel 2.6.22 lanzado en LinuxFr.org
  24. Kernel 2.6.23 lanzado en LinuxFr.org
  25. Kernel 2.6.24 lanzado en LinuxFr.org
  26. Kernel 2.6.25 lanzado en LinuxFr.org
  27. Kernel 2.6.26 lanzado en LinuxFr.org
  28. Kernel 2.6.27 lanzado en LinuxFr.org
  29. Kernel 2.6.28 lanzado en LinuxFr.org
  30. Kernel 2.6.29 lanzado en LinuxFr.org
  31. Kernel 2.6.30 lanzado en LinuxFr.org
  32. Kernel 2.6.31 lanzado en LinuxFr.org
  33. Kernel 2.6.32 lanzado en LinuxFr.org
  34. Kernel 2.6.33 lanzado en LinuxFr.org
  35. Kernel 2.6.34 lanzado en LinuxFr.org
  36. Kernel 2.6.35 lanzado en LinuxFr.org
  37. Kernel 2.6.36 lanzado en LinuxFr.org
  38. Kernel 2.6.37 lanzado en LinuxFr.org
  39. Kernel 2.6.38 lanzado en LinuxFr.org
  40. Kernel 2.6.39 lanzado en LinuxFr.org
  41. Lanzamiento del kernel 3.0 de Linux  " , en linuxfr.org ,22 de julio de 2011(consultado el 22 de abril de 2015 )
  42. Lanzamiento del kernel de Linux 3.1  " , en linuxfr.org ,24 de octubre de 2011(consultado el 22 de abril de 2015 )
  43. Lanzamiento del kernel 3.2 de Linux  " , en linuxfr.org ,5 de enero de 2012(consultado el 22 de abril de 2015 )
  44. Lanzamiento del kernel 3.3 de Linux  " , en linuxfr.org ,19 de marzo de 2012(consultado el 22 de abril de 2015 )
  45. Lanzamiento del kernel 3.4 de Linux  " , en linuxfr.org ,21 de mayo de 2015(consultado el 22 de abril de 2015 )
  46. Lanzamiento del kernel 3.5 de Linux  " , en linuxfr.org ,22 de julio de 2012(consultado el 22 de abril de 2015 )
  47. Lanzamiento del kernel 3.6 de Linux  " , en linuxfr.org ,1 er de octubre de 2012(consultado el 22 de abril de 2015 )
  48. Lanzamiento del kernel 3.7 de Linux  " , en linuxfr.org ,11 de diciembre de 2012(consultado el 22 de abril de 2015 )
  49. Lanzamiento del kernel 3.8 de Linux  " , en linuxfr.org ,19 de febrero de 2015(consultado el 22 de abril de 2015 )
  50. Lanzamiento del kernel 3.9 de Linux  " , en linuxfr.org ,29 de abril de 2013(consultado el 22 de abril de 2015 )
  51. Lanzamiento del kernel de Linux 3.10  " , en linuxfr.org ,3 de julio de 2013(consultado el 22 de abril de 2015 )
  52. Lanzamiento del kernel de Linux 3.11  " , en linuxfr.org ,3 de septiembre de 2013(consultado el 22 de abril de 2015 )
  53. Lanzamiento del kernel de Linux 3.12  " , en linuxfr.org ,6 de noviembre de 2013(consultado el 22 de abril de 2015 )
  54. Lanzamiento del kernel de Linux 3.13  " , en linuxfr.org ,21 de enero de 2015(consultado el 22 de abril de 2015 )
  55. (en) "  Linux 3.14 AMD's Recording Cryptographic Coprocessor - Phoronix  " en phoronix.com (consultado el 24 de febrero de 2021 ) .
  56. Lanzamiento del kernel de Linux 3.14  " , en linuxfr.org
  57. Lanzamiento del kernel de Linux 3.15  " , en linuxfr.org ,12 de junio de 2014(consultado el 22 de abril de 2015 )
  58. Lanzamiento del kernel de Linux 3.16  " , en linuxfr.org ,7 de agosto de 2014(consultado el 22 de abril de 2015 )
  59. Lanzamiento del kernel de Linux 3.17  " , en linuxfr.org ,13 de octubre de 2014(consultado el 22 de abril de 2015 )
  60. Lanzamiento del kernel de Linux 3.18  " , en linuxfr.org ,17 de diciembre de 2014(consultado el 22 de abril de 2015 )
  61. Lanzamiento del kernel de Linux 3.19  " , en linuxfr.org ,16 de febrero de 2015(consultado el 22 de abril de 2015 )
  62. Lanzamiento del kernel 4.0 de Linux  " , en linuxfr.org ,22 de abril de 2015(consultado el 22 de abril de 2015 )
  63. "  Lanzamiento del kernel de Linux 4.1 - LinuxFr.org  " , en linuxfr.org (consultado el 26 de julio de 2015 )
  64. "  Lanzamiento del kernel 4.2 de Linux - LinuxFr.org  " , en linuxfr.org (consultado el 17 de septiembre de 2015 )
  65. (en) "  Lanzamiento del kernel Linux 4.4 - kernelnewbies.org  "
  66. "  Lanzamiento del kernel de Linux 4.5 - LinuxFr.org  " , en linuxfr.org (consultado el 20 de abril de 2016 )
  67. "  Lanzamiento del kernel de Linux 4.6 - LinuxFr.org  " , en linuxfr.org (consultado el 6 de junio de 2016 )
  68. “  Lanzamiento del kernel de Linux 4.7 - LinuxFr.org  ” , en linuxfr.org (consultado el 28 de septiembre de 2016 )
  69. "  Linux kernel 4.8 lanzado - LinuxFr.org  " , en linuxfr.org (consultado el 16 de diciembre de 2016 )
  70. "  Lanzamiento del kernel de Linux 4.9 - LinuxFr.org  " , en linuxfr.org (consultado el 8 de febrero de 2017 )
  71. "  Lanzamiento del kernel de Linux 4.10 - LinuxFr.org  " , en linuxfr.org (consultado el 8 de febrero de 2017 )
  72. "  Lanzamiento del kernel de Linux 4.11 - LinuxFr.org  " , en linuxfr.org (consultado el 26 de junio de 2020 )
  73. "  Linux_4.12 - Linux Kernel Newbies  " , en kernelnewbies.org (consultado el 24 de febrero de 2021 ) .
  74. “  Linux_4.13 - Linux Kernel Newbies  ” , en kernelnewbies.org (consultado el 24 de febrero de 2021 ) .
  75. "  Linux_4.14 - Linux Kernel Newbies  " , en kernelnewbies.org (consultado el 24 de febrero de 2021 ) .
  76. "  Linux_4.15 - Linux Kernel Newbies  " , en kernelnewbies.org (consultado el 24 de febrero de 2021 ) .
  77. “  Linux_4.16 - Linux Kernel Newbies  ” , en kernelnewbies.org (consultado el 24 de febrero de 2021 ) .
  78. “  Linux_4.17 - Linux Kernel Newbies  ” , en kernelnewbies.org (consultado el 24 de febrero de 2021 ) .
  79. "  Linux_4.18 - Linux Kernel Newbies  " , en kernelnewbies.org (consultado el 24 de febrero de 2021 ) .
  80. "  Linux_4.19 - Linux Kernel Newbies  " , en kernelnewbies.org (consultado el 24 de febrero de 2021 ) .
  81. "  Linux_4.20 - Linux Kernel Newbies  " , en kernelnewbies.org (consultado el 24 de febrero de 2021 ) .
  82. “  Lanzamiento del kernel 5.0 de Linux - LinuxFr.org  ” , en linuxfr.org (consultado el 24 de febrero de 2021 ) .
  83. “  Lanzamiento del kernel de Linux 5.1 - LinuxFr.org  ” , en linuxfr.org (consultado el 24 de febrero de 2021 ) .
  84. http://lkml.iu.edu/hypermail/linux/kernel/1907.0/05444.html
  85. https://lore.kernel.org/lkml/CAHk-=wiP4K8DRJWsCo=20hn_6054xBamGKF2kPgUzpB5aMaofA@mail.gmail.com/
  86. https://lore.kernel.org/lkml/CAHk-=wjmzaD=BZ1hjUYu+RTnSGDLfCRwCdg99GeQpCjEwo9uzw@mail.gmail.com/
  87. https://lore.kernel.org/lkml/CAHk-=wigRZ6TSJU09bMk3Df2DiOw83B7TrQUq+iXroQCK5EVAQ@mail.gmail.com/
  88. https://lore.kernel.org/lkml/CAHk-=wi9ZT7Stg-uSpX0UWQzam6OP9Jzz6Xu1CkYu1cicpD5OA@mail.gmail.com/
  89. https://lore.kernel.org/lkml/CAHk-=wiZGrCkiBB1V7bxp8NZH6yWi9mPM4ptMW16OzOiNprBFA@mail.gmail.com/
  90. https://lore.kernel.org/lkml/CAHk-=wj+mDPbj8hXspXRAksh+1TmPjubc9RNEbu8EVpYyypX=w@mail.gmail.com/
  91. https://lore.kernel.org/lkml/CAHk-=wi-u86++np80GQvgDuARdt9xpBNho6SjHLmYgm8jibGag@mail.gmail.com/
  92. https://lore.kernel.org/lkml/CAHk-=whCKhxNyKn1Arut8xUDKTwp3fWcCj_jbL5dbzkUmo45gQ@mail.gmail.com/
  93. https://lore.kernel.org/lkml/CAHk-=wg8LpRi9+P2_V+ehJ2_EoJifNh2QmVf47aLXfkCd-1UAQ@mail.gmail.com/
  94. Distribución del kernel de Linux
  95. "¡NOTA! Detesto el modelo SCM centralizado" Mensaje de Torvalds en la Lista de correo del Kernel
  96. Linux Torvalds, "  Kernel SCM saga ...  " ,2005(consultado el 5 de noviembre de 2009 )
  97. (en) Lista de distribución del kernel de Linux, "  Linux 2.6.12  " ,17 de junio de 2005
  98. "  Graph on Top500.org  " ( ArchivoWikiwixArchive.isGoogle • ¿Qué hacer? ) (Consultado el 30 de marzo de 2013 )
  99. Linux Journal 1997
  100. El mundo de la informática 07/07/2005
  101. (en) John P. Mello Jr. desarrollador Raps Seguridad Linux  " en LinuxInsider ,1 st de enero de de 2005(consultado el 13 de enero de 2013 )
  102. (in) política hacia el sistema LSM grsecurity.net
  103. (in) Artículo de lwn.net sobre el pasaje en LSM de API estática

Apéndices

Artículos relacionados

Filmografia

  • Revolution OS , de JTS Moore  (en) 2001
  • Nombre en clave: Linux , por Hannu Puttonen, 2002

enlaces externos