Solaris à illumos : l’histoire d’un fork qui perdure
Sun a créé ZFS et DTrace dans Solaris avant d’ouvrir son code en 2005. Oracle l’a refermé après 2010, mais illumos permet encore d’exécuter les deux aujourd’hui.
Ce que sont Solaris et illumos
Solaris et illumos sont deux branches issues d’un même arbre source Unix. Sun Microsystems a développé Solaris et publié la majeure partie de son code source en 2005. Oracle a racheté Sun en 2010, puis a cessé de publier ce code source. Des développeurs extérieurs à Oracle ont donc poursuivi le développement du code ouvert sous un nouveau nom : illumos. Le système d’exploitation lui-même reste de niche en 2026. La couche de stockage et l’outil de tracing intégrés à cet écosystème ne le sont pas. C’est pourquoi cette histoire mérite votre attention.
Si vous utilisez ZFS sous Linux ou FreeBSD, vous exécutez du code écrit chez Sun pour Solaris, qui a survécu à l’entreprise, à la gamme de produits et au conflit autour de la licence. Cet article retrace cette histoire, avec des dates vérifiées.
D’où vient Solaris : BSD, System V et SVR4
Sun Microsystems a été fondée le 24 février 1982 par Scott McNealy, Andy Bechtolsheim, Vinod Khosla et Bill Joy. Son système d’exploitation, SunOS, était dérivé de BSD (Berkeley Software Distribution), la branche universitaire d’Unix sur laquelle Bill Joy avait travaillé avant la création de Sun. L’autre branche d’Unix était System V, commercialisé par AT&T. Ces deux branches correspondent à la séparation décrite dans l’arbre généalogique d’Unix qui aboutit à Linux, et Sun est restée du côté BSD pendant une décennie.
En 1987, Sun et AT&T ont annoncé un projet commun visant à fusionner BSD, System V et Xenix dans une seule version : UNIX System V Release 4, généralement abrégée SVR4. Le 4 septembre 1991, Sun a annoncé que SunOS 4 serait remplacé par un système dérivé de SVR4, commercialisé sous un nouveau nom : Solaris 2. Solaris 2.0 est sorti en juin 1992, uniquement sur du matériel SPARC. Sun avait changé de côté dans la séparation d’Unix, et ses clients ont dû porter leurs logiciels.
L’ancien nom n’a jamais disparu. Le kernel a conservé la numérotation de SunOS : Solaris 2.6 exécutait donc SunOS 5.6, et Oracle Solaris 11.4 s’identifie encore comme SunOS 5.11. Exécutez uname -a sur une machine illumos en 2026 : le premier mot affiché est toujours SunOS, car illumos a conservé ce nom avec le code.
Ce que Solaris 10 a introduit en 2005
Solaris 10 est sorti le 31 janvier 2005. Cette version est importante ici, car tous les composants qui ont survécu à l’entreprise figuraient dans cette release ou sont arrivés dans l’une de ses mises à jour.
DTrace a été développé chez Sun par Bryan Cantrill, Mike Shapiro et Adam Leventhal, et est devenu disponible pour la première fois en novembre 2003. Il instrumente un kernel en fonctionnement et les processus utilisateur en cours d’exécution sans rien recompiler et sans redémarrer le processus que vous surveillez. Une probe que vous n’avez pas activée ne coûte rien, car l’instrumentation n’est injectée que lorsqu’un script la demande. C’est pourquoi les administrateurs acceptaient de l’utiliser sur des machines de production. DTrace a remporté le premier prix des Technology Innovation Awards 2006 du Wall Street Journal, ainsi qu’un prix USENIX STUG (Software Tools User Group) en 2008.
ZFS a été conçu chez Sun par Jeff Bonwick, Bill Moore et Matthew Ahrens, puis annoncé le 14 septembre 2004. Il a regroupé le volume manager et le filesystem dans une même couche. C’est ce qui lui permet de vérifier chaque bloc lors de sa lecture et de réparer un bloc défectueux à partir d’une copie redondante. Les écritures utilisent le copy-on-write : un bloc n’est jamais écrasé sur place. Ainsi, un crash au milieu d’une écriture laisse les anciennes données intactes au lieu de produire un filesystem partiellement écrit. Les snapshots coûtent presque rien, car un snapshot est simplement l’ensemble des blocs que les écritures ultérieures n’ont pas modifiés. ZFS ne figurait pas dans la release initiale de Solaris 10. Il est arrivé dans la mise à jour Solaris 10 6/06, en juin 2006.
Les Zones constituaient le troisième élément. Une zone permet à un kernel de fournir plusieurs espaces utilisateur isolés, chacun avec son propre root filesystem, sa propre table des processus et sa propre configuration réseau. Les Zones sont apparues dans une beta de Solaris 10 en février 2004 et ont été livrées avec la release complète. FreeBSD était arrivé plus tôt à la même idée par une autre approche, et la comparaison entre les jails et les conteneurs Docker reste le moyen le plus clair de comprendre ce qu’est réellement l’isolation au niveau du kernel. Les Zones existent toujours dans illumos et constituent la base d’au moins une distribution présentée plus loin.
Pourquoi Sun a ouvert le code source de Solaris
Sun a soumis la CDDL (Common Development and Distribution License) à l’OSI (Open Source Initiative) le 1 décembre 2004. L’OSI l’a approuvée le 14 janvier 2005. La CDDL est basée sur la version 1.1 de la MPL (Mozilla Public License). Son copyleft s’applique au niveau de chaque fichier : un fichier source sous CDDL doit rester sous CDDL, mais le binaire compilé à partir de ce fichier peut être combiné avec du code soumis à d’autres conditions.
DTrace a été le premier. Son code source a été publié sous CDDL le 25 janvier 2005, sur le site opensolaris.org récemment lancé, six jours avant la sortie de Solaris 10. La majeure partie du code système de Solaris a suivi le 14 juin 2005. ZFS a été intégré à la branche principale de développement de Solaris le 31 octobre 2005, puis a été mis à disposition des développeurs d’OpenSolaris dans le build 27, le 16 novembre 2005. OpenSolaris est également devenu une distribution installable : 2008.05 est arrivée le 5 mai 2008 sous la forme d’un live CD, et 2009.06 est arrivée le 1 juin 2009 avec la prise en charge de SPARC.
Le choix de la licence détermine encore ce que vous pouvez exécuter aujourd’hui. La Free Software Foundation classe la CDDL parmi les licences de logiciel libre incompatibles avec la GPL (GNU General Public License), une incompatibilité héritée de la MPL 1.1. Le noyau Linux est sous GPLv2. C’est pourquoi ZFS on Linux est compilé comme un module du noyau en dehors de l’arbre des sources du noyau, au lieu d’y être intégré, et pourquoi il ne fait pas partie du noyau mainline. La décision de publier sous une licence open source est l’élément le plus important pour la suite de cette histoire, et l’histoire des licences open source explique pourquoi une entreprise pourrait prendre une telle décision.
Ce qui s’est passé quand Oracle a racheté Sun
Oracle a annoncé le 20 April 2009 son intention d’acquérir Sun pour 7.4 milliards de dollars US, soit 5.6 milliards de dollars US après déduction de la trésorerie et de la dette de Sun. La transaction a été finalisée le 27 January 2010.
Le 13 August 2010, une note interne d’Oracle rédigée par Mike Shapiro, Bill Nesheim et Chris Armes a circulé dans l’entreprise avant d’être divulguée. Elle présentait directement la nouvelle politique : « Nous ne distribuerons plus le code source de l’intégralité du système d’exploitation Solaris en temps réel pendant son développement, chaque nuit. » Elle excluait les futures builds communautaires : « Nous ne publierons aucune autre distribution binaire, comme les builds nocturnes ou bimensuelles des binaires Solaris, ni aucune distribution OpenSolaris 2010.05 ou ultérieure. » Les publications open source suivraient désormais les produits commercialisés : « Nous distribuerons les mises à jour du code approuvé sous licence CDDL ou sous une autre licence open source après les releases complètes de notre système d’exploitation Solaris d’entreprise. »
Le 23 August 2010, l’OpenSolaris Governing Board a adopté une résolution indiquant qu’Oracle n’avait pas nommé de liaison auprès du conseil et avait annoncé la fin du partenariat de développement le 13 August. Le conseil a voté pour rendre le contrôle de la communauté à Oracle conformément à la charte rédigée initialement par Sun, ce qui a dissous le conseil.
Oracle Solaris 11 est sorti le 9 November 2011. Le 2 September 2017, Oracle a licencié la plupart des équipes Solaris. Oracle Solaris 11.4 est sorti le 28 August 2018 et reste la release actuelle. Selon la politique de support à vie d’Oracle, le Premier Support pour 11.4 est assuré jusqu’en November 2031, et l’Extended Support jusqu’en November 2037. Solaris est donc un produit commercial supporté, avec une date de fin publiée, dans une release qui est actuelle depuis 2018.
Comment illumos a commencé, et pourquoi il s’agit d’un fork
Le 3 août 2010, dix jours avant la fuite de la note interne, Garrett D'Amore a annoncé illumos. Le nom associe illum, qui signifie lumière en latin, et OS, pour operating system. Le projet l’écrit en un seul mot, avec une seule majuscule initiale.
L’objectif était OS/Net, généralement écrit ON : la consolidation qui regroupe le noyau et les utilitaires système essentiels. OpenSolaris n’a jamais été entièrement ouvert. Plusieurs composants étaient fournis sous forme de binaires fermés que personne en dehors de Sun ne pouvait reconstruire, notamment le code d’internationalisation de la bibliothèque C (libc_i18n), le gestionnaire de verrous NFS, le framework cryptographique, des drivers comme le driver mpt pour les host bus adapters LSI, ainsi qu’une partie du code des plateformes SPARC. Les remplacer a été la première tâche du projet, car un système d’exploitation que vous ne pouvez pas compiler à partir des sources n’est pas maintenable.
D'Amore employait le mot fork avec prudence. « Nous ne sommes pas un fork aujourd’hui, en raison de la manière dont nous suivons OS/Net », a-t-il écrit. Il décrivait un dépôt downstream qui suivrait l’arbre d’Oracle et pourrait renvoyer des modifications upstream. Dix jours plus tard, l’upstream a cessé de publier ses sources. illumos est alors devenu un fork par défaut, puisqu’il n’y avait plus rien à suivre. L’arbre principal, illumos-gate, a dépassé 23,000 commits en août 2026 et continue d’en recevoir.
Quelles distributions sont issues d’illumos
illumos n’est pas un logiciel que l’on installe. Il s’agit de l’arborescence du cœur du système, sur laquelle les distributions construisent un système utilisable. Voici celles qui sont toujours publiées.
- OpenIndiana a été officiellement lancé le 14 septembre 2010 au JISC Centre de Londres. C’est le descendant le plus proche de l’ancienne distribution desktop et serveur OpenSolaris. Il s’agit d’une rolling release nommée Hipster. Le snapshot 2026.04 a été publié le 5 mai 2026.
- OmniOS est une distribution serveur, désormais maintenue par sa communauté sous le nom d’OmniOS CE, après l’arrêt des travaux de son éditeur d’origine.
- SmartOS est une plateforme d’hyperviseur fondée sur les zones. Joyent l’a créée et a annoncé en avril 2022 que SmartOS et Triton seraient transférés à MNX Solutions à compter du 1 mai 2022.
- NexentaStor utilisait la même base pour ses appliances de stockage. Il s’agit de la gamme commerciale dont illumos est issu.
- Tribblix est une petite distribution maintenue par Peter Tribble, présentée ci-dessous.
- DilOS ajoute les outils de gestion des paquets de Debian à un kernel illumos.
À quoi ressemble aujourd’hui l’installation d’un système illumos
Tribblix est un exemple utile parce qu’il est léger, documenté publiquement et fait toujours l’objet de nouvelles releases. Le Milestone 41 pour x86 a été publié le 5 August 2026, et la branche SPARC a atteint le Milestone 34 le 21 April 2026. Le projet se décrit comme un système au style rétro doté de composants modernes. Il a conservé le format de package SVR4 utilisé par Solaris au lieu de passer à un système de packages plus récent.
L’installation s’effectue depuis une image live. Vous démarrez sur l’ISO, vous vous connectez avec l’utilisateur jack et le mot de passe jack, vous passez root, puis vous exécutez l’installer sur un périphérique disque. Voici la commande indiquée dans la documentation d’installation du projet :
./live_install.sh -G c1t0d0L’option -G écrit une table de partitions EFI (extensible firmware interface), tandis que -b sélectionne à la place une table de partitions MBR (master boot record) traditionnelle. Les noms des disques suivent la convention Solaris cXtYdZ et non /dev/sda. C’est le premier élément qui semblera inhabituel si vous utilisez Linux. Les ensembles logiciels sont appelés overlays et peuvent être indiqués sur la même ligne :
./live_install.sh -G c1t0d0 develop desktopAprès l’installation, l’outil de gestion des packages est zap. Il fonctionne avec les overlays et gère les dépendances à votre place :
zap refresh
zap install-overlay develop
zap update-overlay -aCe sont les commandes publiées par Tribblix. Elles s’exécutent sur du matériel ou un hyperviseur que vous contrôlez. Vous ne les trouverez pas derrière une image installable en un clic dans le control panel d’un VPS. Cet écart décrit honnêtement l’état du déploiement d’illumos en 2026.
Pourquoi ZFS et DTrace ont survécu à Solaris
ZFS a quitté Solaris presque immédiatement après la publication de son code source. Pawel Jakub Dawidek l’a porté sur FreeBSD, où il fait partie du système depuis FreeBSD 7.0 en 2008. Le développement de ZFS natif pour Linux a commencé en 2008 et a produit sa première version stable en 2013. Entre 2010 et 2013, illumos détenait la copie de référence du code source de ZFS, car l’arbre d’Oracle était fermé et chaque autre port avait besoin d’une source commune. C’est la valeur concrète du fork : sans lui, les ports n’auraient pas eu d’ancêtre commun avec lequel fusionner leurs modifications.
Le projet OpenZFS a été annoncé le 17 septembre 2013 pour coordonner ces ports. Matt Ahrens, l’un des auteurs originaux de ZFS, comptait parmi ses fondateurs. OpenZFS 2.0 est sorti le 30 novembre 2020. Ses notes de version exposent clairement le résultat : « Le projet ZFS on Linux a été renommé OpenZFS ! Linux et FreeBSD sont désormais pris en charge depuis le même repository, ce qui rend toutes les fonctionnalités d’OpenZFS disponibles sur les deux plateformes. » FreeBSD 13.0 a abandonné sa propre copie dérivée d’illumos et est passé à cet arbre partagé.
Les deux branches de ZFS ont divergé au niveau du format sur disque. La branche ouverte s’est arrêtée à la version de pool 28, la dernière version publiée par Sun, puis est passée aux feature flags nommés sous la version réservée 5000. Ainsi, un pool indique les fonctionnalités qu’il utilise au lieu de reposer sur un numéro unique. Oracle a continué à incrémenter ses propres numéros de version dans un code source fermé. Un pool créé au-delà de la version 28 d’un côté ne peut pas être importé de l’autre. Si vous devez choisir où l’exécuter, l’article comment OpenZFS se comporte sur FreeBSD par rapport à Linux présente les différences réelles entre les deux hôtes.
DTrace a parcouru une distance plus courte. Il était standard dans FreeBSD dès la version 7.1, en janvier 2009, et Apple l’a ajouté dans Mac OS X 10.5 Leopard. Oracle a publié le code du kernel DTrace sous GPLv2 en août 2017. Ce changement a été largement remarqué en février 2018, ce qui a supprimé l’obstacle lié à la licence pour Linux. Il n’a jamais été intégré au kernel mainline. En pratique, le tracing Linux repose sur eBPF, et bpftrace lui fournit un langage de scripting volontairement proche du langage D de DTrace.
L’idée générale ne concerne pas uniquement Solaris. Sun a publié ZFS et DTrace sous une licence qui permettait à d’autres de conserver une copie et de poursuivre leur développement. Lorsque l’entreprise qui finançait ce travail a cessé de le faire, le développement a continué, car le code se trouvait déjà dans d’autres arbres et entre d’autres mains. Les composants de Solaris qui n’ont jamais été ouverts, notamment les binaires fermés qu’illumos a dû réécrire, ont disparu avec l’entreprise. C’est ce que change l’open source. C’est aussi le même mécanisme qui explique la manière dont les distributions Linux dérivent les unes des autres.
Faut-il utiliser illumos sur un VPS ?
Pour presque tout le monde, la réponse est non. Rien de ce qui précède ne constitue une recommandation en ce sens. illumos prend en charge une gamme limitée de matériel, car son jeu de pilotes correspond à ce que Sun prenait en charge, complété par ceux qu’une petite communauté a écrits depuis. Les fournisseurs de VPS publient des images Linux et BSD. Installer illumos signifie donc généralement téléverser votre propre ISO chez un fournisseur qui autorise les images personnalisées, puis vérifier si le disque virtuel et les périphériques réseau sont reconnus. Les logiciels tiers proviennent du jeu de paquets de la distribution ou de votre propre compilateur.
Il existe de vraies raisons de l’utiliser : maintenir en fonctionnement une charge de travail Solaris, exploiter déjà un déploiement de zones ou vouloir lire le code source. Les distributions citées ci-dessus sont maintenues et leurs listes de diffusion répondent aux questions. C’est différent d’en faire le choix par défaut pour un nouveau serveur.
Si vous êtes venu pour ZFS, vous n’avez pas besoin d’illumos pour l’utiliser. Utilisez OpenZFS sur Linux ou FreeBSD, où il est empaqueté, documenté et largement déployé. Si vous envisagez le système BSD de la même famille pour un serveur, la comparaison pratique entre Linux et FreeBSD comme plateformes serveur explique ce qui change dans l’exploitation quotidienne. illumos est à l’origine de ces outils, et connaître leur provenance permet de mieux comprendre leur comportement, notamment pourquoi zpool et zfs n’ont rien à voir avec le reste de la stack de stockage Linux.
FAQ
illumos est-il la même chose qu’OpenSolaris ?
Non. OpenSolaris était le projet et la distribution de Sun. Oracle en a hérité, puis y a mis fin en 2010. illumos est un projet distinct, annoncé le 3 août 2010. Il a été construit à partir des dernières sources publiées du cœur d’OpenSolaris, la consolidation OS/Net. Sa première tâche a consisté à remplacer les composants binaires fermés fournis avec OpenSolaris, notamment libc_i18n, le gestionnaire de verrous NFS, le framework cryptographique et plusieurs drivers. Aucun code illumos ne provient d’Oracle après 2010, car Oracle a cessé de publier ces sources.
Pourquoi Linux ne peut-il pas inclure ZFS dans son noyau ?
Les licences sont incompatibles. ZFS est sous licence CDDL. La Free Software Foundation considère cette licence comme une licence de logiciel libre incompatible avec la GPL. Cette incompatibilité vient de la licence MPL 1.1, dont la CDDL est issue. Le noyau Linux est sous GPLv2. En pratique, OpenZFS sur Linux est fourni sous la forme d’un module de noyau externe, généralement compilé par DKMS pour chaque noyau installé, ou sous la forme d’un paquet contenant un module précompilé. Il fonctionne bien, mais le module doit être recompilé pour chaque nouveau noyau. Il peut donc avoir plusieurs jours ou plusieurs semaines de retard sur la sortie d’un nouveau noyau.
Oracle Solaris est-il toujours pris en charge ?
Oui. Oracle Solaris 11.4 est sorti le 28 août 2018 et constitue la version actuelle. Le Premier Support est assuré jusqu’en novembre 2031, et l’Extended Support jusqu’en novembre 2037, conformément à la politique de support à long terme d’Oracle. Oracle a licencié la plupart des équipes Solaris le 2 septembre 2017. Depuis, 11.4 reçoit des mises à jour des repositories de support, mais aucune nouvelle version majeure. Le code source complet n’est pas publié comme l’était celui d’OpenSolaris.
Puis-je installer illumos sur un VPS ?
Parfois, mais rarement à partir de la liste d’images du fournisseur. Vous avez généralement besoin d’un fournisseur qui permet d’attacher un ISO personnalisé et d’utiliser une console. Vérifiez ensuite que les drivers de disque virtuel et de réseau présents dans l’arbre illumos reconnaissent les périphériques de l’hyperviseur. OpenIndiana et Tribblix sont les points de départ habituels pour une installation généraliste. SmartOS est conçu pour servir d’hôte d’hyperviseur plutôt que de guest. Testez l’installation dans une machine virtuelle locale avant de payer quoi que ce soit.
DTrace vaut-il la peine d’être appris si je n’utilise que Linux ?
Le modèle reste applicable, même si l’outil lui-même ne l’est généralement pas. Oracle a publié le code du noyau DTrace sous GPLv2 en août 2017 et maintient un port pour Oracle Linux. Ce code n’a toutefois jamais été intégré au noyau mainline. En pratique, le tracing sous Linux repose sur eBPF. Le langage utilisé par bpftrace a été conçu pour ressembler au langage D de DTrace. Les probes, les prédicats et les agrégations ont donc le même sens dans les deux outils. Comprendre la méthode de raisonnement de DTrace permet de lire des scripts bpftrace dès la première lecture.