Linux ( / ˈlɪnʊks / , LIN -uuks ) [ 11 ] es una familia de sistemas operativos tipo Unix de código abierto basados en el núcleo Linux , [ 12] un núcleo de sistema operativo lanzado por primera vez el 17 de septiembre de 1991 por Linus Torvalds . [ 13] [14] [15] Linux generalmente se empaqueta como una distribución de Linux (distro), que incluye el núcleo y el software y las bibliotecas del sistema de soporte , muchas de las cuales son proporcionadas por el Proyecto GNU .
Las distribuciones Linux más populares [16] [17] [18] incluyen Debian , Fedora Linux , Arch Linux y Ubuntu . Las distribuciones comerciales incluyen Red Hat Enterprise Linux y SUSE Linux Enterprise . Las distribuciones Linux de escritorio incluyen un sistema de ventanas como X11 o Wayland y un entorno de escritorio como GNOME , KDE Plasma o Xfce . Las distribuciones destinadas a servidores pueden no tener una interfaz gráfica de usuario en absoluto o incluir una pila de soluciones como LAMP . Muchas distribuciones Linux usan la palabra "Linux" en su nombre, pero la Free Software Foundation usa y recomienda el nombre " GNU/Linux " para enfatizar el uso y la importancia del software GNU en muchas distribuciones, lo que causa cierta controversia . [19] [20] Debido a que Linux se redistribuye libremente, cualquiera puede crear una distribución para cualquier propósito. [21]
Linux fue desarrollado originalmente para computadoras personales basadas en la arquitectura Intel x86 , pero desde entonces ha sido portado a más plataformas que cualquier otro sistema operativo. [22] Debido al predominio de Android basado en Linux en los teléfonos inteligentes , Linux, incluido Android, tiene la base instalada más grande de todos los sistemas operativos de propósito general a mayo de 2022. [actualizar][ 23] [24] [25] Linux es, a marzo de 2024 [actualizar], utilizado por alrededor del 4 por ciento de las computadoras de escritorio . [26] El Chromebook , que ejecuta ChromeOS basado en el kernel de Linux , domina el mercado de educación K-12 de EE. UU. y representa casi el 20 por ciento de las ventas de portátiles de menos de $ 300 en EE. UU. [27] Linux es el sistema operativo líder en servidores (más del 96,4% de los sistemas operativos del millón de servidores web más importantes son Linux), [28] lidera otros sistemas de gran tamaño como los mainframes y se utiliza en los 500 superordenadores más rápidos del mundo [d] (a noviembre de 2017 [actualizar], habiendo desplazado gradualmente a todos los competidores). [29] [30] [31]
Linux también se ejecuta en sistemas integrados , es decir, dispositivos cuyo sistema operativo suele estar integrado en el firmware y está muy adaptado al sistema. Esto incluye enrutadores , controles de automatización , dispositivos domésticos inteligentes , consolas de videojuegos , [32] televisores ( televisores inteligentes Samsung y LG ), [33] [34] [35] automóviles (Tesla, Audi, Mercedes-Benz, Hyundai y Toyota), [36] y naves espaciales ( cohete Falcon 9 , cápsula de tripulación Dragon y el rover Perseverance ). [37] [38]
Linux es uno de los ejemplos más destacados de colaboración entre software libre y de código abierto . El código fuente puede ser utilizado, modificado y distribuido comercial o no comercialmente por cualquier persona bajo los términos de sus respectivas licencias, como la Licencia Pública General GNU (GPL). El núcleo Linux, por ejemplo, está licenciado bajo la GPLv2, con una excepción para las llamadas al sistema que permite que el código que llama al núcleo a través de llamadas al sistema no esté licenciado bajo la GPL. [39] [40] [21]
El sistema operativo Unix fue concebido e implementado en 1969, en los Bell Labs de AT&T , en los Estados Unidos, por Ken Thompson , Dennis Ritchie , Douglas McIlroy y Joe Ossanna . [41] Lanzado por primera vez en 1971, Unix fue escrito completamente en lenguaje ensamblador , como era una práctica común en ese momento. En 1973, en un enfoque pionero clave, fue reescrito en el lenguaje de programación C por Dennis Ritchie (excepto algunas rutinas de hardware y E/S). La disponibilidad de una implementación de lenguaje de alto nivel de Unix facilitó su adaptación a diferentes plataformas informáticas. [42]
Debido a un caso antimonopolio anterior [ especificar ] que le prohibía [ especificar ] entrar en el negocio de las computadoras, AT&T licenció el código fuente del sistema operativo como secreto comercial a cualquiera que lo solicitara. [ aclaración necesaria ] Como resultado, Unix creció rápidamente y fue ampliamente adoptado por instituciones académicas y empresas. En 1984, AT&T se deshizo de sus compañías operativas regionales y quedó liberada de su obligación de no entrar en el negocio de las computadoras; liberado de esa obligación, Bell Labs comenzó a vender Unix como un producto propietario , donde los usuarios no tenían permitido legalmente modificarlo. [ 43 ] [ 44 ]
Onyx Systems comenzó a vender las primeras estaciones de trabajo Unix basadas en microcomputadoras en 1980. Más tarde, Sun Microsystems , fundada como una escisión de un proyecto estudiantil en la Universidad de Stanford , también comenzó a vender estaciones de trabajo de escritorio basadas en Unix en 1982. Si bien las estaciones de trabajo Sun no usaban hardware de PC comercial, para el cual Linux se desarrolló originalmente más tarde, representaron el primer intento comercial exitoso de distribuir una microcomputadora principalmente de un solo usuario que ejecutaba un sistema operativo Unix. [45] [46]
Con Unix cada vez más "encerrado" como un producto propietario, el Proyecto GNU , iniciado en 1983 por Richard Stallman , tenía el objetivo de crear un "sistema de software compatible con Unix completo" compuesto enteramente de software libre . El trabajo comenzó en 1984. [47] Más tarde, en 1985, Stallman inició la Free Software Foundation y escribió la Licencia Pública General GNU (GNU GPL) en 1989. A principios de la década de 1990, muchos de los programas necesarios en un sistema operativo (como bibliotecas, compiladores , editores de texto , un shell de línea de comandos y un sistema de ventanas ) estaban completos, aunque elementos de bajo nivel como controladores de dispositivos , daemons y el núcleo , llamado GNU Hurd , estaban estancados e incompletos. [48]
Minix fue creado por Andrew S. Tanenbaum , un profesor de informática , y lanzado en 1987 como un sistema operativo minimalista similar a Unix dirigido a estudiantes y otras personas que querían aprender los principios de los sistemas operativos. Aunque el código fuente completo de Minix estaba disponible de forma gratuita, los términos de la licencia impidieron que se convirtiera en software libre hasta que se modificó la licencia en abril de 2000. [49]
Aunque no se lanzó hasta 1992, debido a complicaciones legales , el desarrollo de 386BSD , del que descendieron NetBSD , OpenBSD y FreeBSD , fue anterior al de Linux. Linus Torvalds ha declarado en distintas ocasiones que si el núcleo GNU o 386BSD hubieran estado disponibles en ese momento (1991), probablemente no habría creado Linux. [50] [51]
Mientras asistía a la Universidad de Helsinki en el otoño de 1990, Torvalds se inscribió en un curso de Unix. [52] El curso usaba una minicomputadora MicroVAX que ejecutaba Ultrix , y uno de los textos obligatorios era Operating Systems: Design and Implementation de Andrew S. Tanenbaum . Este libro de texto incluía una copia del sistema operativo Minix de Tanenbaum . Fue con este curso que Torvalds se expuso por primera vez a Unix. En 1991, sintió curiosidad por los sistemas operativos. [53] Frustrado por la licencia de Minix, que en ese momento lo limitaba solo a uso educativo, [49] comenzó a trabajar en el núcleo de su sistema operativo, que eventualmente se convirtió en el núcleo Linux.
El 3 de julio de 1991, para implementar las llamadas al sistema Unix , Linus Torvalds intentó sin éxito obtener una copia digital de la documentación de los estándares POSIX con una solicitud al grupo de noticias comp.os.minix . [54] Después de no encontrar la documentación POSIX, Torvalds inicialmente recurrió a determinar las llamadas al sistema de la documentación de SunOS propiedad de la universidad para su uso en el funcionamiento de su servidor Sun Microsystems . También aprendió algunas llamadas al sistema del texto Minix de Tanenbaum.
Torvalds comenzó el desarrollo del núcleo Linux en Minix y las aplicaciones escritas para Minix también se usaron en Linux. Más tarde, Linux maduró y se llevó a cabo un mayor desarrollo del núcleo Linux en sistemas Linux. [55] Las aplicaciones GNU también reemplazaron a todos los componentes Minix, porque era ventajoso usar el código disponible libremente del Proyecto GNU con el incipiente sistema operativo; el código licenciado bajo la GPL de GNU puede reutilizarse en otros programas de computadora siempre que también se publiquen bajo la misma licencia o una compatible. Torvalds inició un cambio de su licencia original, que prohibía la redistribución comercial, a la GPL de GNU. [56] Los desarrolladores trabajaron para integrar los componentes GNU con el núcleo Linux, creando un sistema operativo completamente funcional y libre. [57]
Linus Torvalds había querido llamar a su invento " Freax ", una combinación de "free", "freak" y "x" (como alusión a Unix). Durante el comienzo de su trabajo en el sistema, algunos de los makefiles del proyecto incluyeron el nombre "Freax" durante aproximadamente medio año. Inicialmente, Torvalds consideró el nombre "Linux", pero lo descartó por ser demasiado egoísta. [58]
Para facilitar el desarrollo, los archivos se subieron al servidor FTP ( ftp.funet.fi
) de FUNET en septiembre de 1991. Ari Lemmke, compañero de trabajo de Torvalds en la Universidad Tecnológica de Helsinki (HUT) que era uno de los administradores voluntarios del servidor FTP en ese momento, no pensó que "Freax" fuera un buen nombre, por lo que nombró el proyecto "Linux" en el servidor sin consultar a Torvalds. [58] Más tarde, sin embargo, Torvalds consintió en usar "Linux".
Según una publicación en un grupo de noticias de Torvalds, [11] la palabra "Linux" debería pronunciarse ( / ˈ l ɪ n ʊ k s / LIN-uuks) con una 'i' corta como en 'print' y 'u' como en 'blunt'. Para demostrar aún más cómo se debe pronunciar la palabra "Linux", incluyó una guía de audio con el código fuente del núcleo.[59]Sin embargo, en esta grabación, pronuncia Linux como/ˈlinʊks/(LEEN-uuks) con una vocal frontal no redondeada corta perocerrada, en lugar de unavocal frontal no redondeada casi cerradacomo en su publicación en el grupo de noticias.
La adopción de Linux en entornos de producción, en lugar de ser utilizado únicamente por aficionados, comenzó a despegar a mediados de la década de 1990 en la comunidad de supercomputación, donde organizaciones como la NASA comenzaron a reemplazar sus máquinas cada vez más caras con clústeres de computadoras de consumo de bajo costo que ejecutaban Linux. El uso comercial comenzó cuando Dell e IBM , seguidas por Hewlett-Packard , comenzaron a ofrecer soporte para Linux para escapar del monopolio de Microsoft en el mercado de sistemas operativos de escritorio. [60]
Hoy en día, los sistemas Linux se utilizan en toda la informática, desde los sistemas integrados hasta prácticamente todas las supercomputadoras , [31] [61] y se han asegurado un lugar en las instalaciones de servidores como la popular pila de aplicaciones LAMP . El uso de distribuciones de Linux en los escritorios domésticos y empresariales ha ido creciendo. [62] [63] [64] [65] [66] [67] [68] Las distribuciones de Linux también se han vuelto populares en el mercado de netbooks , con muchos dispositivos que se envían con distribuciones de Linux personalizadas instaladas y Google lanzando su propio ChromeOS diseñado para netbooks.
El mayor éxito de Linux en el mercado de consumo es quizás el mercado de dispositivos móviles, con Android siendo el sistema operativo dominante en los teléfonos inteligentes y muy popular en tabletas y, más recientemente, en los wearables . Los juegos de Linux también están en aumento con Valve mostrando su apoyo a Linux y lanzando SteamOS , su propia distribución de Linux orientada a los juegos, que luego se implementó en su plataforma Steam Deck . Las distribuciones de Linux también han ganado popularidad entre varios gobiernos locales y nacionales, como el gobierno federal de Brasil . [69]
Linus Torvalds es el principal mantenedor del núcleo Linux y guía su desarrollo, mientras que Greg Kroah-Hartman es el principal mantenedor de la rama estable. [70] Zoë Kooyman es la directora ejecutiva de la Free Software Foundation, [71] que a su vez apoya los componentes GNU. [72] Finalmente, individuos y corporaciones desarrollan componentes de terceros que no son GNU. Estos componentes de terceros comprenden un vasto cuerpo de trabajo y pueden incluir tanto módulos del núcleo como aplicaciones y bibliotecas de usuario.
Los proveedores y comunidades de Linux combinan y distribuyen el núcleo, los componentes GNU y los componentes que no son GNU, con software de gestión de paquetes adicional en forma de distribuciones de Linux.
Muchos desarrolladores de software de código abierto coinciden en que el núcleo de Linux no fue diseñado, sino que evolucionó a través de la selección natural . Torvalds considera que, aunque el diseño de Unix sirvió como andamiaje, "Linux creció con muchas mutaciones, y como las mutaciones no eran aleatorias, eran más rápidas y más dirigidas que las partículas alfa del ADN ". [73] Eric S. Raymond considera que los aspectos revolucionarios de Linux son sociales, no técnicos: antes de Linux, el software complejo era diseñado cuidadosamente por pequeños grupos, pero "Linux evolucionó de una manera completamente diferente. Desde casi el principio, fue hackeado de manera bastante casual por una gran cantidad de voluntarios que se coordinaban solo a través de Internet. La calidad se mantenía no mediante estándares rígidos o autocracia, sino mediante la estrategia ingenuamente simple de publicar cada semana y obtener retroalimentación de cientos de usuarios en cuestión de días, creando una especie de selección darwiniana rápida sobre las mutaciones introducidas por los desarrolladores". [74] Bryan Cantrill , un ingeniero de un sistema operativo competidor, está de acuerdo en que "Linux no fue diseñado, evolucionó", pero considera que esto es una limitación y propone que algunas características, especialmente las relacionadas con la seguridad, [75] no pueden evolucionar hasta convertirse en "al fin y al cabo, no es un sistema biológico, es un sistema de software". [76]
Un sistema basado en Linux es un sistema operativo modular similar a Unix, que deriva gran parte de su diseño básico de los principios establecidos en Unix durante las décadas de 1970 y 1980. Un sistema de este tipo utiliza un núcleo monolítico , el núcleo Linux, que maneja el control de procesos, la red, el acceso a los periféricos y los sistemas de archivos . Los controladores de dispositivos se integran directamente con el núcleo o se agregan como módulos que se cargan mientras el sistema está en ejecución. [77]
El espacio de usuario de GNU es una parte clave de la mayoría de los sistemas basados en el núcleo Linux, siendo Android la notable excepción. La biblioteca C de GNU , una implementación de la biblioteca estándar de C , funciona como un contenedor para las llamadas del sistema del núcleo Linux necesarias para la interfaz núcleo-espacio de usuario, la cadena de herramientas es una amplia colección de herramientas de programación vitales para el desarrollo de Linux (incluidos los compiladores utilizados para construir el propio núcleo Linux), y los coreutils implementan muchas herramientas básicas de Unix . El Proyecto GNU también desarrolla Bash , un popular shell CLI . La interfaz gráfica de usuario (o GUI) utilizada por la mayoría de los sistemas Linux está construida sobre una implementación del Sistema de ventanas X. [ 78] Más recientemente, la comunidad Linux ha buscado avanzar a Wayland como el nuevo protocolo de servidor de pantalla, en lugar de X11. Muchos otros proyectos de software de código abierto contribuyen a los sistemas Linux.
Los componentes instalados de un sistema Linux incluyen los siguientes: [78] [80]
La interfaz de usuario , también conocida como shell , es una interfaz de línea de comandos (CLI), una interfaz gráfica de usuario (GUI) o controles adjuntos al hardware asociado, lo que es común en los sistemas integrados. En los sistemas de escritorio, la interfaz de usuario predeterminada suele ser gráfica, aunque la CLI suele estar disponible a través de ventanas de emulador de terminal o en una consola virtual independiente .
Los shells CLI son interfaces de usuario basadas en texto, que utilizan texto tanto para la entrada como para la salida. El shell dominante utilizado en Linux es Bourne-Again Shell (bash), desarrollado originalmente para el Proyecto GNU. La mayoría de los componentes de Linux de bajo nivel, incluidas varias partes del espacio de usuario , utilizan exclusivamente el CLI. El CLI es particularmente adecuado para la automatización de tareas repetitivas o retrasadas y proporciona una comunicación entre procesos muy simple .
En los sistemas de escritorio, las interfaces de usuario más populares son las interfaces gráficas de usuario (GUI) , que se incluyen junto con los entornos de escritorio más amplios, como KDE Plasma , GNOME , MATE , Cinnamon , LXDE , Pantheon y Xfce , aunque existe una variedad de interfaces de usuario adicionales. Las interfaces de usuario más populares se basan en el sistema X Window, a menudo llamado simplemente "X". Proporciona transparencia de red y permite que una aplicación gráfica que se ejecuta en un sistema se muestre en otro donde un usuario puede interactuar con la aplicación; sin embargo, ciertas extensiones del sistema X Window no son capaces de funcionar a través de la red. [81] Existen varios servidores de visualización X, siendo la implementación de referencia, X.Org Server , la más popular.
Las distribuciones de servidor pueden proporcionar una interfaz de línea de comandos para desarrolladores y administradores, pero también ofrecen una interfaz personalizada para los usuarios finales, diseñada para el caso de uso del sistema. A esta interfaz personalizada se accede a través de un cliente que reside en otro sistema, no necesariamente basado en Linux.
Existen varios tipos de gestores de ventanas para X11, entre los que se incluyen el de mosaico , el dinámico , el de apilamiento y el de composición . Los gestores de ventanas proporcionan medios para controlar la colocación y la apariencia de las ventanas de aplicaciones individuales e interactúan con el sistema X Window. Los gestores de ventanas X más simples , como dwm , ratpoison o i3wm, proporcionan una funcionalidad minimalista , mientras que los gestores de ventanas más elaborados, como FVWM , Enlightenment o Window Maker, proporcionan más funciones, como una barra de tareas integrada y temas , pero siguen siendo ligeros en comparación con los entornos de escritorio. Los entornos de escritorio incluyen gestores de ventanas como parte de sus instalaciones estándar, como Mutter (GNOME), KWin (KDE) o Xfwm (xfce), aunque los usuarios pueden elegir utilizar un gestor de ventanas diferente si lo prefieren.
Wayland es un protocolo de servidor de visualización pensado como reemplazo del protocolo X11; a partir de 2022 [actualizar], ha recibido una adopción relativamente amplia. [82] A diferencia de X11, Wayland no necesita un administrador de ventanas externo y un administrador de composición. Por lo tanto, un compositor Wayland asume el papel de servidor de visualización, administrador de ventanas y administrador de composición. Weston es la implementación de referencia de Wayland, mientras que Mutter de GNOME y KWin de KDE se están portando a Wayland como servidores de visualización independientes. Enlightenment ya se ha portado con éxito desde la versión 19. [83] Además, se han creado muchos administradores de ventanas para Wayland, como Sway o Hyprland, así como otras utilidades gráficas como Waybar o Rofi.
Actualmente, Linux cuenta con dos API de espacio de usuario de kernel modernas para manejar dispositivos de entrada de video: API V4L2 para transmisiones de video y radio, y API DVB para recepción de TV digital. [84]
Debido a la complejidad y diversidad de los distintos dispositivos, y debido a la gran cantidad de formatos y estándares que manejan esas API, esta infraestructura necesita evolucionar para adaptarse mejor a otros dispositivos. Además, una buena biblioteca de dispositivos de espacio de usuario es la clave para el éxito de tener aplicaciones de espacio de usuario que puedan funcionar con todos los formatos compatibles con esos dispositivos. [85] [86]
La principal diferencia entre Linux y muchos otros sistemas operativos contemporáneos populares es que el núcleo Linux y otros componentes son software libre y de código abierto. Linux no es el único sistema operativo de este tipo, aunque es, con diferencia, el más utilizado. [87] Algunas licencias de software libre y de código abierto se basan en el principio de copyleft , una especie de reciprocidad: cualquier obra derivada de un software copyleft también debe ser copyleft en sí misma. La licencia de software libre más común, la Licencia Pública General GNU (GPL), es una forma de copyleft y se utiliza para el núcleo Linux y muchos de los componentes del Proyecto GNU. [88]
Las distribuciones basadas en Linux están diseñadas por los desarrolladores para la interoperabilidad con otros sistemas operativos y estándares informáticos establecidos. Los sistemas Linux se adhieren a los estándares POSIX, [89] SUS , [90] LSB , ISO y ANSI siempre que sea posible, aunque hasta la fecha solo una distribución Linux ha sido certificada POSIX.1, Linux-FT. [91] [92]
Los proyectos de software libre, aunque se desarrollan mediante colaboración , suelen producirse de forma independiente unos de otros. Sin embargo, el hecho de que las licencias de software permitan explícitamente la redistribución proporciona una base para proyectos de mayor escala que recopilan el software producido por proyectos independientes y lo ponen a disposición de todos a la vez en forma de una distribución Linux.
Muchas distribuciones de Linux administran una colección remota de paquetes de software de sistema y de software de aplicación disponibles para su descarga e instalación a través de una conexión de red. Esto permite a los usuarios adaptar el sistema operativo a sus necesidades específicas. Las distribuciones son mantenidas por individuos, equipos poco cohesionados, organizaciones de voluntarios y entidades comerciales. Una distribución es responsable de la configuración predeterminada del núcleo Linux instalado, la seguridad general del sistema y, de manera más general, la integración de los diferentes paquetes de software en un todo coherente. Las distribuciones suelen utilizar un administrador de paquetes como apt , yum , zypper , pacman o portage para instalar, eliminar y actualizar todo el software de un sistema desde una ubicación central. [93]
Una distribución está impulsada en gran medida por sus comunidades de desarrolladores y usuarios. Algunos proveedores desarrollan y financian sus distribuciones de forma voluntaria, siendo Debian un ejemplo bien conocido. Otros mantienen una versión comunitaria de sus distribuciones comerciales, como lo hace Red Hat con Fedora y SUSE con openSUSE . [94] [95]
En muchas ciudades y regiones, las asociaciones locales conocidas como Grupos de Usuarios de Linux (LUGs) buscan promover su distribución preferida y por extensión el software libre. Celebran reuniones y proporcionan demostraciones gratuitas, formación, soporte técnico e instalación del sistema operativo a los nuevos usuarios. Muchas comunidades de Internet también proporcionan soporte a los usuarios y desarrolladores de Linux. La mayoría de las distribuciones y proyectos de software libre/código abierto tienen salas de chat o grupos de noticias de IRC . Los foros en línea son otro medio de soporte, con ejemplos notables siendo LinuxQuestions.org y los diversos foros de soporte y comunidad específicos de la distribución, como los de Ubuntu , Fedora, Arch Linux , Gentoo , etc. Las distribuciones de Linux albergan listas de correo ; comúnmente habrá un tema específico como uso o desarrollo para una lista dada.
Existen varios sitios web de tecnología centrados en Linux. Las revistas impresas sobre Linux suelen incluir discos con portadas que contienen software o incluso distribuciones completas de Linux. [96] [97]
Aunque las distribuciones de Linux están generalmente disponibles sin cargo, varias grandes corporaciones venden, respaldan y contribuyen al desarrollo de los componentes del sistema y software libre. Un análisis del núcleo de Linux en 2017 mostró que más del 85% del código fue desarrollado por programadores a quienes se les paga por su trabajo, dejando aproximadamente el 8,2% a desarrolladores no remunerados y el 4,1% sin clasificar. [98] Algunas de las principales corporaciones que brindan contribuciones incluyen Intel , Samsung , Google , AMD , Oracle y Facebook . [98] Varias corporaciones, en particular Red Hat, Canonical y SUSE , han construido un negocio importante en torno a las distribuciones de Linux.
Las licencias de software libre , en las que se basan los distintos paquetes de software de una distribución creada sobre el núcleo Linux, dan cabida y fomentan explícitamente la comercialización; la relación entre una distribución Linux en su conjunto y los proveedores individuales puede considerarse simbiótica . Un modelo de negocio habitual de los proveedores comerciales es el cobro de asistencia, especialmente para los usuarios empresariales. Varias empresas también ofrecen una versión empresarial especializada de su distribución, que añade paquetes de asistencia y herramientas propietarios para administrar un mayor número de instalaciones o simplificar las tareas administrativas.
Otro modelo de negocio es regalar el software para vender hardware. Esta solía ser la norma en la industria informática, con sistemas operativos como CP/M , Apple DOS y versiones del Mac OS clásico anteriores a la 7.6 que se podían copiar libremente (pero no modificar). A medida que el hardware informático se estandarizaba a lo largo de la década de 1980, se hizo más difícil para los fabricantes de hardware obtener beneficios de esta táctica, ya que el sistema operativo podía ejecutarse en cualquier ordenador del fabricante que compartiera la misma arquitectura.
La mayoría de los lenguajes de programación son compatibles con Linux, ya sea directamente o a través de puertos de terceros basados en la comunidad . [99] Las herramientas de desarrollo originales utilizadas para crear aplicaciones Linux y programas de sistema operativo se encuentran dentro de la cadena de herramientas GNU , que incluye GNU Compiler Collection (GCC) y GNU Build System . Entre otros, GCC proporciona compiladores para Ada , C , C++ , Go y Fortran . Muchos lenguajes de programación tienen una implementación de referencia multiplataforma que admite Linux, por ejemplo , PHP , Perl , Ruby , Python , Java , Go , Rust y Haskell . Lanzado por primera vez en 2003, el proyecto LLVM proporciona un compilador alternativo de código abierto multiplataforma para muchos lenguajes. Los compiladores propietarios para Linux incluyen Intel C++ Compiler , Sun Studio y IBM XL C/C++ Compiler . BASIC está disponible en forma procedimental a través de QB64 , PureBasic , Yabasic , GLBasic , Basic4GL , XBasic , wxBasic , SdlBasic y Basic-256 , así como en forma orientada a objetos a través de Gambas , FreeBASIC , B4X , Basic for Qt, Phoenix Object Basic, NS Basic , ProvideX, Chipmunk Basic , RapidQ y Xojo . Pascal se implementa a través de GNU Pascal , Free Pascal y Virtual Pascal , así como gráficamente a través de Lazarus , PascalABC.NET o Delphi usando FireMonkey (anteriormente a través de Borland Kylix ).
Una característica común de los sistemas tipo Unix es que Linux incluye lenguajes de programación tradicionales de propósito específico destinados a la creación de scripts , el procesamiento de textos y la configuración y administración del sistema en general. Las distribuciones Linux admiten scripts de shell , awk , sed y make . Muchos programas también tienen un lenguaje de programación integrado para permitir la configuración o programación de sí mismos. Por ejemplo, las expresiones regulares son compatibles con programas como grep y locate , el tradicional agente de transferencia de mensajes de Unix Sendmail contiene su propio sistema de scripts completo de Turing y el editor de texto avanzado GNU Emacs está construido alrededor de un intérprete Lisp de propósito general .
La mayoría de las distribuciones también incluyen soporte para PHP , Perl , Ruby , Python y otros lenguajes dinámicos . Aunque no es tan común, Linux también soporta C# y otros lenguajes CLI (a través de Mono ), Vala y Scheme . Guile Scheme actúa como un lenguaje de extensión dirigido a las utilidades del sistema GNU, buscando hacer que los programas C compilados , estáticos y pequeños de diseño Unix sean rápida y dinámicamente extensibles a través de un sistema de scripting de alto nivel elegante y funcional ; muchos programas GNU pueden compilarse con enlaces Guile opcionales para este fin. Una serie de máquinas virtuales Java y kits de desarrollo corren en Linux, incluyendo el JVM original de Sun Microsystems ( HotSpot ), y J2SE RE de IBM, así como muchos proyectos de código abierto como Kaffe y Jikes RVM ; Kotlin , Scala , Groovy y otros lenguajes JVM también están disponibles.
GNOME y KDE son entornos de escritorio populares y proporcionan un marco para desarrollar aplicaciones. Estos proyectos se basan en los kits de herramientas de widgets GTK y Qt , respectivamente, que también se pueden usar independientemente del marco más grande. Ambos admiten una amplia variedad de lenguajes. Hay una serie de entornos de desarrollo integrados disponibles, incluidos Anjuta , Code::Blocks , CodeLite , Eclipse , Geany , ActiveState Komodo , KDevelop , Lazarus , MonoDevelop , NetBeans y Qt Creator , mientras que los editores establecidos desde hace mucho tiempo Vim , nano y Emacs siguen siendo populares. [100]
El kernel de Linux es un kernel de sistema operativo ampliamente portado, disponible para dispositivos que van desde teléfonos móviles a supercomputadoras; se ejecuta en una gama muy diversa de arquitecturas de computadora , incluidos los teléfonos inteligentes Android basados en ARM y los mainframes IBM Z. Existen distribuciones especializadas y bifurcaciones de kernel para arquitecturas menos convencionales; por ejemplo, la bifurcación del kernel ELKS puede ejecutarse en microprocesadores Intel 8086 o Intel 80286 de 16 bits, mientras que la bifurcación del kernel μClinux puede ejecutarse en sistemas sin una unidad de administración de memoria . El kernel también se ejecuta en arquitecturas que solo estaban destinadas a usar un sistema operativo propietario creado por el fabricante, como las computadoras Macintosh [101] [102] (con procesadores PowerPC , Intel y Apple silicon ), PDA , consolas de videojuegos , reproductores de música portátiles y teléfonos móviles.
Linux tiene la reputación de ofrecer un excelente soporte para hardware antiguo, manteniendo controladores estandarizados durante mucho tiempo. [103] Existen varias asociaciones de la industria y conferencias de hardware dedicadas a mantener y mejorar el soporte para hardware diverso en Linux, como FreedomHEC . Con el tiempo, el soporte para hardware diferente ha mejorado en Linux, lo que hace que cualquier compra estándar tenga una "buena posibilidad" de ser compatible. [104]
En 2014, se lanzó una nueva iniciativa para recopilar automáticamente una base de datos de todas las configuraciones de hardware probadas. [105]
Muchos estudios cuantitativos de software libre/de código abierto se centran en temas como la cuota de mercado y la fiabilidad, y numerosos estudios examinan específicamente Linux. [106] El mercado de Linux está creciendo y se espera que el tamaño del mercado del sistema operativo Linux experimente un crecimiento del 19,2% para 2027, alcanzando los 15.640 millones de dólares, en comparación con los 3.890 millones de dólares de 2019. [107] Los analistas proyectan una tasa de crecimiento anual compuesta (CAGR) del 13,7% entre 2024 y 2032, que culminará en un tamaño de mercado de 34.900 millones de dólares para el último año. [108] Los analistas y defensores atribuyen el éxito relativo de Linux a su seguridad, fiabilidad, bajo coste y libertad de dependencia de un proveedor . [109] [110]
El núcleo de Linux está licenciado bajo la Licencia Pública General GNU (GPL), versión 2. La GPL requiere que cualquiera que distribuya software basado en el código fuente bajo esta licencia debe poner el código fuente original (y cualquier modificación) a disposición del destinatario bajo los mismos términos. [132] Otros componentes clave de una distribución típica de Linux también están principalmente licenciados bajo la GPL, pero pueden usar otras licencias; muchas bibliotecas usan la Licencia Pública General Reducida GNU (LGPL), una variante más permisiva de la GPL, y la implementación X.Org del Sistema de Ventanas X usa la Licencia MIT .
Torvalds afirma que el núcleo Linux no pasará de la versión 2 de la GPL a la versión 3. [133] [134] En concreto, le desagradan algunas disposiciones de la nueva licencia que prohíben el uso del software en la gestión de derechos digitales . [135] También sería poco práctico obtener el permiso de todos los titulares de derechos de autor, que se cuentan por miles. [136]
Un estudio de 2001 sobre Red Hat Linux 7.1 descubrió que esta distribución contenía 30 millones de líneas de código fuente . [137] Utilizando el Modelo de Costo Constructivo , el estudio estimó que esta distribución requirió alrededor de ocho mil años-persona de tiempo de desarrollo. Según el estudio, si todo este software se hubiera desarrollado por medios propietarios convencionales, habría costado alrededor de US$ 1.82 mil millones [138] desarrollarlo en 2023 en los Estados Unidos. [137] La mayor parte del código fuente (71%) se escribió en el lenguaje de programación C, pero se utilizaron muchos otros lenguajes, incluidos C++ , Lisp , lenguaje ensamblador, Perl, Python, Fortran y varios lenguajes de scripting de shell . Un poco más de la mitad de todas las líneas de código estaban licenciadas bajo la GPL. El núcleo Linux en sí tenía 2,4 millones de líneas de código, o el 8% del total. [137]
En un estudio posterior, se realizó el mismo análisis para la versión 4.0 de Debian (etch, que se lanzó en 2007). [139] Esta distribución contenía cerca de 283 millones de líneas de código fuente, y el estudio estimó que habría requerido alrededor de setenta y tres mil años-hombre y un costo de 10,2 mil millones de dólares estadounidenses [138] (en dólares de 2023) para desarrollarla por medios convencionales.
En Estados Unidos, el nombre Linux es una marca registrada a nombre de Linus Torvalds. [10] Inicialmente, nadie la registró. Sin embargo, el 15 de agosto de 1994, William R. Della Croce Jr. solicitó la marca Linux y luego exigió regalías a los distribuidores de Linux. En 1996, Torvalds y algunas organizaciones afectadas lo demandaron para que la marca se le asignara a Torvalds y, en 1997, el caso se resolvió. [141] Desde entonces, la concesión de licencias de la marca ha estado a cargo del Linux Mark Institute (LMI). Torvalds ha declarado que registró el nombre solo para evitar que alguien más lo usara. LMI originalmente cobraba una tarifa de sublicencia nominal por el uso del nombre Linux como parte de las marcas registradas, [142] pero luego cambió esto a favor de ofrecer una sublicencia mundial perpetua y gratuita. [143]
La Free Software Foundation (FSF) prefiere GNU/Linux como nombre cuando se refiere al sistema operativo en su conjunto, porque considera que las distribuciones de Linux son variantes del sistema operativo GNU iniciado en 1983 por Richard Stallman , presidente de la FSF. [19] [20] La fundación explícitamente no tiene ningún problema con el nombre Android para el sistema operativo Android, que también es un sistema operativo basado en el núcleo Linux, ya que GNU no es parte de él.
Una minoría de figuras públicas y proyectos de software distintos de Stallman y la FSF, en particular distribuciones que consisten únicamente en software libre, como Debian (que había sido patrocinada por la FSF hasta 1996), [144] también usan GNU/Linux cuando se refieren al sistema operativo en su conjunto. [145] [146] [147] Sin embargo, la mayoría de los medios y el uso común se refieren a esta familia de sistemas operativos simplemente como Linux , al igual que muchas grandes distribuciones de Linux (por ejemplo, SUSE Linux y Red Hat Enterprise Linux ).
A partir de mayo de 2011 [actualizar], entre el 8% y el 13% de las líneas de código de la distribución Linux Ubuntu (versión "Natty") está compuesta por componentes GNU (el rango depende de si GNOME se considera parte de GNU); mientras tanto, el 6% está ocupado por el núcleo Linux, aumentando al 9% cuando se incluyen sus dependencias directas. [148]
La característica común compartida del núcleo es lo que define la pertenencia de un sistema a la familia Linux; las diferentes aplicaciones OSS que pueden interactuar con el núcleo común son lo que diferencia las distribuciones Linux.
la historia.
Sin embargo, UNIX nació en 1969...
En 1982, un grupo de hackers de Unix de Stanford y Berkeley fundó Sun Microsystems con la creencia de que Unix funcionando en hardware basado en 68000 relativamente económico resultaría una combinación ganadora para una amplia variedad de aplicaciones. Tenían razón, y su visión marcó la pauta para toda una industria. Aunque todavía tenían un precio fuera del alcance de la mayoría de las personas, las estaciones de trabajo eran baratas para las corporaciones y las universidades; las redes de ellas (una por usuario) reemplazaron rápidamente a los antiguos VAX y otros sistemas de tiempo compartido.
El copyright de Linux cambiará: He recibido un par de solicitudes para hacerlo compatible con el copyleft de GNU, eliminando la condición de "no puedes distribuirlo por dinero". Estoy de acuerdo. Propongo que se cambie el copyright para que sea compatible con GNU ─ pendiente de la aprobación de las personas que han ayudado a escribir el código. Supongo que esto no será un problema para nadie: si tienes quejas ("Escribí ese código asumiendo que el copyright permanecería igual"), escríbeme. De lo contrario, el copyleft de GNU entra en vigor desde el primero de febrero. Si no conoces la esencia del copyright de GNU, léelo.
{{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{cite web}}
: CS1 maint: varios nombres: lista de autores ( enlace )Nuestro nuevo acuerdo de sublicencia es: Gratuito: los titulares de sublicencias aprobados no pagan tarifas; Perpetuo: la sublicencia finaliza solo en caso de incumplimiento del acuerdo o cuando su organización deja de usar su marca; Mundial: una sublicencia cubre su uso de la marca en cualquier parte del mundo
...hemos intentado usar la palabra "Linux" o la expresión "kernel de Linux" para designar el kernel, y GNU/Linux para designar todo el cuerpo de software del sistema operativo GNU/GPL,... ...mucha gente olvida que la lista de correo del kernel de Linux es un foro para discutir asuntos relacionados con el kernel, no GNU/Linux en general...