SSD Nodes Learn Hosting plans →
Guías Matt ConnorPor Matt Connor

Solaris e illumos: el fork que sobrevivió

Descubre cómo ZFS y DTrace pasaron de Solaris a illumos: Sun abrió el código en 2005, Oracle lo cerró en 2010 y el fork aún permite usarlos hoy.

Qué son Solaris e illumos

Solaris e illumos son dos ramas de un mismo árbol de código fuente de Unix. Sun Microsystems desarrolló Solaris y publicó la mayor parte de su código fuente en 2005. Oracle compró Sun en 2010 y dejó de publicar ese código, por lo que desarrolladores ajenos a Oracle continuaron el código abierto con un nombre nuevo: illumos. El sistema operativo en sí es minoritario en 2026. La capa de almacenamiento y la herramienta de trazado desarrollada dentro de ella no lo son, y esa es la razón por la que merece la pena conocer esta historia.

Si ejecuta ZFS en Linux o FreeBSD, está ejecutando código escrito en Sun para Solaris que sobrevivió a la empresa, a la línea de productos y al conflicto de licencias. Este artículo explica cómo ocurrió, con las fechas comprobadas.

De dónde procede Solaris: BSD, System V y SVR4

Sun Microsystems fue fundada el 24 de febrero de 1982 por Scott McNealy, Andy Bechtolsheim, Vinod Khosla y Bill Joy. Su sistema operativo, SunOS, derivaba de BSD (Berkeley Software Distribution), la línea Unix universitaria en la que Bill Joy había trabajado antes de que existiera Sun. La otra línea de Unix era System V de AT&T, que se comercializaba. Esas dos ramas forman la división descrita en el árbol de la familia Unix que termina en Linux, y Sun permaneció en el lado de BSD durante una década.

En 1987, Sun y AT&T anunciaron un proyecto conjunto para fusionar BSD, System V y Xenix en una única versión: UNIX System V Release 4, normalmente escrito SVR4. El 4 de septiembre de 1991, Sun anunció que SunOS 4 sería sustituido por un sistema derivado de SVR4 con un nuevo nombre comercial, Solaris 2. Solaris 2.0 se publicó en junio de 1992, sólo para hardware SPARC. Sun había cambiado de lado en la división de Unix y sus clientes tuvieron que adaptar su software.

El nombre antiguo nunca desapareció. El kernel conservó la numeración de SunOS, por lo que Solaris 2.6 ejecutaba SunOS 5.6 y Oracle Solaris 11.4 todavía se identifica como SunOS 5.11. Ejecute uname -a en una máquina illumos en 2026 y la primera palabra mostrada seguirá siendo SunOS, porque illumos heredó el nombre junto con el código.

Qué introdujo Solaris 10 en 2005

Solaris 10 se publicó el 31 de enero de 2005. Es relevante aquí porque todo lo que sobrevivió a la empresa estaba incluido en esa versión o llegó en una de sus actualizaciones.

DTrace fue desarrollado en Sun por Bryan Cantrill, Mike Shapiro y Adam Leventhal, y estuvo disponible por primera vez en noviembre de 2003. Instrumenta un kernel en ejecución y procesos de usuario activos sin recompilar nada y sin reiniciar el proceso que se está supervisando. Una sonda que no se ha habilitado no consume recursos, porque la instrumentación sólo se inserta cuando un script la solicita. Por eso los administradores estaban dispuestos a usarlo en máquinas de producción. DTrace obtuvo el máximo galardón de los Technology Innovation Awards de 2006 de The Wall Street Journal y un premio STUG (Software Tools User Group) de USENIX en 2008.

ZFS fue diseñado en Sun por Jeff Bonwick, Bill Moore y Matthew Ahrens, y se anunció el 14 de septiembre de 2004. Integró el gestor de volúmenes y el sistema de archivos en una sola capa. Esto permite comprobar la suma de control de cada bloque al leerlo y reparar un bloque dañado a partir de una copia redundante. Las escrituras usan copy on write: un bloque nunca se sobrescribe en su ubicación actual. Por tanto, un fallo durante una escritura conserva los datos antiguos en lugar de dejar un sistema de archivos escrito sólo parcialmente. Las instantáneas apenas consumen recursos, porque una instantánea es simplemente el conjunto de bloques que las escrituras posteriores no modificaron. ZFS no se incluyó en la versión inicial de Solaris 10. Se distribuyó con la actualización Solaris 10 6/06, en junio de 2006.

Zones fue la tercera pieza. Una zone proporciona varios espacios de usuario aislados sobre un mismo kernel. Cada uno tiene su propio sistema de archivos root, tabla de procesos y configuración de red. Zones apareció en una compilación beta de Solaris 10 en febrero de 2004 y se distribuyó con la versión completa. FreeBSD había alcanzado antes la misma idea desde un enfoque diferente, y la comparación entre jails y contenedores Docker sigue siendo la forma más clara de entender qué es realmente el aislamiento a nivel del kernel. Zones sigue activo en illumos y constituye la base de al menos una de las distribuciones siguientes.

Por qué Sun abrió el código fuente de Solaris

Sun presentó la CDDL (Common Development and Distribution License) ante la OSI (Open Source Initiative) el 1 de diciembre de 2004, y la OSI la aprobó el 14 de enero de 2005. La CDDL se basa en la versión 1.1 de la MPL (Mozilla Public License). Su copyleft se aplica a cada archivo individual: un archivo fuente con CDDL debe conservar la CDDL, pero el binario compilado a partir de él puede combinarse con código sujeto a otros términos.

DTrace fue el primero. Su código fuente se publicó con la CDDL el 25 de enero de 2005, en el sitio opensolaris.org, recién creado, seis días antes del lanzamiento de Solaris 10. La mayor parte del código del sistema Solaris se publicó el 14 de junio de 2005. ZFS se integró en la rama principal de desarrollo de Solaris el 31 de octubre de 2005 y llegó a los desarrolladores de OpenSolaris en la build 27, el 16 de noviembre de 2005. OpenSolaris también se convirtió en una distribución instalable: 2008.05 llegó el 5 de mayo de 2008 como un live CD, y 2009.06 llegó el 1 de junio de 2009 con compatibilidad con SPARC.

La elección de la licencia todavía determina qué se puede ejecutar actualmente. La Free Software Foundation clasifica la CDDL como una licencia de software libre incompatible con la GPL (GNU General Public License), una incompatibilidad heredada de MPL 1.1. El kernel de Linux usa GPLv2. Por eso ZFS on Linux se compila como un módulo del kernel fuera del árbol de código fuente del kernel, en lugar de integrarse en él, y por eso no forma parte del kernel principal. La decisión de publicar con cualquier licencia abierta es la que más importa para el resto de esta historia, y la historia de las licencias de código abierto explica por qué una empresa tomaría esa decisión.

Qué ocurrió cuando Oracle compró Sun

Oracle anunció el 20 de abril de 2009 que adquiriría Sun por US$7.4 billion, o US$5.6 billion después de descontar el efectivo y la deuda de Sun. La operación se completó el 27 de enero de 2010.

El 13 de agosto de 2010 circuló dentro de la empresa un memorando interno de Oracle escrito por Mike Shapiro, Bill Nesheim y Chris Armes, que después se filtró. El documento establecía directamente la nueva política: «Ya no distribuiremos en tiempo real el código fuente de la totalidad del sistema operativo Solaris mientras se desarrolla, cada noche». También descartaba nuevas compilaciones de la comunidad: «No publicaremos otras distribuciones binarias, como compilaciones nocturnas o quincenales de los binarios de Solaris, ni una distribución OpenSolaris 2010.05 o posterior». Las publicaciones de código abierto seguirían a los productos distribuidos: «Distribuiremos actualizaciones del código aprobado bajo CDDL u otras licencias de código abierto después de las versiones completas de nuestro sistema operativo empresarial Solaris».

El 23 de agosto de 2010, la OpenSolaris Governing Board aprobó una resolución en la que dejaba constancia de que Oracle no había designado un enlace para la junta y había anunciado el fin de la asociación de desarrollo el 13 de agosto. La junta votó devolver el control de la comunidad a Oracle conforme al estatuto que Sun había redactado originalmente, lo que disolvió la junta.

Oracle Solaris 11 se publicó el 9 de noviembre de 2011. El 2 de septiembre de 2017, Oracle despidió a la mayoría de los equipos de Solaris. Oracle Solaris 11.4 se publicó el 28 de agosto de 2018 y seguía siendo la versión vigente, con actualizaciones de los repositorios de soporte, en julio de 2026. Cuando Oracle revisó por última vez su política de soporte durante el ciclo de vida de 11.4, en enero de 2024, mantuvo Premier Support hasta 2031 y amplió Extended Support de 2034 a 2037. Por tanto, Solaris es un producto comercial con soporte y una fecha de finalización publicada, basado en una versión que sigue vigente desde 2018.

Cómo comenzó illumos y por qué se llama una bifurcación

El 3 de agosto de 2010, diez días antes de que se filtrara el memorando, Garrett D'Amore anunció illumos. El nombre combina illum, que significa luz en latín, con OS, abreviatura de sistema operativo. El proyecto lo escribe como una sola palabra y sólo capitaliza la primera letra.

El objetivo era OS/Net, normalmente escrito ON: la consolidación que contiene el kernel y las utilidades principales del sistema. OpenSolaris nunca fue completamente abierto. Varios componentes se distribuían como binarios cerrados que nadie fuera de Sun podía reconstruir. Entre ellos estaban el código de internacionalización de la biblioteca C (libc_i18n), el gestor de bloqueos de NFS, el framework criptográfico, controladores como mpt para adaptadores de bus de host LSI y parte del código de las plataformas SPARC. Sustituirlos fue la primera tarea del proyecto, porque un sistema operativo que no se puede compilar desde el código fuente no se puede mantener.

D'Amore fue cuidadoso con el término bifurcación. «Hoy no somos una bifurcación, debido a la forma en que seguimos OS/Net», escribió. Describía un repositorio derivado que seguiría el árbol de Oracle y podría devolver cambios al repositorio original. Diez días después, el repositorio original dejó de publicar cambios. illumos se convirtió en una bifurcación por defecto, porque ya no había nada que seguir. El árbol principal, illumos-gate, ha superado los 23,000 commits a fecha de octubre de 2026 y todavía sigue incorporándolos.

Qué distribuciones proceden de illumos

illumos no es algo que se instale. Es el árbol principal, y las distribuciones construyen sobre él un sistema utilizable. Estas son las que todavía se publican.

  • OpenIndiana se lanzó oficialmente el 14 de septiembre de 2010 en el JISC Centre de Londres, y es el descendiente más directo de la antigua distribución de escritorio y servidor OpenSolaris. Es una versión rolling denominada Hipster, y la instantánea 2026.04 se publicó el 5 de mayo de 2026.
  • OmniOS es una distribución para servidores, mantenida actualmente por su comunidad como OmniOS CE después de que su proveedor original dejara de trabajar en ella.
  • SmartOS es una plataforma de hipervisor basada en zones. Joyent la creó y anunció en abril de 2022 que SmartOS y Triton pasarían a MNX Solutions a partir del 1 de mayo de 2022.
  • NexentaStor utilizaba la misma base para dispositivos de almacenamiento. Es la línea comercial de la que surgió illumos.
  • Tribblix es una distribución pequeña mantenida por Peter Tribble, descrita más adelante.
  • DilOS coloca las herramientas de gestión de paquetes de Debian sobre un kernel de illumos.

Cómo es instalar un sistema illumos actualmente

Tribblix es el ejemplo útil porque es pequeño, está documentado públicamente y todavía se publican versiones. Milestone 41 para x86 se publicó el 5 de agosto de 2026. La línea para SPARC avanzó a Milestone 35 el 23 de septiembre de 2026, una versión sintética que añade paquetes más recientes, incluido gcc 10, sobre el sistema operativo Milestone 34; la ISO de instalación para SPARC que se descarga sigue siendo Milestone 34. El proyecto se describe como un estilo retro con componentes modernos y conserva el formato de paquetes SVR4 que usaba Solaris, en lugar de migrar a un sistema de paquetes más reciente.

La instalación se ejecuta desde una imagen live. Se inicia el sistema desde la ISO, se inicia sesión con el usuario jack y la contraseña jack, se cambia a root y se ejecuta el instalador sobre un dispositivo de disco. Esta es la orden que proporciona la documentación de instalación del propio proyecto:

./live_install.sh -G c1t0d0

La opción -G escribe un esquema de particiones EFI (extensible firmware interface), y -b selecciona en su lugar el esquema heredado MBR (master boot record). Los nombres de disco siguen la convención cXtYdZ de Solaris en lugar de /dev/sda, que es lo primero que resultará desconocido si se viene de Linux. Los conjuntos de software se denominan overlays y se pueden indicar en la misma línea:

./live_install.sh -G c1t0d0 develop desktop

Después de la instalación, la herramienta de paquetes es zap. Funciona con overlays y gestiona las dependencias automáticamente:

zap refresh
zap install-overlay develop
zap update-overlay -a

Esas son las órdenes que publica Tribblix. Se ejecutan en hardware o en un hipervisor bajo su control. Tribblix no es algo que se encuentre detrás de una imagen de un clic en el panel de control de un VPS. SmartOS es la excepción entre los sistemas illumos: MNX, la empresa que lo adquirió de Joyent, ofrece «una opción entre Linux, FreeBSD o SmartOS» mediante su propio panel de control de nube (comprobado el 12 de octubre de 2026). Fuera de ese caso, es poco habitual encontrar una imagen de illumos en la lista de un proveedor, y esa carencia refleja fielmente el estado del despliegue de illumos en 2026.

Por qué ZFS y DTrace sobrevivieron a Solaris

ZFS salió de Solaris casi inmediatamente después de que se publicara su código fuente. Pawel Jakub Dawidek lo adaptó a FreeBSD, donde forma parte del sistema desde FreeBSD 7.0 en 2008. El trabajo para disponer de ZFS nativo en Linux comenzó en 2008 y produjo su primera versión estable en 2013. Entre 2010 y 2013, illumos conservó la copia de referencia del código fuente de ZFS, porque el árbol de Oracle estaba cerrado y todos los demás ports necesitaban un origen común del que extraer cambios. Ese es el valor concreto del fork: sin él, los ports no habrían tenido un ancestro común con el que comparar y fusionar cambios.

El proyecto OpenZFS se anunció el 17 de septiembre de 2013 para coordinar esos ports. Matt Ahrens, uno de los autores originales de ZFS, fue uno de sus fundadores. OpenZFS 2.0 se publicó el 30 de noviembre de 2020. Sus notas de la versión expresan el resultado de forma clara: "The ZFS on Linux project has been renamed OpenZFS! Both Linux and FreeBSD are now supported from the same repository making all of the OpenZFS features available on both platforms." FreeBSD 13.0 eliminó su propia copia derivada de illumos y pasó a usar ese árbol compartido.

Las dos líneas de ZFS han divergido en el formato de disco. La línea abierta se detuvo en la versión de pool 28, la última versión publicada por Sun, y pasó a usar indicadores de características con nombre bajo la versión de marcador 5000. De este modo, un pool anuncia las características que utiliza en lugar de usar un único número. Oracle siguió incrementando sus propios números de versión con el código cerrado. Un pool creado después de la versión 28 en uno de los lados no se puede importar en el otro. Si está eligiendo dónde ejecutarlo, cómo funciona OpenZFS en FreeBSD frente a Linux explica las diferencias reales entre ambos hosts.

DTrace recorrió una distancia menor. Ya era estándar en FreeBSD desde la versión 7.1, en enero de 2009, y Apple lo añadió en Mac OS X 10.5 Leopard. Oracle publicó el código del kernel de DTrace bajo GPLv2 en agosto de 2017. El cambio recibió mucha atención en febrero de 2018 y eliminó la barrera de licencia para Linux. Nunca se fusionó con el kernel principal. En la práctica, el tracing de Linux se ejecuta sobre eBPF, y bpftrace le proporciona un lenguaje de scripting deliberadamente parecido al D de DTrace.

La idea general es el patrón, no un caso específico de Solaris. Sun publicó ZFS y DTrace bajo una licencia que permitía a otras personas conservar una copia y seguir trabajando en ellos. Cuando dejó de existir la empresa que financiaba el trabajo, este continuó porque el código ya estaba en otros árboles y en manos de otras personas. Las partes de Solaris que nunca se abrieron, incluidos los binarios cerrados que illumos tuvo que reescribir, desaparecieron con la empresa. Eso es lo que cambia al publicar el código como open source, y es el mismo mecanismo que explica cómo las distribuciones de Linux descienden unas de otras.

¿Debería ejecutar illumos en un VPS?

Para casi todo el mundo, la respuesta es no, y nada de lo anterior pretende recomendarlo. illumos admite un conjunto limitado de hardware, porque sus controladores son los que admitía Sun más los que ha desarrollado una comunidad pequeña desde entonces. La mayoría de los proveedores de VPS publican únicamente imágenes de Linux y BSD. La excepción es MNX, que asumió el desarrollo de SmartOS de Joyent y ofrece SmartOS junto con Linux y FreeBSD en su propia nube. En cualquier otro caso, instalar illumos suele implicar cargar su propia ISO en un proveedor que permita imágenes personalizadas y comprobar después si se reconocen el disco virtual y los dispositivos de red. El software de terceros procede del conjunto de paquetes de la distribución o de su propio compilador.

Hay motivos reales para ejecutarlo: mantener activo un workload de Solaris que necesita conservar, una implementación de zones que ya administra o el interés por leer el código fuente. Las distribuciones indicadas arriba se mantienen y sus listas de correo responden preguntas. Eso es distinto de elegirlo por defecto para un servidor nuevo.

Si llegó aquí por ZFS, no necesita illumos para obtenerlo. Ejecute OpenZFS en Linux o FreeBSD, donde está empaquetado, documentado y ampliamente desplegado. Si está valorando el lado BSD de la misma familia para un servidor, la comparación práctica entre Linux y FreeBSD como plataformas de servidor explica qué cambia en la operación diaria. illumos es el origen de estas herramientas, y saber de dónde proceden explica buena parte de su comportamiento, empezando por qué zpool y zfs no se parecen en nada al resto de la pila de almacenamiento de Linux.

FAQ

¿illumos es lo mismo que OpenSolaris?

No. OpenSolaris era el proyecto y la distribución de Sun. Oracle los heredó y puso fin al proyecto en 2010. illumos es un proyecto independiente anunciado el 3 de agosto de 2010. Se basa en el último código fuente publicado del núcleo de OpenSolaris, la consolidación OS/Net. Su primera tarea fue reemplazar los componentes binarios cerrados que había distribuido OpenSolaris, incluidos libc_i18n, el gestor de bloqueos NFS, el marco criptográfico y varios controladores. Ningún código de illumos procede de Oracle después de 2010 porque Oracle dejó de publicarlo.

¿Por qué Linux no puede incluir ZFS en su kernel?

Las licencias no son compatibles. ZFS usa CDDL. La Free Software Foundation clasifica CDDL como una licencia de software libre incompatible con GPL. Esta incompatibilidad procede de MPL 1.1, de la que CDDL heredó sus condiciones. El kernel de Linux usa GPLv2. En la práctica, OpenZFS en Linux se distribuye como un módulo de kernel externo. Normalmente, DKMS lo compila para cada kernel instalado. También puede distribuirse como un paquete de módulos precompilados. Funciona bien, pero el módulo debe recompilarse para cada kernel nuevo. Por eso puede tardar días o semanas en estar disponible después de una nueva versión del kernel.

¿Oracle Solaris sigue teniendo soporte?

Sí. Oracle Solaris 11.4 se publicó el 28 de agosto de 2018 y seguía siendo la versión actual, con actualizaciones del repositorio de soporte, en julio de 2026. La política de soporte de ciclo de vida de Oracle, revisada por última vez para 11.4 en enero de 2024, mantiene Premier Support hasta 2031 y Extended Support hasta 2037. Oracle despidió a la mayoría de los equipos de Solaris el 2 de septiembre de 2017. Desde entonces, 11.4 ha recibido actualizaciones del repositorio de soporte, pero no una nueva versión principal. El código fuente completo no se publica como lo hacía OpenSolaris.

¿Puedo instalar illumos en un VPS?

A veces, pero rara vez a partir de la lista de imágenes del proveedor. MNX, que mantiene SmartOS, ofrece SmartOS desde su propio panel de control en la nube. En otros proveedores, normalmente necesita uno que permita conectar una ISO personalizada y usar una consola. Después debe comprobar que los controladores de disco virtual y de red del árbol de illumos reconozcan los dispositivos del hipervisor. OpenIndiana y Tribblix son los puntos de partida habituales para una instalación de propósito general. SmartOS está diseñado para actuar como host de hipervisor, no como invitado que se instala manualmente. Haga pruebas en una máquina virtual local antes de contratar un servicio.

¿Merece la pena aprender DTrace si sólo uso Linux?

El modelo se puede aplicar, aunque la herramienta no se pueda usar principalmente en Linux. Oracle publicó el código del kernel de DTrace bajo GPLv2 en agosto de 2017 y mantiene un port para Oracle Linux. Sin embargo, nunca se integró en el kernel principal. En la práctica, el trazado en Linux usa eBPF. El lenguaje que usa bpftrace se diseñó para parecerse a D de DTrace. Por eso, las sondas, los predicados y las agregaciones significan lo mismo en ambos casos. Aprender la forma de razonar de DTrace permite leer scripts de bpftrace desde el primer intento.

#solaris#illumos#unix-history#zfs#dtrace