Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Ève

Il faut arrêter de parler des « distributions Linux »

Première rédaction de cet article le 27 février 2011


Pendant longtemps, de nombreuses personnes ont utilisé le terme de « distribution Linux » pour désigner les systèmes d'exploitation comme Debian ou Fedora. Ce terme, bien que très répandu, a toujours été incorrect et, heureusement, il commence à être moins utilisé. Quels problèmes pose-t-il ?

Pendant longtemps, ce terme de « distribution Linux » était présent sur la page d'accueil de Debian et était repris dans l'article de Wikipédia. Il a aujourd'hui disparu du site Web officiel et est moins présent sur l'article de Wikipédia. Mais, en fait, il a toujours été incorrect, pour plusieurs raisons.

La raison immédiate de la disparition du terme chez Debian est la sortie, le 6 février 2011, de la version 6 de Debian, surnommée Squeeze, et qui était la première version de Debian où un noyau non-Linux, en l'occurrence FreeBSD, était officiellement intégré. Debian ne peut donc clairement pas être appelée une « distribution Linux ».

Mais ce point peut être considéré comme relativement anecdotique car, après tout, l'écrasante majorité des utilisateurs de Debian se serviront de Linux. Le problème est qu'il y a une autre raison pour laquelle le terme de « distribution Linux » est inadapté : c'est que ce terme donne une importance excessive à un composant du système d'exploitation, le noyau. Sur la machine Debian où je tape ce texte, de très nombreux logiciels sont présents et nécessaires. Si le noyau est un des plus complexes, il n'est pas le seul logiciel. Pourquoi appeler ce système une « distribution Linux » et pas une « distribution X11 » ? Ou une « distribution GNU » ? Après tout, le système de fenêtrage X11 est un composant tout aussi crucial pour l'utilisateur moderne. Même chose pour la quantité des logiciels GNU dont dépend mon travail (à commencer par l'éditeur emacs). Il n'y a pas de raison objective de privilégier le noyau. D'autres logiciels sont indispensables (la libc par exemple). D'autres sont aussi complexes (X11...). D'autres sont plus significatifs pour décrire l'expérience quotidienne de l'utilisateur (Gnome...) Parler de « distribution Linux » laisse entendre que tous ces logiciels sont juste installés pour accompagner le noyau Linux dans sa tâche...

Est-ce juste un détail de terminologie ? Non, pas seulement car ce nom de « distribution Linux » a des conséquences pratiques fâcheuses. Ainsi, un certain nombre de programmeurs disent que leur logiciel tourne sur Linux parce qu'il marche sur leur Fedora, mais dépend en fait de plusieurs composants qui ne sont pas liés à Linux. Ainsi, contrairement à ce que pensent pas mal de gens :

  • Tous les systèmes utilisant Linux ne se servent pas forcément de la GNU libc (notamment les embarqués, où la µClibc est plus fréquente).
  • Tous les systèmes utilisant Linux n'ont pas forcément les outils GNU (ils peuvent par exemple utiliser BusyBox).

Donc, quand vous voyez « compatible Linux » sur un logiciel, cela ne veut pas dire qu'il marche avec tout système utilisant ce noyau, mais simplement qu'il a été documenté par quelqu'un qui ne comprenait pas la différence entre noyau et système d'exploitation, et qui a supposé que tous les Linux étaient à peu près pareils.

En parlant de systèmes embarqués, un bon exemple d'un système d'exploitation très populaire, utilisant Linux (et se présentant comme « distribution Linux »), mais pas beaucoup de choses que certains considèrent comme consubstantiels à Linux est le système OpenWrt. Un autre exemple fameux est Android qui utilise également Linux et qui, lui, de manière purement arbitraire, n'est jamais qualifié de « distribution Linux ».

Car on voit bien que le fond de l'affaire est une affaire de définition. Lors d'une discussion sur Twitter suite à cet article, plusieurs personnes ont affirmé que « Fedora est une distribution Linux mais pas Android » sans vraiment donner les critères qui permettent de séparer une « vraie distribution Linux » d'un système qui n'en est pas une. Parmi les critères proposés dans cette discussion :

  • La compatibilité Posix. Mais, dans ce cas, FreeBSD est aussi une « distribution Posix ».
  • Le fait d'être un « vrai » Linux, sans explications.

Même problème de définition lorsqu'on s'attaque à la question de savoir où s'arrête le système d'exploitation et où commencent les applications. Sur Debian, est-ce qu'emacs, le shell, la libc, init, ifconfig, vi, la bibliothèque OpenSSL et apt font partie du système ou des applications ? Il n'existe pas de critère fiable pour décider.

La principale raison du succès de ce terme de « distribution Linux » est sans doute d'ordre marketing : « Linux » est une marque connue. Mais ce terme n'a pas de base technique. Debian, CentOS, Gentoo, etc sont donc des systèmes d'exploitation, pas des distributions Linux.

Si on veut étudier plus précisement la part quantitative des différentes sources de code dans un système comme Ubuntu, on peut lire « How much GNU is there in GNU/Linux?. Mais cet article ne prend en compte que le nombre de lignes de code, pas leur importance (une ligne de la libc compte certainement plus que dix lignes d'un gadget qui affiche un truc rigolo sur l'écran) ou leur part réellement utilisé (le code du noyau est surtout composé d'innombrables pilotes dont seule une petite partie sert réellement).

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)