Introducción
En el uso popular, “Linux” a menudo se refiere a un grupo de distribuciones de sistemas operativos construidas en torno al núcleo de Linux. En el sentido más estricto, sin embargo, Linux se refiere solo a la presencia del propio núcleo. Para construir un sistema operativo completo, las distribuciones de Linux a menudo incluyen herramientas y bibliotecas del proyecto GNU y otras fuentes. Más desarrolladores han estado utilizando Linux recientemente para construir y ejecutar aplicaciones móviles; también ha desempeñado un papel clave en el desarrollo de dispositivos asequibles como Chromebooks, que ejecutan sistemas operativos en el núcleo. Dentro de la computación en la nube y los entornos de servidores en general, Linux es una opción popular por algunas razones prácticas:
- Sus distribuciones siguen siendo actuales y son compatibles con comunidades de otros desarrolladores.
- Puede ejecutarse en una amplia gama de hardware e instalarse junto a sistemas preexistentes (una característica útil en entornos de desarrollo local).
- Admite la instalación centralizada de software desde repositorios preexistentes.
- Sus requisitos de recursos son bajos.
- Es frecuentemente considerado cuando los desarrolladores están construyendo ecosistemas de aplicaciones y herramientas para servidores, lo que lleva a altos niveles de compatibilidad.
- Sostiene modificaciones necesarias en los comportamientos del sistema operativo.
Linux también tiene sus orígenes en el movimiento de software libre y de código abierto, y como consecuencia algunos desarrolladores lo eligen por una combinación de razones éticas y prácticas:
- Para algunos desarrolladores, usar Linux representa un compromiso con la accesibilidad y la libertad de expresión.
- La comunidad de Linux también es un atractivo para algunos desarrolladores: cuando tienen preguntas, pueden consultar los recursos producidos por esta comunidad o comunicarse directamente con uno de los muchos mantenedores activos.
Para entender el papel de Linux dentro de la comunidad de desarrolladores (y más allá), este artículo delineará brevemente la historia de Linux a través de Unix y discutirá algunas distribuciones de Linux populares.
Raíces en Unix
Linux tiene sus raíces en Unix y Multics, dos proyectos que compartían el objetivo de desarrollar un sistema operativo robusto multiusuario.
Los Comienzos de Unix
Unix se desarrolló a partir de la iteración del proyecto Multics en el Centro de Investigación de Ciencias de la Computación de Bell Labs. Los desarrolladores que trabajaban en Multics en Bell Labs y en otros lugares estaban interesados en construir un sistema operativo multiusuario con almacenamiento de un solo nivel, enlace dinámico (en el que un proceso en ejecución puede solicitar que se agregue otro segmento a su espacio de direcciones, lo que le permite ejecutar el código de ese segmento) y un sistema de archivos jerárquico.
Bell Labs dejó de financiar el proyecto Multics en 1969, pero un grupo de investigadores, incluidos Ken Thompson y Dennis Ritchie, continuaron trabajando con los principios fundamentales del proyecto. En 1972-3 tomaron la decisión de reescribir el sistema en C, lo que hizo que Unix fuera única y portátil: a diferencia de otros sistemas operativos contemporáneos, podía moverse desde y sobrevivir a su hardware.
La investigación y el desarrollo en Bell Labs (posteriormente AT&T) continuaron, con Unix System Laboratories desarrollando versiones de Unix, en asociación con Sun Microsystems, que serían ampliamente adoptadas por proveedores comerciales de Unix. Mientras tanto, la investigación continuó en círculos académicos, especialmente en el Computer Systems Research Group de la Universidad de California en Berkeley. Este grupo produjo la Distribución de Software de Berkeley (BSD), que inspiró una serie de sistemas operativos, muchos de los cuales todavía se utilizan hoy en día. Dos distribuciones BSD de importancia histórica son NeXTStep, el sistema operativo pionero de NeXT, que se convirtió en la base de macOS, entre otros productos, y MINIX, un sistema operativo educativo que sirvió de base comparativa para Linus Torvalds mientras desarrollaba Linux.
Características Clave de Unix
Unix está orientado en torno a principios de claridad, portabilidad y simultaneidad.
- Clarity: El diseño modular de Unix permite que las funciones se ejecuten de manera limitada y definida. Su sistema de archivos es unificado y jerárquico, lo que simplifica la manipulación de datos. A diferencia de algunos de sus predecesores, Unix implementa cientos (en lugar de miles) de llamadas al sistema, cada una diseñada para ser directa y clara en su objetivo.
-
Portabilidad: Al escribir Unix en C, el grupo en Bell Labs posicionó Unix para su uso y adopción a gran escala. C fue diseñado para tener acceso de bajo nivel a la memoria, soporte mínimo en tiempo de ejecución y una relación eficiente entre el lenguaje y las instrucciones de la máquina. Una base en C significa que Unix es adaptable y fácil de ejecutar en una variedad de hardware.
-
Simultaneidad: El núcleo de Unix está diseñado para el objetivo (compartido por el proyecto Multics) de mantener múltiples usuarios y flujos de trabajo. El espacio del núcleo permanece separado del espacio del usuario en Unix, lo que permite que múltiples aplicaciones se ejecuten al mismo tiempo.
La Evolución de Linux
Unix planteó preguntas importantes para los desarrolladores, pero también permaneció propietario en sus primeras iteraciones. El siguiente capítulo de su historia es, por lo tanto, la historia de cómo los desarrolladores trabajaron dentro y en contra de él para crear alternativas gratuitas y de código abierto.
Experimentos de Código Abierto
Richard Stallman fue una figura central entre los desarrolladores que se inspiraron para crear alternativas no propietarias a Unix. Mientras trabajaba en el Laboratorio de Inteligencia Artificial del MIT, inició el trabajo en el proyecto GNU (recursivo para “¡GNU no es Unix!”), abandonando finalmente el Laboratorio en 1984 para poder distribuir componentes de GNU como software libre. El núcleo GNU, conocido como GNU HURD, se convirtió en el enfoque de la Free Software Foundation (FSF), fundada en 1985 y actualmente dirigida por Stallman.
Mientras tanto, otro desarrollador trabajaba en una alternativa gratuita a Unix: el estudiante finlandés Linus Torvalds. Después de frustrarse con la licencia de MINIX, Torvalds anunció a un grupo de usuarios de MINIX el 25 de agosto de 1991 que estaba desarrollando su propio sistema operativo, que se asemejaba a MINIX. Aunque inicialmente se desarrolló en MINIX utilizando el compilador GNU C, el kernel de Linux pronto se convirtió en un proyecto único con un grupo central de desarrolladores que lanzaron la versión 1.0 del kernel con Torvalds en 1994.
Torvalds había estado utilizando código GNU, incluido el Compilador C de GNU, con su kernel, y sigue siendo cierto que muchas distribuciones de Linux se basan en componentes de GNU. Stallman ha abogado por expandir el término “Linux” a “GNU/Linux”, argumentando que esto capturaría tanto el papel del proyecto GNU en el desarrollo de Linux como los ideales subyacentes que fomentaron el proyecto GNU y el kernel de Linux. Hoy en día, “Linux” se utiliza a menudo para indicar tanto la presencia del kernel de Linux como de elementos GNU. Al mismo tiempo, los sistemas integrados en muchos dispositivos portátiles y teléfonos inteligentes a menudo utilizan el kernel de Linux con pocos o ningún componente de GNU.
Características clave de Linux
Aunque el kernel de Linux heredó muchos objetivos y propiedades de Unix, difiere del sistema anterior de las siguientes maneras:
- Su componente central es el kernel, que se desarrolla de forma independiente de otros componentes del sistema operativo. Esto significa que Linux toma elementos de diversas fuentes (como GNU) para conformar un sistema operativo completo.
- Es gratuito y de código abierto. Mantenido por una comunidad de desarrolladores, el kernel está licenciado bajo la Licencia Pública General de GNU (un derivado del trabajo de la FSF en el Proyecto GNU) y está disponible para su descarga y modificación. La GPL estipula que el trabajo derivado debe mantener los términos de licencia del software original.
- Tiene un núcleo monolítico, similar a Unix, pero puede cargar y descargar dinámicamente el código del kernel según sea necesario.
- Tiene soporte para multiprocesamiento simétrico (SMP), a diferencia de las implementaciones tradicionales de Unix. Esto significa que un solo sistema operativo puede tener acceso a múltiples procesadores, que comparten una memoria principal y acceso a todos los dispositivos de entrada/salida.
- Su kernel es preemptivo, otra diferencia con Unix. Esto significa que el planificador puede forzar un cambio de contexto en un controlador u otra parte del kernel mientras se está ejecutando.
- Su kernel no diferencia entre hilos y procesos normales.
- Incluye una interfaz de línea de comandos (CLI) y también puede incluir una interfaz gráfica de usuario (GUI).
Distribuciones populares de Linux
Los desarrolladores mantienen muchas distribuciones populares de Linux en la actualidad. Una de las más antiguas es Debian, una distribución gratuita y de código abierto que cuenta con 50,000 paquetes de software. Debian inspiró otra distribución popular, Ubuntu, financiada por Canonical Ltd. Ubuntu utiliza el formato de paquete deb y las herramientas de gestión de paquetes de Debian, y los desarrolladores de Ubuntu envían los cambios de vuelta a Debian.
A similar relationship exists between Red Hat, Fedora, and CentOS. Red Hat created a Linux distribution in 1993, and ten years later split its efforts into Red Hat Enterprise Linux and Fedora, a community-based operating system that utilizes the Linux kernel and elements from the GNU Project. Red Hat also has a relationship with the CentOS Project, another popular Linux distribution for web servers. This relationship does not include paid maintenance, however. Like Debian, CentOS is maintained by a community of developers.
Conclusión
En este artículo, hemos cubierto las raíces de Linux en Unix y algunas de sus características definitorias. Si estás interesado en aprender más sobre la historia de Linux y sus variaciones de Unix (incluyendo FreeBSD), un buen paso podría ser nuestra serie sobre FreeBSD. Otra opción podría ser considerar nuestra serie introductoria sobre cómo empezar con Linux. También puedes revisar esta introducción a la disposición del sistema de archivos en Linux, esta discusión sobre cómo usar find
y locate
para buscar archivos en un VPS de Linux, o esta introducción a las expresiones regulares en la línea de comandos.
Source:
https://www.digitalocean.com/community/tutorials/brief-history-of-linux