El kernel de Linux es un kernel de sistema operativo similar a Unix , en su mayoría libre y de código abierto , [11] monolítico , modular , multitarea . Originalmente fue creado en 1991 por Linus Torvalds para su PC basada en i386 , y pronto fue adoptado como kernel para el sistema operativo GNU , que fue escrito para ser un reemplazo gratuito (libre) para UNIX .
Linux como un todo se publica bajo la Licencia Pública General GNU versión 2 solamente , pero contiene archivos bajo otras licencias compatibles . [ 10] Sin , Linux comenzó incluir blobs binarios propietarios en su árbol fuente y distribución principal en 1996 . kernel, que eventualmente condujo a la fundación del proyecto Linux-libre . [ cita requerida ]
Desde finales de la década de 1990, se ha incluido como parte de una gran cantidad de distribuciones de sistemas operativos , muchas de las cuales comúnmente también se denominan Linux . Sin embargo, existe una controversia en torno a la denominación de dichos sistemas; algunas personas, incluido Richard Stallman , argumentan que llamar a estos sistemas "Linux" es erróneo porque el sistema operativo es en realidad GNU en su mayoría , y el kernel de Linux es un componente agregado más tarde en 1992, 9 años después del inicio del proyecto GNU en 1983, por lo tanto, en su lugar se debe usar el nombre "GNU+Linux" o "GNU/Linux".
Linux se implementa en una amplia variedad de sistemas informáticos, como dispositivos integrados , dispositivos móviles (incluido su uso en el sistema operativo Android ), computadoras personales , servidores , mainframes y supercomputadoras . [12] Se puede adaptar para arquitecturas específicas y para varios escenarios de uso usando una familia de comandos simples (es decir, sin la necesidad de editar manualmente su código fuente antes de la compilación); [13] [14] [15] Los usuarios privilegiados también pueden ajustar los parámetros del kernel en tiempo de ejecución. [16] [17] [18]La mayor parte del código del kernel de Linux está escrito usando las extensiones GNU de GCC [19] [20] para el lenguaje de programación C estándar y con el uso de instrucciones específicas de arquitectura ( ISA ). Esto produce un ejecutable altamente optimizado ( vmlinux ) con respecto a la utilización del espacio de memoria y los tiempos de ejecución de tareas. [21]
Las discusiones diarias sobre desarrollo tienen lugar en la lista de correo del kernel de Linux (LKML). Los cambios se rastrean mediante el sistema de control de versiones git , creado originalmente por Torvalds como un reemplazo de software gratuito para BitKeeper .
En abril de 1991, Linus Torvalds , en ese momento un estudiante de informática de 21 años en la Universidad de Helsinki , Finlandia , comenzó a trabajar en algunas ideas simples para un sistema operativo inspirado en UNIX, para una computadora personal. [22] Comenzó con un conmutador de tareas en lenguaje ensamblador Intel 80386 y un controlador de terminal . [22] El 25 de agosto de 1991, Torvalds publicó lo siguiente en comp.os.minix , un grupo de noticias en Usenet : [23]