SSD Nodes Learn Hosting plans →
Guides Matt ConnorPar Matt Connor

Solaris et illumos : pourquoi le fork existe encore

Oracle a fermé le code source de Solaris après le rachat de Sun en 2010. Découvrez comment illumos a préservé ZFS et DTrace, toujours utilisés sous Linux et FreeBSD.

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 et a cessé de publier ce code source. Des développeurs externes à 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 qu’il intègre 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 sur la licence. Cet article raconte comment cela s’est produit, 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 Unix universitaire sur laquelle Bill Joy avait travaillé avant la création de Sun. L’autre branche 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 dizaine d’années.

En 1987, Sun et AT&T ont annoncé un projet commun visant à fusionner BSD, System V et Xenix dans une seule release : UNIX System V Release 4, généralement appelé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 sortie 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 utilisait 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 encore SunOS, car illumos a hérité du nom en même temps que du code.

Ce que Solaris 10 a introduit en 2005

Solaris 10 est sorti le 31 janvier 2005. Cette version est importante ici, car tout ce qui a survécu à l’entreprise se trouvait dans cette version ou a été ajouté dans l’une de ses mises à jour.

DTrace a été développé chez Sun par Bryan Cantrill, Mike Shapiro et Adam Leventhal. Il a été proposé pour la première fois en novembre 2003. Il permet d’instrumenter un kernel en cours d’exécution et des processus utilisateur actifs, sans rien recompiler et sans redémarrer le processus surveillé. Une probe qui n’est 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 regroupe le volume manager et le filesystem dans une même couche. Cela lui permet de vérifier chaque bloc à la lecture avec une checksum 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 correspond simplement à l’ensemble des blocs que les écritures ultérieures n’ont pas modifiés. ZFS ne faisait pas partie de la version initiale de Solaris 10. Il a été livré dans la mise à jour Solaris 10 6/06, en juin 2006.

Les zones constituaient le troisième élément. Une zone permet à un même 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 build bêta de Solaris 10 en février 2004 et ont été livrées avec la version complète. FreeBSD était arrivé plus tôt à une idée similaire, 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 publié 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, et l’OSI l’a approuvée le 14 janvier 2005. La CDDL est fondé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 construit à 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 qui venait d’être lancé, six jours avant la sortie de Solaris 10. L’essentiel 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 à la 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é le 5 mai 2008 sous la forme d’un live CD, puis 2009.06 est arrivé 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 construit comme un module du noyau situé en dehors de l’arborescence 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 celle qui compte le plus pour la suite de cette histoire, et l’histoire des licences open source explique pourquoi une entreprise prendrait une telle décision.

Ce qui s’est passé quand Oracle a racheté Sun

Oracle a annoncé le 20 avril 2009 son intention de racheter 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 janvier 2010.

Le 13 août 2010, une note interne d’Oracle rédigée par Mike Shapiro, Bill Nesheim et Chris Armes a circulé au sein de l’entreprise avant de fuiter. Elle énonçait 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 toute nouvelle build communautaire : « Nous ne publierons aucune autre distribution binaire, comme les builds nocturnes ou bimensuelles des binaires Solaris, ni de distribution OpenSolaris 2010.05 ou ultérieure. » Les versions open source suivraient désormais les produits commercialisés : « Nous distribuerons les mises à jour du code sous licence CDDL approuvé ou sous une autre licence open source après les releases complètes de notre système d’exploitation Solaris Enterprise. »

Le 23 août 2010, l’OpenSolaris Governing Board a adopté une résolution constatant qu’Oracle n’avait pas nommé de liaison auprès du conseil et avait annoncé la fin du partenariat de développement le 13 août. Le conseil a voté le transfert du contrôle de la communauté à Oracle conformément à la charte rédigée à l’origine par Sun, ce qui a dissous le conseil.

Oracle Solaris 11 est sorti le 9 novembre 2011. Le 2 septembre 2017, Oracle a licencié la plupart des équipes Solaris. Oracle Solaris 11.4 est sorti le 28 août 2018 et était toujours la release actuelle en juillet 2026, avec des mises à jour du support repository. Lorsqu’Oracle a révisé pour la dernière fois sa politique de support à long terme pour 11.4, en janvier 2024, l’entreprise a maintenu le Premier Support jusqu’en 2031 et prolongé l’Extended Support de 2034 à 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, 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 uniquement la première lettre en majuscule.

La cible était OS/Net, généralement écrit ON : la consolidation qui regroupe le kernel et les utilitaires système essentiels. OpenSolaris n’avait jamais été entièrement open source. Plusieurs composants étaient distribués sous forme de binaires fermés qu’aucune personne extérieure à Sun ne pouvait reconstruire. Cela concernait 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. Leur remplacement a constitué la première tâche du projet, car un système d’exploitation qui ne peut pas être compilé depuis ses sources n’est pas maintenable.

D'Amore employait le terme 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 ainsi 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 changements. illumos est donc 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 octobre 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 de base, sur laquelle les distributions construisent un système utilisable. Voici celles qui sont encore publiées.

  • OpenIndiana a été officiellement lancée le 14 septembre 2010 au JISC Centre de Londres. C’est la descendante la plus proche de l’ancienne distribution OpenSolaris pour postes de travail et serveurs. Il s’agit d’une rolling release nommée Hipster, dont le snapshot 2026.04 a été publié le 5 mai 2026.
  • OmniOS est une distribution pour serveurs, désormais maintenue par sa communauté sous le nom d’OmniOS CE, après l’arrêt de son développement par 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, décrite 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 l’exemple le plus utile, car il est léger, sa documentation est publique et le projet publie encore des versions. Le Milestone 41 pour x86 a été publié le 5 August 2026. La branche SPARC est passée au Milestone 35 le 23 September 2026. Il s’agit d’une version synthétique qui ajoute des packages plus récents, dont gcc 10, au système d’exploitation Milestone 34. L’ISO d’installation SPARC que vous téléchargez reste toutefois celle du Milestone 34. Le projet se décrit comme un système au style rétro doté de composants modernes. Il a conservé le format de packages SVR4 utilisé par Solaris au lieu d’adopter 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 lancez l’installateur sur un périphérique disque. Voici la commande indiquée dans la documentation d’installation du projet :

./live_install.sh -G c1t0d0

L’option -G écrit une table de partitions EFI (extensible firmware interface). L’option -b sélectionne à la place une table MBR (master boot record) traditionnelle. Les noms des disques suivent la convention Solaris cXtYdZ plutôt que /dev/sda. C’est le premier point qui semblera inhabituel si vous venez de Linux. Les ensembles logiciels sont appelés overlays et peuvent être indiqués sur la même ligne :

./live_install.sh -G c1t0d0 develop desktop

Aprè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 -a

Ce sont les commandes publiées par Tribblix. Elles s’exécutent sur du matériel ou un hyperviseur que vous contrôlez. Vous ne trouverez pas Tribblix derrière une image en un clic dans le panneau de contrôle d’un VPS. SmartOS fait exception parmi les systèmes illumos. MNX, l’entreprise qui l’a repris à Joyent, propose un « choix entre Linux, FreeBSD ou SmartOS » depuis son propre panneau de contrôle cloud (vérifié le 12 October 2026). En dehors de ce cas, une image illumos dans la liste d’un fournisseur reste rare. En 2026, c’est l’état réel du déploiement d’illumos.

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é vers FreeBSD, où il fait partie du système depuis FreeBSD 7.0, en 2008. Le travail sur le port natif de ZFS vers Linux a commencé en 2008 et a produit une 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 depuis laquelle récupérer les changements. 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 décrivent 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 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 à des feature flags nommés sous la version réservée 5000. Ainsi, un pool indique les fonctionnalités qu’il utilise au lieu d’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 sur une branche ne peut pas être importé sur l’autre. Si vous devez choisir où l’exécuter, le fonctionnement d’OpenZFS sur FreeBSD par rapport à Linux explique les différences concrètes 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é à Mac OS X 10.5 Leopard. Oracle a publié le code du kernel de DTrace sous GPLv2 en août 2017. Ce changement a été largement remarqué en février 2018 et 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 script volontairement proche du 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 personnes d’en conserver une copie et de continuer à les développer. Lorsque l’entreprise qui finançait le 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, et c’est le même mécanisme qui explique la manière dont les distributions Linux descendent 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 dans ce sens. illumos prend en charge une gamme limitée de matériel, car ses pilotes correspondent à ceux pris en charge par Sun, auxquels s’ajoutent ceux développés depuis par une petite communauté. La plupart des fournisseurs de VPS publient uniquement des images Linux et BSD. MNX fait exception : après avoir repris SmartOS à Joyent, cette société propose SmartOS aux côtés de Linux et FreeBSD dans son propre cloud. Ailleurs, installer illumos consiste généralement à téléverser son propre fichier 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 de l’ensemble de paquets de la distribution ou de votre propre compilateur.

Il existe de vraies raisons de l’utiliser : maintenir un workload Solaris dont vous avez besoin, exploiter un déploiement de zones déjà en production ou vous intéresser au code source. Les distributions citées ci-dessus sont maintenues et leurs listes de diffusion répondent aux questions. Cela ne signifie pas qu’il s’agit d’un choix par défaut pour un nouveau serveur.

Si vous êtes ici 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 présente les différences dans l’exploitation quotidienne. illumos est à l’origine de ces outils, et savoir d’où ils viennent permet de mieux comprendre leur comportement, notamment pourquoi zpool et zfs ne ressemblent en rien au reste de la pile 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 August 2010, à partir du dernier code source publié du cœur d’OpenSolaris, la consolidation OS/Net. Sa première tâche a consisté à remplacer les composants binaires fermés fournis par OpenSolaris, notamment libc_i18n, le gestionnaire de verrous NFS, le framework cryptographique et plusieurs pilotes. Aucun code illumos ne provient d’Oracle après 2010, car Oracle a cessé de le publier.

Pourquoi Linux ne peut-il pas intégrer ZFS à son noyau ?

Les licences sont incompatibles. ZFS est sous licence CDDL, que la Free Software Foundation classe parmi les licences de logiciel libre incompatibles 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 on Linux est fourni comme un module de noyau externe, généralement compilé par DKMS pour chaque noyau installé, ou sous forme de paquet de module précompilé. Il fonctionne bien, mais le module doit être recompilé pour chaque nouveau noyau. Il peut donc avoir plusieurs jours ou semaines de retard sur une nouvelle version du noyau.

Oracle Solaris est-il toujours pris en charge ?

Oui. Oracle Solaris 11.4 est sorti le 28 August 2018 et était toujours la version actuelle, avec des mises à jour du support repository, en July 2026. La politique de support à long terme d’Oracle, révisée pour 11.4 en January 2024, prévoit un Premier Support jusqu’en 2031 et un Extended Support jusqu’en 2037. Oracle a licencié la plupart des équipes Solaris le 2 September 2017. Depuis, 11.4 reçoit des mises à jour du support repository plutôt qu’une 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. MNX, qui maintient SmartOS, propose SmartOS depuis sa propre interface cloud. Dans les autres cas, il faut généralement un fournisseur permettant d’attacher un ISO personnalisé et d’utiliser une console. Vérifiez ensuite que les pilotes de disque virtuel et de réseau de 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 héberger un hyperviseur, et non pour être installé vous-même comme guest. Testez d’abord 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 se transpose, même si l’outil ne se transpose généralement pas. Oracle a publié le code du noyau DTrace sous GPLv2 en August 2017 et maintient un port pour Oracle Linux. Toutefois, il n’a jamais été intégré au noyau mainline. En pratique, le tracing sous Linux utilise eBPF. Le langage utilisé par bpftrace a été conçu pour ressembler au 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 DTrace permet de lire des scripts bpftrace dès la première tentative.

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