Linux ( / ˈ l ɪ n ʊ k s / , LIN -uuks ) [11] es un nombre genérico para una familia de sistemas operativos de código abierto similares a Unix basados en el kernel de Linux , [12] un kernel de sistema operativo lanzado por primera vez. el 17 de septiembre de 1991, por Linus Torvalds . [13] [14] [15] Linux normalmente se empaqueta como una distribución de Linux (distro), que incluye el kernel y el software y las bibliotecas del sistema de soporte , muchos de los cuales son proporcionados por el Proyecto GNU .
Las distribuciones populares de Linux [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 de escritorio de Linux incluyen un sistema de ventanas como X11 o Wayland y un entorno de escritorio como GNOME , KDE Plasma o Xfce . Es posible que las distribuciones destinadas a servidores no tengan ninguna interfaz gráfica de usuario o incluyan una pila de soluciones como LAMP . Como Linux se puede redistribuir libremente, cualquiera puede crear una distribución para cualquier propósito. [19]
Linux se desarrolló originalmente para computadoras personales basadas en la arquitectura Intel x86 , pero desde entonces se ha adaptado a más plataformas que cualquier otro sistema operativo. [20] 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 en mayo de 2022 [actualizar]. [21] [22] [23] Linux, en marzo de 2024 [actualizar], es utilizado por alrededor del 4 por ciento de las computadoras de escritorio . [24] 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 dólares en EE. UU. [25] 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), [26] lidera otros grandes sistemas de hierro, como las computadoras centrales , y se utiliza en todos los sistemas operativos del mundo. 500 supercomputadoras más rápidas [d] (a noviembre de 2017 [actualizar], habiendo desplazado gradualmente a todos los competidores). [27] [28] [29]
Linux también se ejecuta en sistemas integrados , es decir, dispositivos cuyo sistema operativo suele estar integrado en el firmware y está altamente adaptado al sistema. Esto incluye enrutadores , controles de automatización , dispositivos domésticos inteligentes , consolas de videojuegos , [30] televisores (Samsung y LG Smart TV ), [31] [32] [33] automóviles (Tesla, Audi, Mercedes-Benz, Hyundai y Toyota). ), [34] y naves espaciales ( cohete Falcon 9 , cápsula de tripulación Dragon y rover Perseverance ). [35] [36]
Linux es uno de los ejemplos más destacados de colaboración de software gratuito y de código abierto . El código fuente puede ser utilizado, modificado y distribuido con fines comerciales o no comerciales por cualquier persona según los términos de sus respectivas licencias, como la Licencia Pública General GNU (GPL). El kernel de Linux, por ejemplo, tiene licencia GPLv2, con una excepción para las llamadas al sistema que permite que el código que llama al kernel a través de llamadas al sistema no tenga licencia GPL. [37] [38] [19]
El sistema operativo Unix fue concebido e implementado en 1969, en los Bell Labs de AT&T , en Estados Unidos, por Ken Thompson , Dennis Ritchie , Douglas McIlroy y Joe Ossanna . [39] 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, Dennis Ritchie lo reescribió en el lenguaje de programación C (a excepción de algunas rutinas de E/S y hardware). La disponibilidad de una implementación de lenguaje de alto nivel de Unix facilitó su migración a diferentes plataformas informáticas. [40]
Debido a un caso antimonopolio anterior [ especificar ] que le prohibía [ especificar ] ingresar al negocio de las computadoras, AT&T otorgó la licencia del código fuente del sistema operativo como secreto comercial a cualquiera que lo solicitara. [ se necesita aclaración ] Como resultado, Unix creció rápidamente y fue ampliamente adoptado por instituciones académicas y empresas. En 1984, AT&T se deshizo de sus empresas operativas regionales y quedó liberada de su obligación de no ingresar al 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. [41] [42]
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 utilizaban productos básicos El hardware de PC, para el cual posteriormente se desarrolló originalmente Linux, representó el primer intento comercial exitoso de distribuir una microcomputadora principalmente para un solo usuario que ejecutaba un sistema operativo Unix. [43] [44]
Con Unix cada vez más "bloqueado" como producto propietario, el Proyecto GNU , iniciado en 1983 por Richard Stallman , tenía el objetivo de crear un "sistema de software completo compatible con Unix" compuesto enteramente de software libre . El trabajo comenzó en 1984. [45] Posteriormente, en 1985, Stallman fundó 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 ) se completaron, aunque elementos de bajo nivel como controladores de dispositivos , demonios y el kernel , llamado GNU Hurd , estaban estancados e incompletos. [46]
Minix fue creado por Andrew S. Tanenbaum , un profesor de informática , y lanzado en 1987 como un sistema operativo mínimo 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 gratuitamente, los términos de la licencia impidieron que fuera software libre hasta que la licencia cambió en abril de 2000. [47]
Aunque no se lanzó hasta 1992, debido a complicaciones legales , el desarrollo de 386BSD , del cual descendieron NetBSD , OpenBSD y FreeBSD , fue anterior al de Linux. Linus Torvalds ha declarado en distintas ocasiones que si el kernel GNU o 386BSD hubieran estado disponibles en ese momento (1991), probablemente no habría creado Linux. [48] [49]
Mientras asistía a la Universidad de Helsinki en el otoño de 1990, Torvalds se matriculó en un curso de Unix. [50] El curso utilizó una minicomputadora MicroVAX con Ultrix , y uno de los textos requeridos fue Sistemas operativos: diseño e implementación de Andrew S. Tanenbaum . Este libro de texto incluía una copia del sistema operativo Minix de Tanenbaum . Fue con este curso que Torvalds conoció Unix por primera vez. En 1991, sintió curiosidad por los sistemas operativos. [51] Frustrado por la licencia de Minix, que en ese momento lo limitaba solo al uso educativo, [47] comenzó a trabajar en el kernel de su sistema operativo, que eventualmente se convirtió en el kernel de 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 . [52] Después de no encontrar la documentación POSIX, Torvalds inicialmente recurrió a determinar las llamadas al sistema de la documentación SunOS propiedad de la universidad para usar en la operación de su servidor Sun Microsystems . También aprendió algunas llamadas al sistema del texto Minix de Tanenbaum.
Torvalds comenzó el desarrollo del kernel de Linux en Minix y las aplicaciones escritas para Minix también se utilizaron en Linux. Más tarde, Linux maduró y se llevó a cabo un mayor desarrollo del kernel de Linux en los sistemas Linux. [53] Las aplicaciones GNU también reemplazaron todos los componentes Minix, porque era ventajoso usar el código disponible gratuitamente del Proyecto GNU con el incipiente sistema operativo; El código con licencia GNU GPL se puede reutilizar en otros programas informáticos 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 GNU GPL. [54] Los desarrolladores trabajaron para integrar componentes GNU con el kernel de Linux, creando un sistema operativo completamente funcional y gratuito. [55]
Linus Torvalds había querido llamar a su invento " Freax ", un acrónimo de "free", "freak" y "x" (en alusión a Unix). Durante el inicio de su trabajo en el sistema, algunos de los archivos MAKE del proyecto incluyeron el nombre "Freax" durante aproximadamente medio año. Inicialmente, Torvalds consideró el nombre "Linux", pero lo descartó por considerarlo demasiado egoísta. [56]
Para facilitar el desarrollo, los archivos se cargaron en el 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, así que nombró el proyecto "Linux" en el servidor sin consultar a Torvalds. [56] Más tarde, sin embargo, Torvalds aceptó "Linux".
Según una publicación de Torvalds en un grupo de noticias , [11] la palabra "Linux" debe pronunciarse ( / ˈ l ɪ n ʊ k s / LIN-uuks) con una 'i' corta como en 'print' y una 'u' como en 'put'. Para demostrar aún más cómo se debe pronunciar la palabra "Linux", incluyó una audioguía con el código fuente del kernel.[57]Sin embargo, en esta grabación, pronuncia Linux como/ˈlinʊks/(LEEN-uuksvocal frontal no redondeadacorta pero, en lugar de unavocal no redondeada frontal cercana cercanacomo en su publicación en el grupo de noticias.
La adopción de Linux en entornos de producción, en lugar de ser utilizado sólo por aficionados, comenzó a despegar primero a mediados de la década de 1990 en la comunidad de supercomputadoras, donde organizaciones como la NASA comenzaron a reemplazar sus máquinas cada vez más caras con grupos de computadoras de bajo costo que ejecutaban Linux. El uso comercial comenzó cuando Dell e IBM , seguidos por Hewlett-Packard , comenzaron a ofrecer soporte para Linux para escapar del monopolio de Microsoft en el mercado de sistemas operativos de escritorio. [58]
Hoy en día, los sistemas Linux se utilizan en toda la informática, desde sistemas integrados hasta prácticamente todas las supercomputadoras , [29] [59] y se han asegurado un lugar en instalaciones de servidores como la popular pila de aplicaciones LAMP . El uso de distribuciones de Linux en escritorios domésticos y empresariales ha ido en aumento. [60] [61] [62] [63] [64] [65] [66] 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 lanza 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, siendo Android el sistema operativo dominante en los teléfonos inteligentes y muy popular en tabletas y, más recientemente, en dispositivos portátiles . Los juegos de Linux también están en aumento con Valve mostrando su soporte para 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 . [67]
Linus Torvalds es el mantenedor principal del kernel de Linux y guía su desarrollo, mientras que Greg Kroah-Hartman es el mantenedor principal de la rama estable. [68] Zoë Kooyman es la directora ejecutiva de la Free Software Foundation, [69] que a su vez apoya los componentes GNU. [70] Finalmente, individuos y corporaciones desarrollan componentes de terceros que no son GNU. Estos componentes de terceros comprenden una gran cantidad de trabajo y pueden incluir tanto módulos del kernel como aplicaciones y bibliotecas de usuario.
Los proveedores y comunidades de Linux combinan y distribuyen el kernel, los componentes GNU y los componentes que no son GNU, con software de administración de paquetes adicional en forma de distribuciones de Linux.
Muchos desarrolladores de software de código abierto coinciden en que el kernel de Linux no fue diseñado sino que evolucionó mediante selección natural . Torvalds considera que aunque el diseño de Unix sirvió como andamio, "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 en el ADN ". [71] 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. Casi desde el principio, fue pirateado de manera bastante informal". La calidad se mantuvo no mediante estándares rígidos o autocracia, sino mediante la estrategia ingenuamente simple de publicar cada semana y obtener comentarios de cientos de usuarios en cuestión de días, creando una especie de selección darwiniana rápida en el sitio. mutaciones introducidas por los desarrolladores." [72] Bryan Cantrill , ingeniero de un sistema operativo competidor, coincide en que "Linux no fue diseñado, sino que evolucionó", pero considera que esto es una limitación, proponiendo que algunas características, especialmente aquellas relacionadas con la seguridad, [73] no pueden ser evolucionó hacia "al final del día, esto no es un sistema biológico, es un sistema de software". [74]
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 de Linux, que se encarga del control de procesos, la creación de redes, el acceso a los periféricos y los sistemas de archivos . Los controladores de dispositivos se integran directamente con el kernel o se agregan como módulos que se cargan mientras el sistema está en ejecución. [75]
El espacio de usuario de GNU es una parte clave de la mayoría de los sistemas basados en el kernel de Linux, siendo Android la notable excepción. La biblioteca GNU C , una implementación de la biblioteca estándar C , funciona como un contenedor para las llamadas al sistema del kernel de Linux necesarias para la interfaz kernel-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) . utilizado para construir el kernel de 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 X Window . [76] Más recientemente, la comunidad Linux ha tratado de avanzar hacia Wayland como el nuevo protocolo de servidor de visualización, 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: [76] [78]
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 conectados al hardware asociado, lo cual es común en los sistemas integrados. Para los sistemas de escritorio, la interfaz de usuario predeterminada suele ser gráfica, aunque la CLI suele estar disponible a través de ventanas del emulador de terminal o en una consola virtual separada .
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 área de usuario , utilizan la CLI exclusivamente. La CLI es particularmente adecuada 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 los shells GUI , empaquetados junto con amplios entornos de escritorio, 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 la 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 pueden funcionar a través de la red. [79] 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 una interfaz personalizada para los usuarios finales, diseñada para el caso de uso del sistema. Se accede a esta interfaz personalizada a través de un cliente que reside en otro sistema, no necesariamente basado en Linux.
Existen varios tipos de administradores de ventanas para X11, incluidos mosaico , dinámico , apilamiento y composición . Los administradores de ventanas proporcionan medios para controlar la ubicación y apariencia de ventanas de aplicaciones individuales e interactuar con el sistema X Window. Los administradores de ventanas X más simples , como dwm , ratpoison o i3wm , brindan una funcionalidad minimalista , mientras que los administradores de ventanas más elaborados, como FVWM , Enlightenment o Window Maker, brindan más funciones, como una barra de tareas y temas integrados , pero siguen siendo livianos en comparación. a entornos de escritorio. Los entornos de escritorio incluyen administradores de ventanas como parte de sus instalaciones estándar, como Mutter (GNOME), KWin (KDE) o Xfwm (xfce), aunque los usuarios pueden optar por utilizar un administrador de ventanas diferente si lo prefieren.
Wayland es un protocolo de servidor de visualización destinado a reemplazar el protocolo X11; a partir de 2022 [actualizar], ha recibido una adopción relativamente amplia. [80] A diferencia de X11, Wayland no necesita un administrador de ventanas externo ni 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 están siendo portados a Wayland como servidores de visualización independientes. Enlightenment ya se ha portado con éxito desde la versión 19. [81] 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.
Linux actualmente tiene dos API modernas de espacio de usuario del kernel para manejar dispositivos de entrada de video: API V4L2 para transmisiones de video y radio, y API DVB para recepción de TV digital. [82]
Debido a la complejidad y diversidad de los diferentes dispositivos, y a la gran cantidad de formatos y estándares que manejan esas API, esta infraestructura debe 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 trabajar con todos los formatos admitidos por esos dispositivos. [83] [84]
La principal diferencia entre Linux y muchos otros sistemas operativos contemporáneos populares es que el kernel de Linux y otros componentes son software gratuito y de código abierto. Linux no es el único sistema operativo de este tipo, aunque sí es, con diferencia, el más utilizado. [85] Algunas licencias de software libre y de código abierto se basan en el principio de copyleft , una especie de reciprocidad: cualquier trabajo derivado de una pieza de software copyleft también debe ser copyleft en sí mismo. 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 kernel de Linux y muchos de los componentes del Proyecto GNU. [86]
Los desarrolladores pretenden que las distribuciones basadas en Linux sean interoperables con otros sistemas operativos y estándares informáticos establecidos. Los sistemas Linux se adhieren a los estándares POSIX, [87] SUS , [88] LSB , ISO y ANSI siempre que sea posible, aunque hasta la fecha sólo una distribución de Linux ha obtenido la certificación POSIX.1, Linux-FT. [89] [90]
Los proyectos de software libre, aunque se desarrollan mediante colaboración , a menudo se producen 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 una sola vez en forma de distribución de Linux.
Muchas distribuciones de Linux administran una colección remota de software del sistema y paquetes de software de aplicaciones disponibles para descargar e instalar 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 informales, organizaciones de voluntarios y entidades comerciales. Una distribución es responsable de la configuración predeterminada del kernel de Linux instalado, la seguridad general del sistema y, en 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. [91]
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 . [92] [93]
En muchas ciudades y regiones, asociaciones locales conocidas como Grupos de Usuarios de Linux (LUG) buscan promover su distribución preferida y, por extensión, el software libre. Celebran reuniones y brindan demostraciones, capacitación, soporte técnico e instalación del sistema operativo gratuitos a nuevos usuarios. Muchas comunidades de Internet también brindan soporte a 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 IRC . Los foros en línea son otro medio de soporte, siendo ejemplos notables LinuxQuestions.org y los diversos foros comunitarios y de soporte específicos de distribuciones, como los de Ubuntu , Fedora, Arch Linux , Gentoo , etc. Las distribuciones de Linux alojan listas de correo ; Normalmente habrá un tema específico, como el uso o el desarrollo, para una lista determinada.
Existen varios sitios web de tecnología con enfoque en Linux. Las revistas impresas en Linux a menudo incluyen discos de portada que contienen software o incluso distribuciones completas de Linux. [94] [95]
Aunque las distribuciones de Linux generalmente están disponibles de forma gratuita, varias grandes corporaciones venden, respaldan y contribuyen al desarrollo de los componentes del sistema y del software gratuito. Un análisis del kernel 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 alrededor del 8,2% a desarrolladores no remunerados y el 4,1% sin clasificar. [96] Algunas de las principales corporaciones que brindan contribuciones incluyen Intel , Samsung , Google , AMD , Oracle y Facebook . [96] 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 construida sobre el kernel de Linux, acogen y fomentan explícitamente la comercialización; La relación entre una distribución de Linux en su conjunto y los proveedores individuales puede verse como simbiótica . Un modelo de negocio común de los proveedores comerciales es cobrar por el soporte, especialmente para los usuarios comerciales. Varias empresas también ofrecen una versión comercial especializada de su distribución, que agrega herramientas y paquetes de soporte patentados para administrar un mayor número de instalaciones o simplificar las tareas administrativas.
Otro modelo de negocio es regalar software para vender hardware. Esto solía ser la norma en la industria informática, con sistemas operativos como CP/M , Apple DOS y versiones del clásico Mac OS anteriores a 7.6 que se podían copiar libremente (pero no modificar). A medida que el hardware informático se estandarizó a lo largo de la década de 1980, se hizo más difícil para los fabricantes de hardware beneficiarse de esta táctica, ya que el sistema operativo se ejecutaría en cualquier computadora del fabricante que compartiera la misma arquitectura.
La mayoría de los lenguajes de programación admiten Linux, ya sea directamente o mediante puertos comunitarios de terceros . [97] Las herramientas de desarrollo originales utilizadas para construir aplicaciones Linux y programas de sistemas operativos se encuentran dentro de la cadena de herramientas GNU , que incluye la Colección de compiladores GNU (GCC) y el Sistema de compilación GNU . 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 idiomas. Los compiladores propietarios para Linux incluyen el compilador Intel C++ , Sun Studio y el compilador IBM XL C/C++ . BASIC está disponible en forma procedimental en QB64 , PureBasic , Yabasic , GLBasic , Basic4GL , XBasic , wxBasic , SdlBasic y Basic-256 , así como orientado a objetos a través de Gambas , FreeBASIC , B4X , Basic para 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 ).
Linux, una característica común de los sistemas tipo Unix, incluye lenguajes de programación tradicionales de propósito específico destinados a secuencias de comandos , procesamiento de textos y configuración y gestión de sistemas en general. Las distribuciones de 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 ellos mismos. Por ejemplo, las expresiones regulares son compatibles con programas como grep y localizar , el tradicional agente de transferencia de mensajes Unix Sendmail contiene su propio sistema de secuencias de comandos Turing completo 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 . Si bien no es tan común, Linux también admite 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 convencionalmente pequeños, estáticos y compilados del diseño de Unix sean rápida y dinámicamente extensibles a través de un sistema de secuencias de comandos elegante y funcional de alto nivel; Muchos programas GNU se pueden compilar con enlaces Guile opcionales para este fin. Varias máquinas virtuales Java y kits de desarrollo se ejecutan en Linux, incluido el JVM original de Sun Microsystems ( HotSpot ) y el 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 utilizar independientemente del marco más amplio. Ambos admiten una amplia variedad de idiomas. Hay varios 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 de larga data Vim , nano y Emacs permanecen . popular. [98]
El kernel de Linux es un kernel de sistema operativo ampliamente adaptado, disponible para dispositivos que van desde teléfonos móviles hasta supercomputadoras; se ejecuta en una gama muy diversa de arquitecturas informáticas , incluidos teléfonos inteligentes Android basados en ARM y 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 utilizar un sistema operativo propietario creado por el fabricante, como computadoras Macintosh [99] [100] (con procesadores PowerPC , Intel y Apple Silicon ), PDA , consolas de videojuegos , portátiles. reproductores de música y teléfonos móviles.
Linux tiene la reputación de soportar muy bien el hardware antiguo al mantener controladores estandarizados durante mucho tiempo. [101] Hay varias asociaciones industriales y conferencias de hardware dedicadas a mantener y mejorar el soporte para hardware diverso en Linux, como FreedomHEC . Con el tiempo, la compatibilidad con diferentes hardware ha mejorado en Linux, lo que hace que cualquier compra disponible tenga "buenas posibilidades" de ser compatible. [102]
En 2014, se lanzó una nueva iniciativa para recopilar automáticamente una base de datos de todas las configuraciones de hardware probadas. [103]
Muchos estudios cuantitativos de software libre/de código abierto se centran en temas que incluyen la participación de mercado y la confiabilidad, y numerosos estudios examinan específicamente Linux. [104] El mercado de Linux está creciendo y se espera que el tamaño del mercado de sistemas operativos 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. [105] Los analistas proyectan una tasa de crecimiento anual compuesta ( CAGR) del 13,7% entre 2024 y 2032, culminando en un tamaño de mercado de 34,90 mil millones de dólares para este último año. [106] Los analistas y defensores atribuyen el éxito relativo de Linux a su seguridad, confiabilidad, bajo costo y ausencia de dependencia de proveedores . [107] [108]
El kernel de Linux tiene la licencia GNU General Public License (GPL), versión 2. La GPL requiere que cualquier persona 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 la licencia. mismos términos. [130] Otros componentes clave de una distribución típica de Linux también tienen principalmente licencia GPL, pero pueden usar otras licencias; muchas bibliotecas usan la Licencia pública general reducida (LGPL) de GNU, una variante más permisiva de la GPL, y la implementación X.Org del sistema X Window usa la licencia MIT .
Torvalds afirma que el kernel de Linux no pasará de la versión 2 de la GPL a la versión 3. [131] [132] Específicamente no le gustan algunas disposiciones de la nueva licencia que prohíben el uso del software en la gestión de derechos digitales . [133] Tampoco sería práctico obtener el permiso de todos los titulares de derechos de autor, que se cuentan por miles. [134]
Un estudio realizado en 2001 sobre Red Hat Linux 7.1 encontró que esta distribución contenía 30 millones de líneas de código fuente . [135] Utilizando el modelo de costos constructivos , 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, su desarrollo habría costado alrededor de 1.820 millones de dólares [136] en 2023 en Estados Unidos. [135] 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 bajo licencia GPL. El kernel de Linux en sí tenía 2,4 millones de líneas de código, o el 8% del total. [135]
En un estudio posterior, se realizó el mismo análisis para la versión 4.0 de Debian (etch, que se lanzó en 2007). [137] 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 habría costado 10,2 mil millones de dólares estadounidenses [136] (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 lo 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 se le asignara la marca a Torvalds y, en 1997, el caso se resolvió. [139] Desde entonces, la concesión de licencia de la marca ha estado a cargo del Linux Mark Institute (LMI). Torvalds ha declarado que registró el nombre solo para evitar que otra persona lo use. LMI originalmente cobraba una tarifa nominal de sublicencia por el uso del nombre Linux como parte de las marcas comerciales, [140] pero luego cambió esto a favor de ofrecer una sublicencia mundial gratuita y perpetua. [141]
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. [142] [143] La fundación no tiene ningún problema explícito con el nombre Android para el sistema operativo Android, que también es un sistema operativo basado en el kernel de Linux, ya que GNU no forma 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 patrocinado por la FSF hasta 1996), [144] también utilizan GNU/Linux cuando se refieren a el 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 distribuciones grandes de Linux (por ejemplo, SUSE Linux y Red Hat Enterprise Linux ).
En mayo de 2011 [actualizar], alrededor del 8% al 13% de las líneas de código de la distribución de Linux Ubuntu (versión "Natty") están hechas de componentes GNU (el rango depende de si GNOME se considera parte de GNU); mientras tanto, el 6% se lo lleva el kernel de Linux, aumentado al 9% al incluir sus dependencias directas. [148]
Lo común compartido del kernel es lo que define la membresía de un sistema en la familia Linux; las diferentes aplicaciones OSS que pueden interactuar con el kernel común son las que diferencian las distribuciones de Linux.
Desarrollado originalmente para PC basadas en Intel x86, el "hobby" de Torvalds ahora se ha lanzado para más plataformas de hardware que cualquier otro sistema operativo en la historia.
Sin embargo, UNIX nació en 1969...
En 1982, un grupo de hackers de Unix de Stanford y Berkeley fundaron Sun Microsystems con la creencia de que Unix ejecutado en hardware relativamente económico basado en 68000 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. Si bien los precios todavía estaban fuera del alcance de la mayoría de las personas, las estaciones de trabajo eran baratas para las corporaciones y universidades; Las redes de ellos (uno por usuario) reemplazaron rápidamente a los VAX más antiguos y otros sistemas de tiempo compartido.
Los derechos de autor de Linux cambiarán: he recibido un par de solicitudes para hacerlo compatible con el copyleft de GNU, eliminando la condición "no puedes distribuirlo por dinero". Estoy de acuerdo. Propongo que se cambien los derechos de autor para que sean válidos para 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 tiene quejas ("Escribí ese código asumiendo que los derechos de autor seguirían siendo los mismos") envíeme un correo electrónico. En caso contrario, el copyleft GNU entra en vigor desde el primero de febrero. Si no conoce la esencia de los derechos de autor de GNU, léalo.
{{cite web}}
: Mantenimiento CS1: nombres numéricos: lista de autores ( enlace ){{cite web}}
: Mantenimiento CS1: varios nombres: lista de autores ( enlace )LMI ha reestructurado su programa de sublicencias. Nuestro nuevo acuerdo de sublicencia es: Gratis: los titulares de sublicencia aprobados no pagan tarifas; Perpetuo – la sublicencia termina sólo en caso de incumplimiento del acuerdo o cuando su organización deja de utilizar su marca; En todo el mundo: una sublicencia cubre el uso de la marca en cualquier parte del mundo
...hemos intentado utilizar la palabra "Linux" o la expresión "kernel de Linux" para designar el kernel, y GNU/Linux para designar el cuerpo completo del software del sistema operativo GNU/GPL,... ...muchos la gente olvida que la lista de correo del kernel de Linux es un foro para la discusión de asuntos relacionados con el kernel, no GNU/Linux en general...