⚡ UNIX
El origen de todo: historia, filosofía y evolución del sistema operativo UNIX
El Sistema Operativo UNIX
UNIX define una arquitectura basada en un sistema de archivos jerárquico, el tratamiento de dispositivos como archivos especiales, procesos ligeros combinables mediante tuberías (pipes), y un intérprete de comandos (shell) programable.
El nombre UNIX es hoy una marca registrada administrada por The Open Group, otorgada únicamente a los sistemas que certifican conformidad con la Single UNIX Specification (SUS).
Actualmente conservan la certificación UNIX®: IBM AIX, Oracle Solaris, HPE HP-UX (en soporte extendido) y Apple macOS, mientras que la línea original de desarrollo de AT&T (UNIX System V) dejó de evolucionar como producto propio tras su venta a Novell (1993) y posteriormente a Santa Cruz Operation/SCO (1995).
Características detalladas de UNIX
- 1. Sistema operativo multiusuario y multitarea: Permite que varios usuarios trabajen simultáneamente sobre la misma máquina, y que cada usuario ejecute múltiples procesos en paralelo mediante reparto de tiempo de CPU (time-sharing).
- 2. Núcleo monolítico: Todos los servicios centrales (gestión de procesos, memoria, sistema de archivos, E/S) se ejecutan en un único espacio de memoria privilegiado, comunicándose entre sí de forma directa y eficiente.
- 3. Escrito mayoritariamente en lenguaje C: Desde la Cuarta Edición ≡ UNIX V4 de 1973, lo que le otorgó un nivel de portabilidad entre arquitecturas de hardware sin precedentes para la época, frente a los sistemas anteriores escritos en ensamblador.
- 4. Sistema de archivos jerárquico único: Todos los dispositivos y particiones se integran en un único árbol de directorios a partir de la raíz (
/), independientemente de su ubicación física, mediante el mecanismo de montaje (mount). - 5. Filosofía de diseño "programas pequeños, combinables": Cada herramienta está pensada para realizar una única tarea de forma eficiente, y se combinan entre sí mediante tuberías (
pipes) para construir flujos de trabajo complejos. - 6. Paradigma "todo es un archivo": Los dispositivos, terminales y otros recursos del sistema se representan y manipulan mediante las mismas llamadas de E/S que los archivos ordinarios (open, read, write, close).
- 7. Shell programable como intérprete de comandos: Ofrece no solo ejecución de programas, sino un verdadero lenguaje de scripting (desde la Bourne shell, Séptima Edición ≡ UNIX V7 de 1979), con variables, condicionales y bucles.
- 8. Modelo de permisos usuario/grupo/otros: Control de acceso a archivos y procesos mediante tres niveles de propietario (usuario, grupo, resto), complementado con bits especiales (setuid, setgid, sticky bit).
- 9. Mecanismos de comunicación entre procesos (IPC): Señales, tuberías con y sin nombre, y desde UNIX System V de 1983, memoria compartida, semáforos y colas de mensajes.
- 10. Gestión de memoria virtual paginada: Introducida en System V Release 2 de 1984, permite ejecutar procesos de mayor tamaño que la memoria RAM física disponible.
- 11. Portabilidad entre arquitecturas de hardware: Capacidad demostrada desde UNIX/32V de 1979, port a VAX, de trasladar el sistema a plataformas distintas al PDP-11 original con cambios mínimos en el código.
- 12. Estandarización mediante POSIX y la Single UNIX Specification: Garantizan la interoperabilidad y portabilidad del software entre distintas implementaciones certificadas de UNIX.
- 13. Marca registrada y certificación oficial: El nombre UNIX® está protegido y administrado por The Open Group, que certifica qué sistemas operativos pueden usarlo legítimamente (actualmente AIX, Solaris, HP-UX, macOS, entre otros).
- 14. Herramientas de desarrollo de software integradas: Compilador C, ensamblador, enlazador (ld), y la utilidad make (1976) para automatización de compilación mediante control de dependencias.
- 15. Documentación estandarizada mediante páginas de manual: Desde la Primera Edición ≡ UNIX V1 de 1971, cada comando y llamada al sistema se documenta de forma uniforme y consultable mediante el comando
man. - 16. Capacidad de comunicación entre sistemas remotos: Mediante uucp (Séptima Edición ≡ UNIX V7 de 1979) para transferencia de archivos y correo, y posteriormente mediante la pila TCP/IP incorporada a través de la rama BSD.
- 17. Modelo de licenciamiento comercial y académico dual: Distribuido tanto a universidades con fines educativos (desde la Quinta Edición ≡ UNIX V7 de 1974) como bajo licencia comercial a partir de la Sexta Edición ≡ UNIX V6 de 1975, lo que impulsó su adopción simultánea en investigación e industria.
- 18. Arquitectura en capas concéntricas: Hardware → núcleo → bibliotecas del sistema → utilidades/comandos → aplicaciones de usuario, con fronteras claras entre cada nivel a través de la interfaz de llamadas al sistema.
💡 Curiosidad: UNIX fue originalmente escrito en ensamblador para una PDP-7, y posteriormente reescrito en C en 1973, lo que lo convirtió en uno de los primeros sistemas operativos portables.
Historia del sistema UNIX
La historia de UNIX comienza en 1969 en los
El proyecto nació en 1969 como una reacción al fracaso comercial del proyecto Multics, en el que Bell Labs había participado junto al MIT y General Electric. Ken Thompson, usando un PDP-7 disponible, escribió una versión simplificada y experimental que Brian Kernighan bautizó como Unics (Uniplexed Information and Computing Service), en contraste con la complejidad de Multics.
En 1971 el sistema fue reescrito para el nuevo minicomputador PDP-11 y publicado como la Primera Edición ≡ UNIX V1, documentada en el primer manual del programador (03/11/1971), usado inicialmente para el procesamiento de textos del departamento de patentes de Bell Labs.
Entre 1972 y 1973 se introdujeron dos innovaciones decisivas: las tuberías (pipes), que permiten encadenar programas pequeños en la Tercera Edición ≡ UNIX V3, y la reescritura casi completa del núcleo en el lenguaje C en la Cuarta Edición ≡ UNIX V4 de 1973), lo que dotó a UNIX de una portabilidad sin precedentes para la época.
La Quinta Edición ≡ UNIX V5 de 1974, fue la primera distribuida de forma coordinada a universidades con fines educativos, lo que impulsó su adopción académica, especialmente en la Universidad de California en Berkeley, donde Ken Thompson pasó un año sabático. Esa colaboración dio origen, a partir de la Sexta Edición ≡ UNIX V6 de 1975, a la rama Berkeley Software Distribution (BSD), desarrollada por Bill Joy y otros estudiantes, que evolucionaría de forma paralela e independiente a la rama comercial de AT&T.
La Séptima Edición ≡ UNIX V7 de 1979, es considerada la última versión de investigación ampliamente distribuida antes de la comercialización plena de UNIX y constituye el punto de bifurcación formal entre las dos grandes ramas históricas: System V (línea comercial de AT&T, vía UNIX/32V y UNIX System III) y BSD (línea académica de Berkeley). Con la fragmentación de AT&T en 1984, la compañía pudo comercializar UNIX abiertamente, lanzando UNIX System V (1983) como primera versión totalmente soportada comercialmente.
Durante los años 80 y principios de los 90, UNIX System V evolucionó a través de las versiones SVR2, SVR3 y culminó en SVR4 (1989), fruto de un proyecto de unificación entre AT&T y Sun Microsystems que combinó elementos de UNIX System V, BSD, Xenix y SunOS. Este período, conocido como las 'guerras de UNIX', vio proliferar variantes comerciales incompatibles entre sí (AIX, HP-UX, IRIX, SunOS/Solaris, Xenix, entre otras), lo que impulsó la creación de estándares de portabilidad como POSIX y, más tarde, la Single UNIX Specification.
En 1993 AT&T vendió los derechos de UNIX System V y la marca a Novell; en 1995 Novell revendió el código fuente y UnixWare a Santa Cruz Operation (SCO), aunque retuvo (según sentencias judiciales posteriores) la titularidad del copyright. La marca UNIX® en sí quedó, desde 1994, bajo la administración de The Open Group (fusión de X/Open y Open Software Foundation), entidad que continúa certificando hoy en día qué sistemas operativos pueden llamarse legítimamente 'UNIX'. La disputa legal SCO contra IBM (iniciada en 2003) marcó el fin efectivo del desarrollo comercial agresivo de la línea AT&T/SCO.
Timeline Resumido de UNIX:
Componentes del sistema UNIX
UNIX se estructura clásicamente en capas concéntricas: el hardware en el centro, encima el núcleo, luego las bibliotecas del sistema y los comandos/utilidades, y en el exterior las aplicaciones del usuario. A continuación el detalle de cada componente.
1. Núcleo (kernel)
Es el componente central, de tipo monolítico, que se ejecuta en modo privilegiado y gestiona directamente el hardware. Se divide en varios subsistemas:
- Gestión de procesos: creación (
fork()), ejecución (exec()), planificación (scheduler) con reparto de tiempo de CPU, y terminación (exit(),wait()). - Gestión de memoria: asignación de memoria a procesos, memoria virtual (paginación, introducida en SVR2/BSD), swapping.
- Sistema de archivos: implementación del árbol jerárquico, inodos, buffer caché de disco.
- Entrada/salida (E/S): manejadores de dispositivos (device drivers), tratados como archivos especiales en
/dev. - Comunicación entre procesos (IPC): señales, tuberías (pipes), memoria compartida, colas de mensajes, semáforos (estos tres últimos incorporados formalmente en UNIX System V — "IPC de System V").
- Interfaz de llamadas al sistema (system calls): la única puerta de entrada controlada entre los programas de usuario y el núcleo (open, read, write, close, fork, exec, etc.).
2. Shell (intérprete de comandos)
Capa de interfaz entre el usuario y el núcleo; interpreta comandos y los traduce en llamadas al sistema o en ejecución de programas. No forma parte del núcleo, sino que es un programa de usuario más.
- Thompson shell: el original, desde la Primera a la Sexta Edición.
- Bourne shell (sh): introducido en la Séptima Edición de 1979, primer shell con verdadero lenguaje de programación (variables, control de flujo).
- Variantes posteriores: C shell (csh, BSD), Korn shell (ksh, AT&T), y más tarde bash (GNU/Linux).
3. Sistema de archivos
- Estructura jerárquica única, con la raíz / y directorios montables.
- Inodos: estructuras que almacenan los metadatos de cada archivo (propietario, permisos, tamaño, punteros a bloques de datos), separadas del nombre del archivo.
- Tipos de archivo: ordinarios, directorios, especiales de dispositivo (carácter y bloque), tuberías con nombre (desde System III), enlaces simbólicos (incorporados vía BSD).
- Permisos: modelo usuario/grupo/otros con lectura, escritura y ejecución, más bits especiales (setuid, setgid, sticky bit).
- Jerarquía estándar de directorios, consolidada por convención a lo largo de las ediciones:
/bin,/etc,/dev,/lib,/tmp,/usr,/home(o/usren las ediciones más tempranas).
4. Bibliotecas del sistema (system libraries)
Capa intermedia entre los programas y las llamadas al sistema: ofrecen funciones de alto nivel (printf, malloc, strcpy, etc.) que internamente invocan las llamadas al sistema del núcleo. La biblioteca estándar de C (libc) es la más importante, y su desarrollo estuvo íntimamente ligado a UNIX desde la Cuarta Edición.
5. Utilidades y comandos (userland)
Programas independientes del núcleo que materializan la "filosofía UNIX" de herramientas pequeñas y combinables:
- Manipulación de archivos: ls, cp, mv, rm, cat, chmod, chown.
- Procesamiento de texto: ed (y luego vi, de BSD), grep, sed, awk, sort.
- Compilación y desarrollo: cc/compilador C, make, ld (enlazador), lint.
- Administración: ps, kill, mount, su.
- Comunicación: mail, write, uucp (transferencia de archivos y correo entre sistemas, desde UNIX V7).
- Documentación y tipografía: roff/troff, herencia directa del propósito original del proyecto (procesamiento de textos de patentes).
6. Demonios (daemons)
Procesos en segundo plano, sin terminal asociado, que prestan servicios del sistema: init (proceso maestro que arranca el sistema, PID 1), cron (tareas programadas), getty/login (gestión de sesiones de terminal), y más adelante demonios de red como sendmail o inetd (incorporados vía BSD).
7. Mecanismos de comunicación entre procesos (IPC)
- Tuberías (pipes): comunicación unidireccional entre procesos, desde la Tercera Edición de 1973.
- Tuberías con nombre (named pipes / FIFOs): desde System III de 1982.
- Señales: notificación asíncrona a procesos.
- IPC de System V: memoria compartida, semáforos y colas de mensajes (desde System V, 1983).
- Sockets y TCP/IP: incorporados a través de la rama BSD, no de la línea AT&T original.
8. Interfaz de llamadas al sistema (system call interface)
El "contrato" formal entre el espacio de usuario y el núcleo. Es el componente que las distintas certificaciones (POSIX, Single UNIX Specification) estandarizan para garantizar portabilidad entre variantes de UNIX.
Filosofía del sistema UNIX
La filosofía UNIX se basa en un conjunto de principios que priorizan la simplicidad, la modularidad y la reutilización.
Principios fundamentales
- Haz una cosa y hazla bien: Cada programa debe tener una única función bien definida.
- Todo es un archivo: Dispositivos, procesos y otros recursos del sistema se representan como archivos.
- Escribe programas que trabajen juntos: Los programas deben comunicarse mediante texto simple (pipe).
- Portabilidad: El sistema debe ser portable a diferentes arquitecturas.
- Simplicidad: Prefiere soluciones simples y elegantes sobre las complejas.
📖 Referencia: La filosofía UNIX fue popularizada por el libro "The UNIX Programming Environment" de Brian Kernighan y Rob Pike.
Aspectos Técnicos de UNIX
| Aspecto | Detalle |
|---|---|
| Nombre | UNIX / UNIX® (marca registrada actualmente de The Open Group) |
| Desarrollador original | Bell Labs (AT&T) — Ken Thompson, Dennis Ritchie y colaboradores |
| Familia | Familia UNIX (línea AT&T / System V) |
| Escrito en | Ensamblador (Primera a Tercera Edición); C (desde la Cuarta Edición, 1973) |
| Tipo de núcleo | Monolítico |
| Modelo de código | Originalmente propietario/cerrado; algunas ediciones tempranas (hasta V7 y 32V) han sido liberadas posteriormente bajo licencia tipo BSD por Caldera/SCO (2002) |
| Interfaz por defecto | Línea de comandos (Thompson shell en V1–V6; Bourne shell desde V7) |
| Plataformas históricas | PDP-7, PDP-11, VAX (32V), y posteriormente numerosas arquitecturas comerciales |
| Marca UNIX® | Activo: la marca la administra The Open Group y certifica sistemas vigentes bajo la Single UNIX Specification (p. ej. IBM AIX, Oracle Solaris, HPE HP-UX, macOS, IBM z/OS). |
| Estado desarrollo | Descontinuado. El desarrollo directo de AT&T/USL/Novell terminó tras la venta del código de System V y la marca UnixWare a SCO (1995). No hay desarrollo activo de 'UNIX' como producto único de AT&T. |
Aportes de UNIX realizados a la informática
- Popularizó el sistema de archivos jerárquico moderno basado en inodos, con un único árbol de directorios independiente del dispositivo físico, modelo adoptado prácticamente por todos los sistemas operativos posteriores.
- Introdujo y consolidó la 'filosofía UNIX': programas pequeños, especializados en una sola tarea, combinables entre sí mediante tuberías (pipes), principio de diseño que influyó en el desarrollo de software durante más de cinco décadas.
- Estableció el paradigma 'todo es un archivo', tratando dispositivos, terminales y otros recursos del sistema como archivos especiales accesibles con las mismas llamadas de E/S.
- Impulsó la creación y consolidación del lenguaje de programación C (Dennis Ritchie), al reescribir su propio núcleo en dicho lenguaje en 1973, demostrando que un sistema operativo podía ser a la vez eficiente y portable.
- Sentó las bases del modelo multiusuario y multitarea con permisos por usuario y grupo, precursor directo de los modelos de seguridad y control de acceso de los sistemas operativos actuales.
- A través de su rama BSD, contribuyó decisivamente a la implementación temprana de la pila de protocolos TCP/IP, tecnología fundamental en el desarrollo de Internet.
- Originó el concepto de shell como intérprete de comandos programable (Thompson shell, luego Bourne shell), estableciendo las bases del scripting y la automatización de tareas en sistemas operativos.
- Motivó la creación de estándares de portabilidad de software como POSIX y, posteriormente, la Single UNIX Specification, que hoy garantizan la interoperabilidad entre sistemas operativos de distintos fabricantes.
- Impulsó herramientas fundamentales para la ingeniería de software colaborativa, como make (automatización de compilación) y SCCS (Source Code Control System), antecesoras directas de los sistemas de control de versiones modernos.
- Constituye la base conceptual y, en muchos casos, de código directo, de prácticamente toda la informática moderna basada en sistemas tipo Unix: BSD, macOS/Darwin, GNU/Linux (que adopta su filosofía de diseño y el estándar POSIX aunque no comparte código), y sistemas móviles como Android, cuyo núcleo Linux también se inspira en estos principios.
😈 Berkeley Software Distribution (BSD)
Genealogía, historia y sistemas derivados de BSD
Descripción del sistema BSD
BSD (Berkeley Software Distribution), conocida también como Berkeley Unix, es un sistema operativo derivado de Unix, discontinuado, desarrollado y distribuido entre 1977 y 1995 por el Computer Systems Research Group (CSRG) de la Universidad de California, Berkeley.
BSD una rama directa del Unix original de AT&T/Bell Labs: BSD compartió el código base y el diseño inicial de ese Unix, por lo que históricamente se le ha considerado "BSD UNIX", una variante propia dentro de la familia Unix.
A lo largo de los años ochenta, BSD fue ampliamente adoptado por fabricantes de estaciones de trabajo en forma de variantes propietarias de Unix, como Ultrix de DEC y SunOS de Sun Microsystems, gracias a la facilidad con la que podía licenciarse y a la familiaridad que tenían con él los fundadores de numerosas empresas tecnológicas de la época.
Aunque estas variantes propietarias fueron en gran medida sustituidas en los años noventa por UNIX System V Release 4 y OSF/1 (ambos con código incorporado de BSD), los últimos lanzamientos de BSD sentaron las bases de varios proyectos de código abierto que continúan activos en la actualidad: FreeBSD, NetBSD, OpenBSD y DragonFly BSD, entre otros. Hoy el término "BSD" se utiliza a menudo de forma genérica para referirse a cualquiera de estos descendientes.
Historia del sistema BSD
El primer contacto de Berkeley con Unix se produjo en 1974, cuando el profesor Bob Fabry solicitó la instalación de una copia del sistema en un PDP-11/45. Al año siguiente, Ken Thompson tomó un año sabático en Bell Labs para instalar Unix Versión 6 en Berkeley y trabajar en una implementación de Pascal para el sistema; los estudiantes de posgrado Chuck Haley y Bill Joy mejoraron ese trabajo y desarrollaron el editor "ex".
El interés de otras universidades por el software desarrollado en Berkeley llevó a Bill Joy a compilar, en 1977, la primera Berkeley Software Distribution (1BSD), publicada el 09/03/1978 y enviada a unas 30 instituciones. Le siguió 2BSD en mayo de 1979, que incorporó el editor "vi" y el "C shell" (csh), ambos obra de Joy y aún vigentes en sistemas Unix actuales.
La llegada de un equipo VAX a Berkeley en 1978 impulsó el desarrollo de 3BSD, publicado a finales de 1979, con un núcleo reescrito por Özalp Babaoğlu que incorporó memoria virtual. El éxito de 3BSD fue determinante para que DARPA financiara al recién creado Computer Systems Research Group (CSRG), lo que dio lugar a la serie 4BSD (1980) y a las versiones 4.1BSD (1981) y sus variantes intermedias 4.1a, 4.1b y 4.1c.
4.2BSD, publicado en agosto de 1983, fue la primera versión posterior a la salida de Bill Joy hacia la cofundación de Sun Microsystems; el liderazgo del proyecto recayó entonces en Mike Karels y Marshall Kirk McKusick. Esta versión también introdujo la icónica mascota "BSD Daemon", dibujada por John Lasseter. 4.3BSD (junio de 1986) refinó el rendimiento de las funciones introducidas en 4.2BSD y consolidó la implementación TCP/IP de Berkeley, que DARPA determinó superior a la de BBN Technologies tras extensas pruebas.
Tras 4.3BSD se decidió abandonar la plataforma VAX. El intento de portar el sistema a la plataforma "Tahoe" (4.3BSD-Tahoe, 1988) no prosperó comercialmente, pero dejó como legado la separación entre código dependiente e independiente del hardware. En paralelo, el creciente costo de las licencias de código fuente de AT&T impulsó la publicación de Networking Release 1 (Net/1) en junio de 1989, la primera distribución de BSD libremente redistribuible, aunque limitada al código de red.
El desarrollador Keith Bostic impulsó después la reescritura de todas las utilidades estándar de Unix sin usar código de AT&T, un esfuerzo que culminó en junio de 1991 con Networking Release 2 (Net/2), un sistema operativo casi completo y libremente distribuible. Net/2 sirvió de base para dos portes independientes a la arquitectura Intel 80386: el proyecto libre 386BSD, de William Jolitz, y el producto propietario BSD/386 (posteriormente BSD/OS), de Berkeley Software Design Inc. (BSDi).
La publicación de Net/2 desencadenó la demanda USL v. BSDi, presentada en abril de 1992 por Unix System Laboratories (subsidiaria de AT&T), que obtuvo una orden judicial que frenó la distribución de Net/2 mientras se determinaba la validez de sus reclamaciones de derechos de autor. Este litigio ralentizó durante casi dos años el desarrollo de los descendientes libres de BSD, periodo durante el cual los sistemas basados en el núcleo Linux, sin ambigüedad legal equivalente, ganaron terreno. El propio Linus Torvalds declaró que, de haber estado disponibles 386BSD o el núcleo GNU en su momento, probablemente no habría creado Linux.
La demanda se resolvió en enero de 1994, mayormente a favor de Berkeley: de los 18 000 archivos de la distribución, solo 3 debieron eliminarse y 70 modificarse para incluir avisos de derechos de autor de USL. Esto permitió la publicación de 4.4BSD-Lite en marzo de 1994, ya sin necesidad de licencia de código fuente de USL. El último lanzamiento realizado por Berkeley fue 4.4BSD-Lite Release 2, en 1995, tras el cual se disolvió el CSRG y cesó el desarrollo de BSD en la universidad.
📌 Hito importante: En 1991, 386BSD se convirtió en la primera versión completa de BSD para x86.
Componentes del sistema BSD
Sus componentes se documentan principalmente en fuentes primarias como "4.2BSD and 4.3BSD as examples of the UNIX system" (Quarterman, Silberschatz y Peterson, 1985) y el libro "The Design and Implementation of the 4.3BSD/4.4BSD UNIX Operating System" de McKusick, Karels, Leffler y Bostic. A continuación el desglose detallado.
1. El núcleo (kernel)
BSD emplea un núcleo monolítico, escrito en C, que se ejecuta en un único espacio de direcciones y contiene todos los subsistemas centrales del sistema operativo. Según el análisis clásico de Berkeley UNIX 4.2BSD, este núcleo comprende cuatro subsistemas principales: red, sistema de archivos, memoria virtual y gestión de procesos, a los que se suma el sistema de entrada/salida (E/S).
2. Gestión de procesos
- Planificación de procesos (scheduling) por turnos con prioridades dinámicas.
- Control de trabajos (job control), introducido en 4.1BSD y refinado en 4BSD sobre el C shell: permite suspender, reanudar y mover procesos entre primer y segundo plano.
- Señales "confiables" (reliable signals), introducidas en 4BSD (11/1980): corrigieron problemas de las señales originales de Unix, evitando la pérdida de señales durante su manejo.
- Autoconfiguración de dispositivos e identificadores C largos, incorporados en 4.1BSD.
3. Gestión de memoria (memoria virtual)
- Memoria virtual paginada (paginación bajo demanda y reemplazo de páginas), implementada por Bill Joy y Özalp Babaoğlu para 3BSD (finales de 1979) sobre la arquitectura VAX, sustituyendo el modelo de intercambio (swap) sin paginación de UNIX/32V.
- Un asignador de memoria de propósito general para el núcleo, descrito por McKusick y Karels en 1988 para 4.3BSD.
- 4.4BSD introdujo un nuevo sistema de memoria virtual, con mejoras de portabilidad respecto al diseño original, muy dependiente del hardware del VAX.
4. Sistema de archivos
- El Berkeley Fast File System (FFS), implementado por Marshall Kirk McKusick e introducido en la versión intermedia 4.1b (06/1982) y consolidado en 4.2BSD (08/1983): mejoró drásticamente el rendimiento del sistema de archivos original de Unix mediante una mejor organización del disco (grupos de cilindros, bloques y fragmentos de tamaño variable).
- La interfaz de vnodes (nodos virtuales), apilable y extensible, introducida en 4.4BSD, que permitió soportar múltiples tipos de sistemas de archivos de forma uniforme.
- Soporte para numerosos tipos de sistemas de archivos en 4.4BSD, incluyendo sistemas loopback, de unión (union) y un sistema de archivos con estructura de bitácora (log-structured filesystem).
- El Network File System (NFS), incorporado mediante una implementación de la Universidad de Guelph en 4.3BSD-Reno (principios de 1990).
5. Subsistema de red
- La pila de protocolos TCP/IP, integrada por primera vez de forma preliminar en la versión intermedia 4.1a (04/1982, basada en el trabajo de BBN Technologies) y consolidada como implementación de referencia en 4.2BSD (08/1983); refinada en 4.3BSD con algoritmos de Van Jacobson.
- Los sockets de Berkeley (interfaz de programación de aplicaciones para comunicaciones en red), que se convirtieron en el estándar de facto para programación de red en sistemas Unix y, posteriormente, en otros sistemas operativos.
- Berknet, un paquete de red anterior (desarrollado por Eric Schmidt en 2BSD, 1979) que conectaba hasta 26 equipos para correo y transferencia de archivos, precursor de las capacidades de red posteriores.
- Soporte para la suite de protocolos XNS (Xerox Network Systems), añadida en 4.3BSD, y para la suite de protocolos ISO, añadida en 4.4BSD.
6. Sistema de entrada/salida (E/S)
- Controladores de dispositivo (device drivers) integrados en el núcleo monolítico.
- Primitivas de comunicación entre procesos (IPC) sofisticadas, introducidas en 4.2BSD/4.3BSD, además de los sockets: tuberías (pipes), memoria compartida y semáforos de estilo System V.
- Interfaz de mapeo de memoria (mmap), desarrollada durante el trabajo en 4.3BSD.
7. El "userland" (espacio de usuario)
- La biblioteca C, la API base sobre la que se construyen las utilidades del sistema y las aplicaciones.
- Intérpretes de línea de órdenes (shells): el C shell (csh), creado por Bill Joy para 2BSD (1979), con sintaxis inspirada en el lenguaje C.
- Editores de texto: el editor ex (Bill Joy, para 1BSD, 1978) y su versión visual, vi (2BSD, 1979), uno de los aportes más perdurables de BSD a la informática.
- La biblioteca Curses, incorporada en 4BSD (11/1980), para la construcción de interfaces de usuario en modo texto.
- El sistema de correo: delivermail, antecesor de sendmail, introducido también en 4BSD.
8. Arquitectura general: "monolítico pero modular"
Es importante precisar que, aunque el núcleo de BSD es monolítico (todos los subsistemas comparten un mismo espacio de direcciones), su diseño interno es modular: los subsistemas de memoria virtual, red, sistemas de archivos y controladores de dispositivos permanecen separados mediante interfaces internas estrictas, aunque se ejecuten dentro del mismo espacio del núcleo. Este patrón de diseño —"monolítico pero modular"— es el que heredaron y refinaron los descendientes directos de BSD (FreeBSD, NetBSD, OpenBSD y DragonFly BSD).
Aspectos Técnicos de BSD
| Campo | Detalle |
|---|---|
| Nombre completo | Berkeley Software Distribution (BSD), también conocida como Berkeley Unix |
| Desarrollador | Computer Systems Research Group (CSRG), Universidad de California, Berkeley |
| Familia | Unix (derivado directo de AT&T Unix / Research Unix) |
| Escrito en | C |
| Estado | Descontinuado — La línea original de Berkeley finalizó en 1995 con 4.4BSD-Lite Release 2. La rama 2.11BSD para PDP-11 recibió parches de voluntarios hasta el siglo XXI (parche n.º 499, 02/01/2026). |
| Modelo de código fuente | Originalmente disponible por licencia (sujeto a licencia de código fuente de AT&T Unix); a partir de Net/1 (1989) y especialmente 4.4BSD-Lite (1994), libremente redistribuible bajo licencia BSD |
| Licencia | Licencia BSD |
| Lanzamiento inicial | 09/03/1978 (1BSD) |
| Último lanzamiento de Berkeley | 1995 (4.4BSD-Lite Release 2) |
| Plataformas soportadas | PDP-11, VAX-11 (posteriormente portado a Intel 80386 mediante 386BSD, derivado de Net/2) |
| Tipo de núcleo | Monolítico |
| Interfaz de usuario predeterminada | Intérprete de línea de órdenes (shell de Unix; introdujo el C shell / csh) |
| Influenciado por | Unix (AT&T / Research Unix, especialmente la Versión 6 y la Versión 7) |
| Sistemas influenciados | 386BSD, NetBSD, FreeBSD, OpenBSD, DragonFly BSD, BSD/OS, NeXTSTEP, Darwin (base de macOS/iOS), SunOS, Ultrix, OSF/1, DEMOS (clon soviético) |
Aportes de BSD realizados a la informática
- El editor "vi", creado por Bill Joy para 2BSD (1979), se convirtió en uno de los editores de texto más influyentes y perdurables de la historia de la informática, todavía presente (como vi/vim) en prácticamente todos los sistemas Unix y GNU/Linux actuales.
- El "C shell" (csh), también obra de Bill Joy, introdujo un intérprete de órdenes con sintaxis inspirada en el lenguaje C y control de trabajos (job control), influyendo en shells posteriores.
- El Berkeley Fast File System (FFS), implementado por Marshall Kirk McKusick e introducido en 4.1b/4.2BSD, mejoró drásticamente el rendimiento y la fiabilidad de los sistemas de archivos Unix, y su diseño influyó en sistemas de archivos posteriores dentro y fuera de la familia Unix.
- La implementación de la pila de protocolos TCP/IP integrada en 4.2BSD (1983) y refinada en 4.3BSD, desarrollada con aportes de Van Jacobson, se convirtió en la base de facto de las comunicaciones en Internet durante décadas; la revista InformationWeek llegó a calificar a 4.3BSD como "el mayor sustento teórico de Internet".
- Los sockets de Berkeley (Berkeley sockets), la interfaz de programación para comunicaciones en red introducida en BSD, se convirtieron en el estándar de facto para la programación de redes, adoptado posteriormente por prácticamente todos los sistemas operativos, incluyendo Windows (a través de Winsock).
- La licencia BSD, surgida de la publicación de Networking Release 1 y 2, estableció uno de los modelos de licenciamiento permisivo más influyentes del software libre y de código abierto, empleado hasta hoy por innumerables proyectos ajenos a la familia BSD.
- El código de red de BSD fue incorporado directamente por Microsoft en su implementación de TCP/IP para Windows, y las herramientas de red de línea de órdenes de BSD se han distribuido, recompiladas, en Windows desde Windows 2000.
- 4.4BSD-Lite (1994) y 4.4BSD-Lite Release 2 (1995) constituyen la base directa o indirecta de FreeBSD, NetBSD, OpenBSD y DragonFly BSD, proyectos que continúan activos y que a su vez sustentan sistemas comerciales como Darwin (núcleo de macOS e iOS de Apple) y numerosos dispositivos embebidos y de red.
- La biblioteca de programación Curses, incorporada en 4BSD (1980), sentó las bases para la creación de interfaces de usuario en modo texto, y su influencia se extiende hasta bibliotecas modernas como ncurses.
- El litigio USL v. BSDi (1992-1994), pese a haber ralentizado temporalmente el desarrollo de BSD, sentó un precedente legal favorable a la redistribución libre de código derivado de Unix, clarificando el terreno jurídico en el que se desarrollaría buena parte del software de código abierto posterior.
*Fuente principal: Wikipedia (inglés) — "Berkeley Software Distribution" e "History of the Berkeley Software Distribution", consultadas el 21/08/2026.
🍎 BSD + Mach
La fusión del núcleo Mach con el sistema BSD: de NeXTSTEP a macOS
Introducción a los sistemas BSD+Mach
Se denomina de "sistemas BSD + Mach" a la familia de sistemas operativos UNIX y de tipo UNIX que combinan dos componentes de origen y diseño distintos: el micronúcleo Mach, desarrollado en la Carnegie Mellon University (CMU), y un subsistema derivado de BSD (Berkeley Software Distribution), que aporta la semántica de llamadas al sistema, el sistema de archivos, la pila de red y el modelo de procesos propios de UNIX. Esta combinación —un núcleo de comunicación por mensajes de propósito general, sobre el que se implementa la interfaz UNIX clásica— constituye una de las líneas arquitectónicas más influyentes y longevas de la historia de los sistemas operativos, con una trayectoria que se extiende de forma ininterrumpida desde mediados de los años 80 hasta la actualidad.
Dentro de esta familia, catalogada en DistrOSList, se agrupan sistemas de linajes corporativos e institucionales distintos, pero que comparten esta misma base arquitectónica: OSF/1 y su evolución comercial Digital UNIX/Tru64 UNIX (Digital Equipment Corporation); NEXTSTEP y OPENSTEP (NeXT Computer); Rhapsody, Darwin OS y macOS —junto con sus derivados iOS, iPadOS, watchOS, tvOS, audioOS y visionOS— (Apple Inc.); y MkLinux, un caso particular en el que el núcleo GNU/Linux se ejecuta como servidor sobre el micronúcleo Mach en lugar de la capa BSD habitual.
El rasgo común a todos estos sistemas es que ninguno de ellos parte de un núcleo monolítico UNIX tradicional. En su lugar, adoptan como base el micronúcleo Mach y construyen sobre él, con distinto grado de integración, la funcionalidad UNIX estándar. Esta decisión de diseño ha dado lugar a una de las bases de software más ampliamente desplegadas del mundo: prácticamente todos los dispositivos Apple en uso —computadoras Macintosh, iPhone, iPad, Apple Watch, Apple TV y dispositivos de la línea Vision— ejecutan, en su núcleo, una evolución directa de esta arquitectura.
Historia de los sistemas BSD+Mach
Antecedentes: Accent y el origen del proyecto Mach
El antecedente directo de Mach es Accent, un sistema operativo experimental de comunicación por paso de mensajes desarrollado en la Carnegie Mellon University a comienzos de los años 80 bajo la dirección de Richard Rashid. Accent, ejecutado sobre estaciones de trabajo PERQ, introdujo conceptos como los puertos y mensajes como mecanismo central de comunicación entre procesos, y el uso de mapeo de memoria virtual para transferir información de forma eficiente entre procesos.
El proyecto Mach en la Carnegie Mellon University (1985–1994)
En 1985, con financiamiento de DARPA, Richard Rashid y Avie Tevanian iniciaron en la CMU el desarrollo de Mach, concebido como un reemplazo binario y funcionalmente compatible del núcleo de BSD 4.2/4.3, de forma que el sistema resultante pudiera ejecutar directamente aplicaciones y utilidades UNIX ya existentes.
Las primeras versiones de Mach (Mach 1 y Mach 2, hacia 1986–1987) incorporaban el código del núcleo de 4.3BSD prácticamente completo, ejecutándose dentro del mismo espacio de direcciones que los nuevos mecanismos de Mach. La versión Mach 2.5 (hacia 1990) representa el punto más maduro de esta rama híbrida, y fue la que adoptaron las primeras implementaciones comerciales, incluyendo NEXTSTEP y la línea inicial de OSF/1.
El proyecto evolucionó posteriormente hacia un diseño de micronúcleo "puro": en Mach 3.0 (completado hacia 1994), todo el código correspondiente a BSD fue extraído del espacio del núcleo y reubicado como un servidor de espacio de usuario. El proyecto Mach en la CMU se dio por concluido oficialmente con esta versión.
Adopción industrial: OSF, DEC, NeXT y Apple
La flexibilidad, portabilidad y el respaldo académico/gubernamental de Mach atrajeron rápidamente el interés de la industria. Dos líneas de adopción, inicialmente independientes entre sí, dieron origen a la mayoría de los sistemas de esta familia:
- Por un lado, en 1988 un consorcio de fabricantes fundó la Open Software Foundation (OSF) con el objetivo de desarrollar una implementación de UNIX independiente de AT&T. OSF adoptó Mach como base de OSF/1, presentado en 1990. DEC llevó esta base a su línea de estaciones y servidores Alpha AXP, dando origen sucesivamente a OSF/1 AXP, Digital UNIX y, finalmente, Tru64 UNIX.
- Por otro lado, NeXT Computer adoptó Mach como base de NEXTSTEP desde su primera versión, presentada en 1988. NEXTSTEP evolucionó hacia el estándar multiplataforma OpenStep y su implementación OPENSTEP for Mach.
Estas dos líneas convergieron parcialmente en 1996-1997: Apple Computer y la propia OSF colaboraron en MkLinux, y Apple adquirió NeXT (anunciado en diciembre de 1996), incorporando la tecnología NEXTSTEP/OPENSTEP como base de su siguiente generación de sistemas operativos: primero como Rhapsody (1997-1999), después como Darwin OS (liberado como código abierto en el año 2000) y, finalmente, como núcleo de Mac OS X (macOS desde 2016), lanzado comercialmente en 2001.
Expansión hacia dispositivos móviles y consolidación (2007–actualidad)
A partir de 2007, la misma base Darwin/XNU fue adaptada por Apple para dar origen a iPhone OS (posteriormente iOS), extendiendo el linaje BSD + Mach al mercado masivo de dispositivos móviles. En los años siguientes, esta misma base se extendió a iPadOS, watchOS, tvOS, audioOS y visionOS.
Componentes de los sistemas BSD+Mach
Con independencia de la implementación concreta, los sistemas de esta familia comparten un conjunto de componentes arquitectónicos característicos, organizados en capas alrededor del micronúcleo Mach.
1. El micronúcleo Mach
- Tareas (tasks): unidad de propiedad de recursos. Cada tarea posee un espacio de direcciones virtual propio, un espacio de nombres de derechos de puerto y contiene uno o más hilos de ejecución.
- Hilos (threads): unidad mínima de ejecución de CPU dentro de una tarea. Mach introdujo el concepto de hilos ligeros como entidad de primera clase del núcleo.
- Puertos y mensajes (IPC): el mecanismo central de comunicación de Mach. Un puerto es un canal de comunicación simplex, protegido por el núcleo, al que sólo se puede acceder mediante derechos de envío o recepción ("port rights").
- Objetos de memoria y memoria virtual: Mach implementa un sistema de memoria virtual dispersa (sparse) de gran tamaño, con soporte de copy-on-write y de "paginadores" externos que pueden residir en espacio de usuario.
- MIG (Mach Interface Generator): herramienta que genera de forma automática el código de comunicación ("stubs") necesario para invocar servicios a través de mensajes Mach como si fueran llamadas a función locales.
2. La capa BSD
Sobre (o, según la implementación, integrada dentro de) el micronúcleo Mach, se sitúa la capa BSD, responsable de ofrecer la semántica clásica de UNIX: el modelo de procesos y señales, las llamadas al sistema POSIX/BSD, el sistema de archivos virtual (VFS), la pila de protocolos de red TCP/IP y la interfaz de sockets Berkeley.
3. Servidores y "personalidades" adicionales
En las configuraciones de micronúcleo puro (Mach 3.0), la funcionalidad de un sistema operativo completo se construye añadiendo, sobre el micronúcleo, uno o varios servidores de espacio de usuario que implementan una "personalidad" o interfaz determinada. El caso más habitual es el servidor UNIX/BSD, pero MkLinux constituye un caso particular en el que la personalidad implementada es el propio núcleo GNU/Linux.
4. Frameworks y componentes de alto nivel
- Application Kit / Foundation Kit (NEXTSTEP, OPENSTEP): conjunto de bibliotecas orientadas a objetos, escritas en Objective-C, que proporcionan los elementos fundamentales de interfaz gráfica y de programación de aplicaciones. Constituyen el antecedente directo de Cocoa.
- IOKit (Darwin/XNU): framework orientado a objetos para el desarrollo de controladores de dispositivos (drivers).
- launchd (Darwin/XNU): sistema unificado de gestión de arranque, procesos y servicios del sistema, introducido en Mac OS X 10.4 "Tiger".
- XNU ("X is Not Unix"): el núcleo empleado en Darwin/macOS/iOS, que combina de forma explícita el micronúcleo Mach, la capa BSD y el framework IOKit.
Aspectos Técnicos de BSD+Mach
Arquitectura híbrida frente a micronúcleo "puro"
Uno de los rasgos técnicos más característicos de esta familia es que, en la práctica, ninguna de sus implementaciones comerciales de mayor éxito emplea un micronúcleo Mach "puro". Si bien Mach 3.0 adoptó el modelo de "servidor único", las implementaciones comerciales de mayor difusión —NEXTSTEP/OPENSTEP sobre Mach 2.5, y especialmente XNU en Darwin/macOS/iOS— optaron por mantener la capa BSD integrada dentro del mismo espacio de direcciones que el micronúcleo, por razones de rendimiento.
Modelo de comunicación entre procesos (IPC) basado en capacidades
El mecanismo de IPC de Mach —mensajes enviados a puertos, con derechos de envío y recepción como capacidades de seguridad— constituye una alternativa de diseño frente al modelo de llamadas al sistema (syscalls) directas propio de los núcleos UNIX tradicionales.
Gestión de memoria virtual y objetos de memoria
El subsistema de memoria virtual de Mach separa la gestión de la memoria física (a cargo del núcleo) de las políticas de qué contenido respalda cada región de memoria (a cargo de "paginadores", que pueden implementarse en espacio de usuario mediante el mecanismo de objetos de memoria). Este diseño fue adoptado por 4.4BSD y, a través de él, por FreeBSD.
Portabilidad multiplataforma
Mach se diseñó desde el inicio con independencia de la arquitectura de hardware subyacente como objetivo explícito, lo que se refleja en la amplia variedad de arquitecturas sobre las que se han ejecutado sistemas de esta familia: Motorola 68k, Intel IA-32, Sun SPARC, HP PA-RISC, MIPS, DEC Alpha, PowerPC, x86-64 y ARM64.
Multiprocesamiento y soporte de tiempo real
El soporte de sistemas multiprocesador simétrico (SMP) estuvo entre los objetivos de diseño originales de Mach, en un momento en que la mayoría de los núcleos UNIX comerciales aún no ofrecían dicho soporte de forma nativa.
Compatibilidad UNIX y certificación de estándares
Pese a las diferencias internas de diseño, un objetivo constante en toda la familia ha sido mantener la compatibilidad con los estándares POSIX y con la Single UNIX Specification. Digital UNIX/Tru64 UNIX se ajustó formalmente a la Single UNIX Specification, y macOS, a partir de la versión 10.5 "Leopard" (2007), obtuvo la certificación "UNIX 03".
Aportes de BSD+Mach a la informática
Considerada como conjunto, la familia de sistemas BSD + Mach ha realizado aportes sustanciales y duraderos al desarrollo de la informática:
- Constituyó una de las validaciones experimentales y comerciales más influyentes de la viabilidad de las arquitecturas de micronúcleo, un campo de investigación que en los años 80 y 90 generó un intenso debate académico sobre las ventajas y limitaciones de este enfoque frente a los núcleos monolíticos tradicionales.
- Popularizó el modelo de comunicación entre procesos (IPC) basado en puertos, mensajes y derechos de capacidad, un diseño que ha influido en sistemas de comunicación entre procesos y en modelos de seguridad basados en capacidades más allá de la propia familia Mach.
- Introdujo y consolidó el concepto de hilos (threads) ligeros como entidad de primera clase del núcleo, independiente del proceso, contribuyendo a popularizar la programación multihilo en sistemas operativos de propósito general.
- Su subsistema de gestión de memoria virtual fue adoptado de forma independiente por 4.4BSD y, a través de este, por FreeBSD, influyendo en el diseño de memoria virtual de sistemas ajenos a la propia familia Mach.
- A través del linaje NEXTSTEP → OPENSTEP → Rhapsody → Darwin → macOS/iOS, sienta las bases técnicas de dos de los ecosistemas de software más extendidos del mundo: macOS y iOS/iPadOS, con miles de millones de dispositivos activos.
- Impulsó el desarrollo del lenguaje Objective-C y de los frameworks orientados a objetos (Application Kit, Foundation Kit, y su evolución en Cocoa), que a su vez influyeron de forma notable en el diseño de entornos de desarrollo de aplicaciones modernos.
- Aportó tecnologías de sistemas de archivos avanzados que trascendieron su sistema operativo de origen: el caso más destacado es AdvFS, desarrollado originalmente para Digital UNIX/Tru64 UNIX y posteriormente liberado como código abierto (bajo licencia GPLv2, en 2008) para su uso en GNU/Linux.
- A través de MkLinux, demostró la viabilidad técnica de ejecutar el núcleo GNU/Linux como servidor sobre un micronúcleo Mach, y sirvió de puente tecnológico entre el mundo GNU/Linux y el ecosistema Apple en la segunda mitad de los años 90.
- Estableció, a través de MIG (Mach Interface Generator), una técnica de generación automática de código de comunicación remota a partir de definiciones de interfaz, un enfoque reutilizado conceptualmente en generadores de stubs de otros sistemas de llamada a procedimiento remoto.
- Ha mantenido, de forma sostenida desde el año 2000, uno de los compromisos de código abierto más longevos por parte de una gran corporación tecnológica: Apple continúa publicando el código fuente de los componentes centrales de Darwin (incluyendo el propio XNU) bajo la Apple Public Source License.
🌞 Solaris / SunOS
Genealogía, historia y sistemas derivados de SunOS, Solaris, OpenSolaris e illumos
Descripción del sistema Solaris
Solaris (oficialmente Oracle Solaris desde 2010) es un sistema operativo Unix propietario originalmente desarrollado por Sun Microsystems para sus estaciones de trabajo y servidores basados en arquitecturas SPARC y, desde 1993, x86/x86-64. No pertenece a la familia GNU/Linux: su núcleo (denominado internamente SunOS) es un desarrollo Unix independiente, primero derivado de BSD (SunOS 1 a 4) y, a partir de la versión 5.0, basado en UNIX System V Release 4 (SVR4), con aportes de BSD y extensiones propias de Sun como NFS.
Solaris es especialmente reconocido por su escalabilidad en sistemas multiprocesador simétrico (SMP), su fuerte integración histórica con el hardware SPARC, y por haber originado tecnologías influyentes como ZFS, DTrace, Zonas/Contenedores de Solaris y el Service Management Facility (SMF). Entre 2005 y 2010, gran parte de su código se liberó bajo licencia CDDL a través del proyecto OpenSolaris, generando un ecosistema de derivados libres (illumos, OpenIndiana, SmartOS, entre otros) tras la cancelación del proyecto original por parte de Oracle.
Historia del sistema Solaris
Orígenes BSD (1982–1992)
Sun Microsystems fue fundada en 1982. Su primer sistema operativo, SunOS 1.0, se basó en UniSoft V7 UNIX y en 4.1BSD, reflejando la estrecha vinculación de Bill Joy —cofundador de Sun y figura clave del desarrollo de BSD en la Universidad de California, Berkeley— con ese linaje. Las versiones sucesivas (SunOS 2.x y 3.x) fueron incorporando bases BSD más recientes (4.2BSD) junto con utilidades tomadas de System V, además de introducir NFS (Network File System), una de las contribuciones más influyentes de Sun a la computación en red.
En 1987, AT&T y Sun anunciaron una colaboración para fusionar las principales variantes de Unix del mercado (BSD, System V y Xenix) en una nueva versión unificada: UNIX System V Release 4 (SVR4). El 4 de septiembre de 1991, Sun anunció que reemplazaría su Unix derivado de BSD (SunOS 4) por un sistema basado en SVR4, identificado internamente como SunOS 5 pero comercializado bajo un nuevo nombre: Solaris 2. Las versiones anteriores de SunOS (4.1.x) fueron renombradas retroactivamente como "Solaris 1".
La era SVR4: Solaris 2 a Solaris 10 (1992–2005)
Solaris 2.0 se publicó basado en SunOS 5.0, marcando el abandono de BSD como base principal del núcleo. Inicialmente exclusivo para SPARC, el soporte para x86 llegó con Solaris 2.1. Durante los años 90, Solaris se consolidó como una de las plataformas Unix comerciales dominantes en el segmento de servidores y estaciones de trabajo de alta gama.
A partir de Solaris 7, Sun simplificó la numeración eliminando el prefijo "2." del nombre comercial. Solaris 10, publicado el 31/01/2005, es considerado un hito mayor de la plataforma: introdujo DTrace (herramienta de diagnóstico dinámico), las Zonas de Solaris (virtualización ligera) y el Service Management Facility (SMF).
Apertura del código: OpenSolaris (2005–2010)
En junio de 2005, Sun liberó la mayor parte del código base de Solaris bajo la licencia CDDL, fundando el proyecto OpenSolaris. La primera distribución binaria pública, OpenSolaris 2008.05, se publicó el 05/05/2008. En este período se incorporó ZFS al código base (integrado en Solaris a partir de la actualización 6/06 de Solaris 10).
Adquisición por Oracle y consolidación como Oracle Solaris (2010–actualidad)
En enero de 2010, Oracle Corporation completó la adquisición de Sun Microsystems. En agosto de 2010, Oracle discontinuó las actualizaciones públicas del código fuente del núcleo de Solaris, revirtiendo de facto el modelo abierto y descontinuando la distribución OpenSolaris. Como consecuencia, un grupo de ingenieros de la comunidad OpenSolaris creó illumos, una bifurcación (fork) completamente libre del núcleo, que continúa activa a través de distribuciones como OpenIndiana y SmartOS.
Solaris 11, publicado en 2011, introdujo el Image Packaging System (IPS) y mejoras sustanciales de virtualización. El sistema continúa recibiendo actualizaciones periódicas (Support Repository Updates, SRU) bajo el estado Activo.
Componentes del sistema Solaris
Los componentes de Solaris se pueden resumir de la siguiente manera:
1. Núcleo (SunOS)
Núcleo monolítico propio, denominado SunOS, con módulos cargables dinámicamente en versiones recientes. A partir de SunOS 5.0 (Solaris 2), basado en UNIX System V Release 4.
2. Sistema de archivos
- ZFS (desde Solaris 10 6/06) — Sistema de archivos avanzado con gestión de volúmenes, sumas de verificación, snapshots y protección contra corrupción silenciosa.
- UFS — Sistema de archivos heredado de BSD, presente en todas las versiones de Solaris.
3. Gestión de servicios
- Service Management Facility (SMF) — Sistema de gestión de servicios con dependencias declarativas y reinicio automático, introducido en Solaris 10.
- Image Packaging System (IPS) — Sistema de gestión de paquetes introducido en Solaris 11.
4. Virtualización y contenedores
- Zonas de Solaris (Solaris Containers) — Virtualización a nivel de sistema operativo.
- Kernel Zones — Zonas con su propio núcleo, introducidas en Solaris 11.2.
5. Herramientas de diagnóstico
- DTrace — Framework de trazado y diagnóstico dinámico en producción.
6. Entornos de escritorio
- SunView — Entorno gráfico original de Sun.
- OpenWindows — Entorno gráfico basado en X11.
- CDE (Common Desktop Environment) — Entorno estándar en Solaris 2.5 a Solaris 10.
- GNOME — Entorno estándar desde Solaris 9/10, y en Solaris 11.
Aspectos Técnicos del sistema Solaris
| Aspecto | Detalle |
|---|---|
| Núcleo | Núcleo monolítico propio, denominado SunOS, con módulos cargables dinámicamente en versiones recientes. |
| Familia | Unix (BSD en SunOS 1–4; System V Release 4 desde SunOS 5.0 / Solaris 2). |
| Arquitecturas soportadas actualmente | SPARC (64 bits) y x86-64. Arquitecturas descontinuadas: Motorola 680x0, Sun386i, IA-32, PowerPC, Itanium. |
| Lenguajes de implementación | C y C++. |
| Modelo de código | Mixto — código cerrado (propietario) en la mayor parte de su historia; parcialmente abierto bajo licencia CDDL entre 2005 y 2010 (proyecto OpenSolaris); cerrado nuevamente desde agosto de 2010. |
| Sistema de paquetes | Image Packaging System (IPS) desde Solaris 11; anteriormente pkgadd/SVR4 packaging. |
| Sistemas de archivos destacados | ZFS (desde Solaris 10 6/06), UFS (heredado de BSD). |
| Entornos de escritorio | SunView, OpenWindows, CDE, GNOME (desde Solaris 9/10, estándar en Solaris 11). |
| Certificación | Registrado como compatible con Single UNIX Specification hasta el 29/04/2019. |
| Tecnologías propias destacadas | DTrace, Zonas/Contenedores de Solaris, Solaris Trusted Extensions, Service Management Facility (SMF). |
Aportes de Solaris a la informática
- Popularización del protocolo NFS (Network File System), desarrollado por Sun a partir de SunOS 2.0, que se convirtió en un estándar de facto para el acceso a archivos en red y fue posteriormente implementado en prácticamente todos los sistemas Unix y GNU/Linux.
- Desarrollo de DTrace, framework de trazado y diagnóstico dinámico en producción; su diseño influyó en herramientas equivalentes para FreeBSD, macOS y GNU/Linux (SystemTap y eBPF).
- Creación del sistema de archivos ZFS, que introdujo la gestión combinada de volúmenes y sistema de archivos, sumas de verificación end-to-end, snapshots eficientes y protección contra corrupción silenciosa; su código, liberado bajo CDDL, dio origen a OpenZFS, utilizado en GNU/Linux, FreeBSD y otros sistemas.
- Impulso del estándar UNIX System V Release 4 (SVR4), resultado de la colaboración entre Sun y AT&T, que unificó características de BSD, System V y Xenix y sirvió como referencia técnica para múltiples implementaciones comerciales de Unix.
- Introducción de las Zonas de Solaris, una de las primeras implementaciones robustas de virtualización a nivel de sistema operativo en entornos comerciales, con influencia conceptual sobre tecnologías posteriores de contenedores.
- Contribuciones tempranas a la computación en red mediante Open Network Computing (ONC), que incluyó, además de NFS, el mecanismo de llamada a procedimiento remoto (ONC RPC), ampliamente adoptado fuera del ecosistema Sun.
- Liberación del código base de Solaris bajo licencia CDDL en 2005 mediante el proyecto OpenSolaris, que amplió el catálogo de licencias de código abierto reconocidas y permitió la creación de derivados libres como illumos, OpenIndiana y SmartOS.
- Desarrollo del Service Management Facility (SMF), sistema de gestión de servicios con dependencias declarativas y reinicio automático, que influyó en el diseño de sistemas de inicio y gestión de servicios posteriores.
- Aportes a la multiprogramación y el multiprocesamiento simétrico (SMP) a gran escala, consolidando a Solaris como referencia técnica para la escalabilidad de servidores Unix con gran número de procesadores.
- Papel formativo en la trayectoria profesional de figuras clave del software libre y Unix —entre ellas Bill Joy, coautor de vi, csh y gran parte de la pila de red de BSD— cuyo trabajo en Sun y en el linaje SunOS/Solaris tuvo influencia directa en el desarrollo posterior de BSD y en el ecosistema Unix-like.
🐂 GNU
El Proyecto GNU, creador del concepto de software libre y de la licencia GPL.
Descripción del sistema GNU
El Proyecto GNU fue iniciado en 1983 por Richard Stallman con el objetivo de crear un sistema operativo completamente libre y compatible con UNIX. El nombre GNU es un acrónimo recursivo que significa "GNU's Not Unix".
El proyecto sentó las bases para la Free Software Foundation (FSF) en 1985 y estableció los principios del software libre, incluyendo las cuatro libertades esenciales: ejecutar, estudiar, redistribuir y mejorar el software.
El Sistema Operativo GNU utiliza el núcleo GNU Hurd (el núcleo oficial del proyecto) o Linux-libre (una versión del núcleo Linux sin firmware no libre). La combinación de GNU con el núcleo Linux es lo que conocemos como GNU/Linux.
💡 Curiosidad: El Proyecto GNU sentó las bases para la Free Software Foundation (FSF) en 1985.
Historia del sistema GNU
En 1983, Richard Stallman anunció el Proyecto GNU con el objetivo de desarrollar un sistema operativo completo y libre, inspirado en UNIX pero sin código propietario. El proyecto comenzó con herramientas de espacio de usuario: el editor Emacs, el compilador GCC, el depurador GDB y la biblioteca C glibc.
En 1985, Stallman fundó la Free Software Foundation (FSF) para apoyar el proyecto y promover el software libre. La FSF estableció las cuatro libertades esenciales del software libre:
- Libertad 0: Ejecutar el programa para cualquier propósito.
- Libertad 1: Estudiar cómo funciona el programa.
- Libertad 2: Redistribuir copias.
- Libertad 3: Mejorar el programa y publicar las mejoras.
📖 Referencia: Filosofía del software libre popularizada por el Manifiesto GNU (1985).
El núcleo del sistema GNU, GNU Hurd, comenzó a desarrollarse en 1990 sobre el micronúcleo GNU Mach. Sin embargo, el desarrollo del núcleo avanzó lentamente, y para 1992, el núcleo Linux (creado por Linus Torvalds en 1991) se convirtió en la opción más popular para completar el sistema GNU, dando origen al término GNU/Linux.
Componentes del sistema GNU
El sistema GNU está compuesto por los siguientes componentes principales:
1. Núcleo
- GNU Hurd — El núcleo oficial del proyecto GNU, basado en el micronúcleo GNU Mach.
- Linux-libre — Una versión del núcleo Linux sin firmware no libre, utilizada por distribuciones GNU/Linux que se consideran completamente libres.
2. Herramientas de desarrollo
- GCC (GNU Compiler Collection) — Conjunto de compiladores para C, C++, Fortran, y otros lenguajes.
- GDB (GNU Debugger) — Depurador de código.
- GNU Make — Herramienta de automatización de compilación.
3. Bibliotecas
- glibc (GNU C Library) — La biblioteca estándar de C del sistema GNU.
4. Herramientas de usuario (Userland)
- Bash (Bourne Again SHell) — El intérprete de comandos predeterminado.
- Coreutils — Utilidades básicas (ls, cp, mv, rm, etc.).
- Emacs — Editor de texto extensible.
5. GNU GPL (Licencia)
La GNU General Public License (GPL) es la licencia más utilizada para el software libre. Versiones: GPL v1 (1989), v2 (1991), v3 (2007).
Aspectos Técnicos del sistema GNU
| Aspecto | Detalle |
|---|---|
| Nombre | GNU (GNU's Not Unix) |
| Desarrollador | Proyecto GNU / Free Software Foundation (FSF) |
| Familia | Unix-like (inspirado en UNIX, sin compartir código de AT&T) |
| Escrito en | C, C++, Lisp (Emacs), etc. |
| Tipo de núcleo (GNU Hurd) | Micronúcleo multiservidor (sobre GNU Mach) |
| Modelo de código | Software libre (GPL) |
| Licencia | GNU General Public License (GPL) y otras licencias compatibles |
| Lanzamiento inicial | 1983 (anuncio del proyecto) |
| Estado | Activo (GNU Hurd en desarrollo; GNU/Linux ampliamente utilizado) |
| Plataformas | IA-32 (GNU Hurd), x86-64, ARM, PowerPC, etc. (GNU/Linux) |
| Interfaz por defecto | Línea de comandos (Bash); opciones gráficas (GNOME, KDE, etc.) |
Aportes de GNU a la informática
- Establecimiento del concepto de software libre y las cuatro libertades esenciales, que han influido en el desarrollo de innumerables proyectos de código abierto y en la legislación sobre propiedad intelectual en todo el mundo.
- Creación de la GNU General Public License (GPL), la licencia de software libre más utilizada, que protege las libertades de los usuarios y ha sido adoptada por miles de proyectos, incluyendo el núcleo Linux.
- Desarrollo de herramientas fundamentales como el compilador GCC, el depurador GDB, la biblioteca C glibc y el editor Emacs, que son la base del desarrollo de software en sistemas Unix-like.
- Popularización del intérprete de comandos Bash, que se ha convertido en el shell predeterminado en la mayoría de las distribuciones GNU/Linux y macOS.
- Definición del término "GNU/Linux" para reconocer la contribución del Proyecto GNU al sistema operativo que combina las herramientas GNU con el núcleo Linux.
- Creación de GNU Hurd, un núcleo basado en micronúcleo que ha servido como caso de estudio y referencia para la investigación en arquitecturas de sistemas operativos.
- Promoción de la portabilidad y estandarización a través de la implementación de los estándares POSIX en las herramientas GNU.
- Impulso a la cultura colaborativa y comunitaria en el desarrollo de software, sentando las bases para el movimiento de código abierto y proyectos como SourceForge, GitHub y otros.
- Desarrollo de GNU Emacs, uno de los editores de texto más extensibles y utilizados en la historia de la informática, que sigue siendo una herramienta de referencia para programadores y desarrolladores.
- Proporcionar un conjunto completo y coherente de herramientas de espacio de usuario que ha permitido la creación de múltiples sistemas operativos libres, incluyendo todas las distribuciones GNU/Linux existentes.
🐂 GNU Hurd
GNU Hurd es un conjunto de servidores que se ejecutan sobre el micronúcleo GNU Mach.
Introducción
GNU Hurd es el conjunto de servidores de micronúcleo desarrollado por el Proyecto GNU para sustituir al núcleo Unix tradicional dentro del sistema operativo GNU. A diferencia de un núcleo monolítico (como el núcleo Linux), GNU Hurd implementa una arquitectura de micronúcleo multiservidor: el micronúcleo GNU Mach se limita a gestionar la comunicación entre procesos (IPC), la memoria y la planificación básica, mientras que funciones como los sistemas de archivos, los protocolos de red, el control de acceso a archivos y la autenticación se ejecutan como procesos independientes en espacio de usuario (servidores o 'traductores').
Este diseño busca ofrecer mayor modularidad, extensibilidad y aislamiento de fallos que un núcleo monolítico: en teoría, un fallo en un traductor no debería comprometer la estabilidad de todo el sistema, y añadir nueva funcionalidad no exige modificar el núcleo.
GNU Hurd no es, en sentido estricto, GNU/Linux: constituye una alternativa de núcleo para el sistema GNU cuando este no utiliza el núcleo Linux. La distribución más activa que lo empaqueta es Debian GNU/Hurd.
Historia
Componentes
GNU Hurd está compuesto por los siguientes elementos principales:
- GNU Mach: El micronúcleo que proporciona comunicación entre procesos (IPC), gestión de memoria y planificación básica.
- Servidores (Traductores): Programas en espacio de usuario que implementan funcionalidades como sistemas de archivos (ext2fs, fatfs, isofs), red (pfinet), autenticación (auth), gestión de procesos (proc), y otros servicios.
- GNU MIG: Herramienta que genera código de comunicación RPC para las interfaces de Mach.
- GNU C Library (glibc): Implementa las interfaces de sistema de Hurd sobre los protocolos IPC.
Aspectos Técnicos
| Aspecto | Detalle |
|---|---|
| Nombre completo | GNU Hurd |
| Tipo | Colección de servidores en espacio de usuario ('traductores') que, junto con un micronúcleo, sustituyen al núcleo Unix tradicional |
| Micronúcleo base | GNU Mach (implementación GNU del micronúcleo Mach) |
| Familia de sistema operativo | Tipo Unix (Unix-like) |
| Estado | Activo (en desarrollo continuo; sin ser considerado apto para producción de forma generalizada) |
| Escrito en | C y ensamblador |
| Modelo de código fuente | Software libre, licencia GPL-2.0-or-later |
| Plataformas soportadas | IA-32/i686 (soporte histórico); x86-64 (soporte funcional en desarrollo); ARM/AArch64 (en desarrollo experimental) |
| Arquitectura de diseño | Micronúcleo multiservidor ('multiserver microkernel') |
| Concepto distintivo | 'Traductores' (translators): programas en espacio de usuario que implementan sistemas de archivos o servicios |
| Biblioteca C | GNU C Library (glibc) |
| Desarrolladores destacados | Thomas Bushnell (arquitecto inicial), Roland McGrath, Marcus Brinkmann, Neal Walfield, Samuel Thibault (mantenedor principal actual) |
| Sitio oficial | www.gnu.org/software/hurd/ |
Aportes
- Implementación de referencia de un micronúcleo multiservidor completo, sirviendo de caso de estudio recurrente en la investigación y la enseñanza de arquitecturas de sistemas operativos basadas en micronúcleo.
- Popularización del concepto de 'traductores' (translators): programas de espacio de usuario que implementan sistemas de archivos o servicios y se asocian a nodos del árbol de directorios.
- Desarrollo y mantenimiento de GNU Mach, una implementación libre y abierta del micronúcleo Mach.
- Creación de GNU MIG, herramienta que traduce definiciones de llamadas a procedimiento remoto (RPC) a código C.
- Aportes directos a la GNU C Library (glibc), enriqueciendo la capa de portabilidad de esta biblioteca.
- Contribución fundacional a la distinción conceptual entre 'núcleo' y 'sistema operativo', motivando el debate sobre la denominación GNU/Linux.
- Publicación de 'la crítica' y su 'position paper' asociado, documentos de referencia citados en la literatura sobre diseño de sistemas multiservidor.
- Impulso al desarrollo del proyecto Debian GNU/Hurd, demostrando la viabilidad de portar una parte sustancial de un archivo de paquetes a un núcleo completamente distinto.
- Participación como proyecto formador dentro de Google Summer of Code (GSoC), contribuyendo a la formación de nuevas generaciones de desarrolladores.
- Mantenimiento sostenido durante más de tres décadas de un proyecto de software libre bajo licencia GPL.
🐧 GNU/Linux
El núcleo Linux, el sistema GNU/Linux y la genealogía de sus distribuciones
El Núcleo Linux
El núcleo Linux fue creado por Linus Torvalds en 1991. Es un núcleo monolítico que se ejecuta en modo privilegiado y gestiona directamente el hardware. Linux es el núcleo más utilizado en servidores, supercomputadoras, dispositivos móviles (Android) y sistemas embebidos.
💡 Curiosidad: Linux fue inspirado en el sistema MINIX de Andrew S. Tanenbaum.
Acontecimientos previos al Núcleo Linux
- UNIX (1969) — Bell Labs.
- MINIX (1987) — Sistema educativo de Andrew S. Tanenbaum.
- GNU (1983) — Proyecto de software libre de Richard Stallman.
- BSD (1977) — Distribución de Berkeley.
Historia del Núcleo Linux
En 1991, Linus Torvalds, un estudiante de la Universidad de Helsinki, comenzó a desarrollar un núcleo para su computadora personal (una Intel 80386) inspirado en el sistema MINIX. El 25 de agosto de 1991, Linus anunció su proyecto en el grupo de noticias comp.os.minix.
El núcleo Linux se distribuye bajo la GNU General Public License (GPL) v2, lo que garantiza que el código fuente esté disponible y pueda ser modificado y redistribuido libremente.
Descripción del Sistema GNU/Linux
GNU/Linux es el sistema operativo que combina el núcleo Linux con las herramientas GNU. Aunque comúnmente se le llama simplemente "Linux", el nombre GNU/Linux reconoce la contribución fundamental del Proyecto GNU al sistema.
El sistema GNU/Linux es multiusuario, multitarea y multiprocesador, y sigue los estándares POSIX y Single UNIX Specification, lo que lo hace compatible con el software UNIX tradicional.
GNU/Linux se distribuye en distribuciones (o "distros") que incluyen el núcleo Linux, las herramientas GNU, bibliotecas, entornos de escritorio, aplicaciones y un sistema de gestión de paquetes.
Componentes del sistema GNU/Linux
Un sistema GNU/Linux está compuesto por los siguientes elementos:
1. Núcleo Linux
El núcleo monolítico que gestiona el hardware, los procesos, la memoria y los sistemas de archivos.
2. Herramientas GNU (Userland)
- Bash (Bourne Again SHell) — El intérprete de comandos predeterminado.
- Coreutils — Utilidades básicas (ls, cp, mv, rm, etc.).
- GCC — El compilador de C/C++.
- glibc — La biblioteca estándar de C.
3. Sistema de inicio (init system)
- systemd — El sistema de inicio más utilizado en las distribuciones modernas.
- OpenRC — Alternativa a systemd, utilizada en distribuciones como Gentoo y Alpine.
- runit — Sistema de inicio ligero.
4. Sistema de gestión de paquetes
- APT (Debian/Ubuntu) — Gestión de paquetes .deb.
- DNF/YUM (Fedora/RHEL) — Gestión de paquetes .rpm.
- Pacman (Arch Linux) — Gestión de paquetes .pkg.tar.zst.
- Portage (Gentoo) — Gestión de paquetes basada en código fuente.
5. Entorno de escritorio (opcional)
- GNOME — Entorno de escritorio moderno y completo.
- KDE Plasma — Entorno de escritorio con una amplia gama de funcionalidades.
- Xfce — Entorno ligero y eficiente.
- Servidor de pantalla — X.Org Server (tradicional) o compositores Wayland (Sway, KWin, Mutter).
6. Servidor de sonido
- PulseAudio — Servidor de sonido tradicional.
- PipeWire — Servidor de sonido y vídeo moderno, reemplazo de PulseAudio.
Aspectos Técnicos del sistema GNU/Linux
| Aspecto | Detalle |
|---|---|
| Nombre | GNU/Linux |
| Desarrollador | Comunidad global (núcleo: Linus Torvalds y colaboradores; herramientas: Proyecto GNU) |
| Familia | Unix-like (inspirado en UNIX, compatible con POSIX) |
| Escrito en | C (núcleo y herramientas), ensamblador (partes del núcleo), C++, etc. |
| Tipo de núcleo | Monolítico (Linux), con módulos cargables dinámicamente |
| Modelo de código | Software libre (GPL, principalmente) |
| Licencia (núcleo) | GNU GPL v2 |
| Lanzamiento inicial (núcleo) | 1991 (Linux 0.01) |
| Estado | Activo (en desarrollo continuo) |
| Plataformas soportadas | Vastas: x86-64, ARM, PowerPC, RISC-V, MIPS, etc. |
| Interfaz por defecto | Línea de comandos (Bash); opciones gráficas (GNOME, KDE, Xfce, etc.) |
| Sistemas de archivos destacados | EXT4 (predominante), Btrfs, XFS, ZFS (a través de OpenZFS) |
Aportes de GNU/Linux a la informática
- Democratización del acceso al software: GNU/Linux es un sistema operativo libre y gratuito que ha permitido a millones de personas acceder a un sistema operativo de calidad profesional sin coste.
- Impulso al software libre y de código abierto: GNU/Linux es el ejemplo más exitoso del modelo de desarrollo colaborativo y abierto, demostrando que el software libre puede competir y superar a las alternativas propietarias.
- Base de la infraestructura de Internet: La mayoría de los servidores web, servidores de correo y sistemas en la nube ejecutan GNU/Linux.
- Dominio en supercomputadoras: El 100% de las supercomputadoras del TOP500 ejecutan algún sistema basado en GNU/Linux.
- Base de Android: El sistema operativo móvil más utilizado del mundo, Android, utiliza el núcleo Linux.
- Fomento de la estandarización: GNU/Linux ha impulsado la adopción de estándares abiertos como POSIX, sistemas de archivos y protocolos de red.
- Desarrollo de ecosistemas de software: GNU/Linux ha permitido el crecimiento de ecosistemas de software libre como GNOME, KDE, LibreOffice, GIMP y muchos otros.
- Educación e investigación: GNU/Linux es ampliamente utilizado en entornos educativos y de investigación por su transparencia, flexibilidad y bajo coste.
- Seguridad y privacidad: GNU/Linux es conocido por su robustez, seguridad y respeto a la privacidad del usuario.
- Innovación tecnológica: GNU/Linux ha sido la base de innovaciones en virtualización, contenedores (Docker, Kubernetes), computación en la nube y big data.
Definición de Distribución GNU/Linux
Una distribución GNU/Linux (también conocida como distro) es un sistema operativo compuesto el y una colección de software empaquetado, que suele obtener en el sitio web de la distribución o en sitios de descarga, que está disponible para ordenadores personales, servidores, dispositivos integrados y superodenadores.
La mayor parte del software incluido es libre y de código abierto, disponible, tanto como binarios compilados, como en forma de código fuente, lo que permite realizar modificaciones en el software original.
Normalmente, una Distribución GNU/Linux incluye opcionalmente algún software propietario que puede no estar disponible en forma de código fuente, como binary blobs necesarios para algunos controladores de dispositivos.
El software suele adaptarse a la distribución y luego los mantenedores de la distribución lo combinan en paquetes de software.
Los paquetes de software están disponibles en línea en repositorios, que son lugares de almacenamiento distribuidos normalmente por todo el mundo.
A diferencia de un sistema operativo monolítico desarrollado por una única entidad, una distribución GNU/Linux es el resultado de la integración y empaquetamiento de componentes de software desarrollados por múltiples proyectos y comunidades independientes, coordinados por un mantenedor o equipo de desarrollo que define la filosofía, los objetivos y el ciclo de vida de la distribución.
Componentes esenciales
- El Núcleo Linux: El componente central que gestiona el hardware, los procesos, la memoria y los sistemas de archivos.
- El Espacio de Usuario (userland) GNU
- Herramientas y bibliotecas del Proyecto GNU, incluyendo la biblioteca C (glibc), el shell (Bash) y las utilidades básicas (Coreutils).
- Un Sistema de Inicio (Init System): Este es el primer proceso que se ejecuta al arrancar el sistema (Ejemplos: systemd, OpenRC, runit, SysVinit, etc.).
- Un Sistema de Gestión de Paquetes: Que permite instalar, actualizar y eliminar software (APT, DNF/YUM, Pacman, Portage, Zypper, apk).
- Documentación: Manuales, guías y páginas de ayuda (man pages).
Componentes opcionales (para proporcional experiencia de escritorio)
- Controladores gráficos (más comúnmente el espacio de usuario Mesa), para tarjetas gráficas Nvidia o AMD.
- Un Servidor de Pantalla: X.Org Server o compositores Wayland.
- Un gestor de ventanas (para X11, de Composición, o Tiling) ó un Entorno de Escritorio con un Gestor de Ventanas: GNOME, KDE Plasma, Xfce, i3, Sway, etc.
- Un Servidor de Sonido: PulseAudio o PipeWire.
- Controladores Gráficos: Especialmente para tarjetas NVIDIA o AMD.
- Aplicaciones de Usuario: Navegadores, suites ofimáticas, reproductores multimedia, etc.
- Un Instalador: Programa que guía la instalación del sistema (Debian-Installer, Calamares, Anaconda).
Tipos de distribuciones
- Lanzamiento Fijo (Fixed Release): Versiones publicadas en intervalos regulares (Debian, Ubuntu LTS, Fedora).
- Lanzamiento Continuo (Rolling Release): Actualizaciones continuas (Arch Linux, openSUSE Tumbleweed).
- Lanzamiento Semi-Continuo (Semi-Rolling): Combina ambos modelos (Manjaro).
Algunas de las distribuciones principales más conocidad y/o usadas:
- Slackware, Año lanzamiento: 1993. La distribución más antigua aún activa.
- Debian, Año lanzamiento: 1993. Reconocida por su estabilidad y compromiso con el software libre.
- Ubuntu, Año lanzamiento: 2004. Distribución amigable para usuarios, basada en Debian.
- Fedora, Año lanzamiento: 2003. Base comunitaria de RHEL, enfoque en innovación.
- Arch Linux, Año lanzamiento: 2002. Rolling release, minimalista y enfoque KISS.
- openSUSE, Año lanzamiento: 2005. Distribución comunitaria con versiones fijas (openSUSE Leap) y rolling (openSUSE Tumbleweed)
- Gentoo, Año lanzamiento: 2000. Basada en código fuente, altamente configurable.
- Puppy Linux, Año lanzamiento>: 2003. Minidistribución portátil, se guarda en la RAM, y posee diversas derivadas con diferentes bases de fuentes de paquetes.
- Linux Mint, Año lanzamiento: 2006. Enfocada en la facilidad de uso y experiencia de escritorio, basada en Ubuntu y Debian (versión >LMDE).
- Manjaro Linux, Año lanzamiento: 2011. Distro enfocada computadores personalez y facilidad de usoc. Basada en Arch Linux.
Importancia de las distribuciones
- Hacen accesible el software libre: Empaquetan y distribuyen miles de programas de manera coherente.
- Ofrecen diversidad y elección: Cada distribución tiene una filosofía y enfoque diferentes.
- Proporcionan estabilidad y seguridad: Los mantenedores realizan pruebas y gestionan actualizaciones.
- Fomentan la innovación: Experimentan con nuevas tecnologías y entornos.
- Crean comunidades: Cada distribución tiene su propia comunidad de usuarios y desarrolladores.