.. _qué-es: ¿Qué es *Linux*? ================ En puridad, deberíamos empezar por el principio, esto es, por *UNIX* UNIX ---- *UNIX* nació como sistema operativo en 1969 en los `Laboratorios Bell de AT&T `_ de la mano de `Ken Thompson `_ y `Dennis Ritchie `_. Este último fue, además, el creador del `lenguaje de programación C `_, diseñado precisamente para el desarrollo de *UNIX*. La implementación en **C** permitió portar *UNIX* a distintas plataformas de manera mucho más sencilla que si se hubiera escrito en ensamblador (como se hizo en un principio) y esa circunstancia fue parte de su éxito. *UNIX* consta de un núcleo, un sistemas de ficheros, una serie de pequeñas utilidades y una *shell* que permite combinar estas utilidades para realizar labores más complejas. AT&T distribuyó inicialmente *UNIX* a algunas universidades que podían estudiarlo, adaptarlo y hacerle sus propios añadidos. Una de las licenciatarias fue la `Universidad de Berkeley`, que hizo importantes aportaciones (p.e. la adición del protocolo *TCP/IP* para comunicaciones) y desarrollo una versión propia basada en la versión 4 de *UNIX* llamada |BSD| a la que con el tiempo se le retiró todo rastro del código original para evitar problemas de licencias. La última version desarrollada por Berkeley fue la *4.4* a partir de la cual se desarrollaron las principales distribuciones |BSD| existentes en la actualidad: `FreeBSD `_, `NetBSD `_ o `OpenBSD `_. No obstante, el `problema de licencias con AT&T `_, provocó que durante el periodo de dos años en que se desarrolló pleito (de 1992 a 1994) no se desarrollaran versiones libres de |BSD|, lo que favoreció el interés por *Linux*, que había `nacido en julio de 1991 `_ y se había `liberado en octubre de ese mismo año `_. Por cortesía de wikipedia\ [#]_, este es la historia esquemática de los distintos unices: .. image:: files/Unix_history-simple.svg Actualmente hay tres grandes familias de sistemas *UNIX*: * Los derivados de `UNIX System V `_, fundamentalmente, `AIX de IBM `_, `HP-UX de Hewlett-Packard `_ y `Solaris de Sun Mycrosystem `_ (y ahora Oracle). Todos son propietarios. * Los derivados de |BSD| ya citados anteriormente, libres por lo general con la gran excepción de `Mac Os X `_. * Linux. .. _linux: Linux ----- *Linux* es un sistema operativo libre que emula el `comportamiento de UNIX aunque no es UNIX `_, pues no está certificado como tal. No deriva del *UNIX* de los Laboratorios Bell, sino que es creación original de `Linus Torvald `_, que, en 1991, siendo aún estudiante en la universidad de Helsinki deseaba tener un *UNIX* para `ordenadores PC `_ y no estaba del todo satisfecho con la licencia de `MINIX `_, otro clon de sistemas *UNIX* desarrollado por `Andrew S. Tanenbaum `_, que sólo permitía su uso educativo. En realidad, para entonces ya existía un *UNIX* gratuito para la arquitectura |PC|, el citado |BSD|, pero se hallaba enfracado en una disputa legal con AT&T. .. rubric:: Concepto En puridad *Linux* es sólo el núcleo del sistema, mientras que el resto de programas básicos (*shell*, compilador, pequeñas aplicaciones) proceden en gran parte del `proyecto GNU `_, que aun habiendo desarrollado desde 1983 muchas de las aplicaciones del *UNIX* original aún carecía en 1991 de un núcleo operativo. Aunque el creador original de *Linux* fue Torvald, pronto adoptó un desarrollo colaborativo a través de internet\ [#]_ y en la actualidad es desarrollado por voluntarios y empleados de grandes empresas con interés en el desarrollo del sistema como `IBM `_, `Google `_ o `Red Hat `_\ [#]_. .. note:: Por lo general, cuando usemos el término *Linux* en este documento nos referiremos al sistema completo, no sólo al *kernel*. .. rubric:: Distribuciones Utilizar directamente el *kernel* descargado de *Linux* es poco menos que inviable, así que éste se hace accesible a los usuarios a través de lo que se conoce como una *distribución* (o, coloquialmente, *distro*). Una :dfn:`distribución` es una colección completa de *software* organizada alrededor de un núcleo de *Linux* que constituye un sistema operativo funcional y proporciona un instalador, un :ref:`sistema de gestión de software `, una organización de archivos y algunos aspectos básicos más. Por tanto, "instalar *Linux*" implica en realidad escoger e instalar una distribución de *Linux*; y "utilizar *Linux*", utilizar una distribución de *Linux*. Y, aunque gran cantidad del *software* que instalan todas las distribuciones es común (por ejemplo, las `herramientas GNU `_), hay notables diferencias entre ellas. .. note:: Los sistemas operativos se distribuyen a menudo junto a un conjunto de herramientas que permite instalarlos y utilizarlos cómodamente. Así es, por ejemplo, como *Microsoft* distribuye su *Windows*. La diferencia fundamental entre la forma en que se distribuye *Windows* y una distribución de *Linux* es que estas distribuciones pretenden hacer disponible al usuario todas las aplicaciones que pueda necesitar, mientras que *Windows* sólo facilita un conjunto muy limitado, y es el usuario el encargado de obtener, descargar e instalar el resto de *software*. Sea como sea, hay centenares de distribuciones, algunas generalistas y otras orientadas a ciertos nichos. `Distrowatch `_ es un buen punto para conocer gran parte de ellas. Sin embargo, no todas las distribuciones son independientes entre sí: lo habitual es que una distribución tome su base de otra y añada o modifique ciertos aspectos. Sin ser muy exhaustivos, las principales distribuciones son: #. Slackware_, la más veterana superviviente junto a *Debian* y que se caracteriza por intentar mantener simple su diseño (`principio KISS `_). #. Debian_, que es posiblemente la que ha dado lugar a mayor cantidad de derivadas. Es muy apreciada su versión estable para servidores: - Ubuntu_, que nació en principio para acercar *Linux* al usuario novel. Con su popularización ha ido diversificándose y ahora proporciona también versiones pensadas para servidor. + Mint_. que tiene versiones basadas tanto en *Ubuntu* como en *Debian* y se orienta al usuario novel. - `Kali Linux`_, muy usada en auditoría y seguridad informáticas. Es básicamente una versión *live*\ [#]_ de *Debian* con *software* adicional de auditoría y ataque. #. RedHat_, que es la distribución desarrollada por la empresa del mismo nombre (y desde 2019 filial de IBM). Formalmente desapareció en 2003, cuando se desdobló en dos: |RHEL| como versión comercial y Fedora como versión comunitaria. - Fedora_, que es la versión comunitaria de *Red Hat* (más bien, |RHEL|). - CentOS_, que es la versión gratuita de |RHEL|. *Red Hat* sólo distribuye las versiones terminadas de |RHEL| para sus suscriptores de pago, pero publica el código fuente bajo licencia |GPL|. Los voluntarios de *CentOS* toman ese código fuente, eliminan todas las marcas comerciales referentes a *Red Hat* y compilan para crear un producto terminado. El proyecto ha acabado patrocinado por la propia *Red Hat* y hasta finales de 2020 seguía esta filosofía. Sin embargo, en diciembre de ese año, *Red Hat* decidió convertir *CentOS* en una :ref:`distribución de liberación continua ` renombrándola como `CentOS Stream `_, por lo que su fundador original creó `Rocky Linux`_ con el fin de continuar la idea original. Otra distribución creada para mantener la filosofía original es `Alma Linux`_. #. Suse_, distribución comercial de la empresa alemana del mismo nombre, que actualmente es propiedad de Novell. Tiene una versión comunitaria denominada OpenSuse_. #. Gentoo_, cuya particularidad fundamental es no distribuir el *software* precompilado, sino su código fuente junto a las reglas necesarias para su compilación. #. Archlinux_, orientada a usuarios avanzados y que persigue el principio |KISS|. - Manjaro_, que es una derivada de *Archlinux* enfocada a proporcionar una instalación sencilla para usuarios menos avanzados. #. `Linux from Scratch`_ (o |LFS|), que no es propiamente una distribución, sino un conjunto de instrucciones para construir un sistema *Linux* completo desde cero. .. seealso:: `LinuxTimeLine `_ proporciona un gráfico que refleja la aparición de las principales distribiciones de *Linux* y cuál es el parentesco entre ellas. Una diferencia fundamental entre distribuciones estriba en cuál es su filosofía de actualización, esto es, si liberan periódicamente una *versión estable* o si por el contrario son de *liberación continua* (ambos términos se tratan :ref:`al analizar el ciclo de vida de las distribuciones `). Según esta característica las referidas distribuciones se agrupan así: .. table:: :class: ciclo-distros =============================================== ======================== Con liberación de versiones De liberación continua =============================================== ======================== Slackware_ Gentoo_ Debian_ (estable) Debian_ (testing, sid) Ubuntu_ Archlinux_ Mint_ Manjaro_ `Kali Linux`_ `CentOS Stream`_ |RHEL| SliTaz_ Fedora_ CentOS_ (ahora `Rocky Linux`_, `Alma Linux`_) Suse_/OpenSuse_ =============================================== ======================== .. _Slackware: https://www.slackware.com .. _Debian: https://www.debian.org .. _Ubuntu: https://www.ubuntu.com .. _Mint: https://www.linuxmint.com .. _Kali Linux: https://www.kali.org .. _RedHat: https://www.redhat.com .. _Fedora: https://getfedora.org .. _CentOS: https://www.centos.org .. _Suse: https://www.suse.com .. _Gentoo: https://www.gentoo.org .. _Archlinux: https://www.archlinux.org .. _Manjaro: https://manjaro.org .. _OpenSuse: https://www.opensuse.org .. _Linux from Scratch: https://www.linuxfromscratch.org .. _Rocky Linux: https://rockylinux.org .. _Alma Linux: https://almalinux.org .. _SliTaz: https://www.slitaz.org .. rubric:: Distribución de referencia La *distribución de referencia* para la elaboración de los apuntes es la rama estable de *Debian* (véanse :ref:`cuáles son sus distintas ramas `). La redacción se comenzó en 2016 cuando lo era Jessie_ (la versión **8.0**), aunque por estar próxima a concluir su ciclo se procuró adaptar el contenido a la versión **9.0** Stretch_. Desde entonces se han publicado nuevas versiones (Buster_, Bullseye_) y la redacción de nuevos epígrafes y la revisión de algunos ya escritos se ha ido procurando adaptar a ellas, pero pueden existir partes que no hayan recibido revisión y, por tanto, tengan alguna explicación que haya perdido validez o requiera alguna pequeña adaptación. Fuera de *Debian*, la mayor parte de las explicaciones debería ser válida para sus distribuciones derivadas. .. rubric:: Notas al pie .. [#] El enlace original al gráfico es `éste `_ .. [#] Lo que `Eric S. Raymond `_ llama *modelo de bazar* en su ensayo clásico `La catedral y el bazar `_. .. [#] En realidad, desde 2019 `Red Hat es propiedad de IBM `_. .. [#] Una :dfn:`distribución live` es un sistema operativo completo almacenado en un medio extraíble (|CD| o |DVD| tradicionalmente, pero ahora también dispositivos de memorias flash) pensado para ejecutarse sin instalación. .. |BSD| replace:: :abbr:`BSD (Berkeley Software Distribution)` .. |RHEL| replace:: :abbr:`RHEL (Red Hat Enterprise Linux)` .. |KISS| replace:: :abbr:`KISS (Keep It Simple, Stupid!)` .. |LFS| replace:: :abbr:`LFS (Linux From Scratch)` .. |GPL| replace:: :abbr:`GPL (General Public Licence)` .. |CD| replace:: :abbr:`CD (Compact Disk)` .. |DVD| replace:: :abbr:`DVD (Digital Versatile Disc)` .. |PC| replace:: :abbr:`PC (Personal Computer)`