Quelle est la différence entre Linux et Unix?



Bien que Linux ait puisé son inspiration dans Unix, il ne s’agit pas d’une simple copie conforme. En réalité, Linux se positionne comme une réinterprétation d’Unix, tout en conservant un esprit distinct. Cet article explorera les distinctions fondamentales entre ces deux systèmes d’exploitation emblématiques.

Une Différence de Nature?

Linux se présente comme un système d’exploitation gratuit et accessible en open source. À l’opposé, Unix est un produit commercial, proposé par divers fournisseurs, chacun offrant sa propre version, souvent adaptée à son matériel spécifique. Cette approche engendre des coûts élevés et un écosystème fermé. Pourtant, Linux et Unix partagent une même approche de base, accomplissant des tâches similaires de manière comparable. Alors, qu’est-ce qui les différencie réellement ? Les nuances sont, en réalité, plus complexes. Au-delà des aspects techniques et architecturaux, des différences notables existent dans leurs histoires et les influences qui les ont façonnées.

Genèse d’Unix

L’histoire d’Unix remonte à plus de 50 ans. Son développement initial a eu lieu chez Digital Equipment Corporation (DEC), en langage d’assemblage sur un ordinateur DEC PDP / 7. Il s’agissait d’un projet officieux mené au sein des Bell Labs, alors filiale de AT&T. Rapidement, Unix fut porté sur un DEC PDP / 11/20, puis s’étendit progressivement à d’autres machines de Bell. Une réécriture du code en langage de programmation C aboutit à la version 4 d’Unix en 1973. Cet événement fut déterminant, car les caractéristiques du langage C et de son compilateur facilitaient désormais le portage d’Unix sur diverses architectures informatiques.

En 1973, Ken Thompson et Dennis Ritchie présentèrent un article sur Unix lors d’une conférence. Suite à cela, les demandes de copies d’Unix affluèrent chez Bell. Toutefois, la vente de systèmes d’exploitation ne faisait pas partie des activités autorisées d’AT&T. Unix ne pouvait donc être commercialisé en tant que tel. La solution fut de distribuer Unix sous forme de code source, accompagné d’une licence. Les coûts étaient minimes, couvrant simplement les frais d’expédition et un « droit d’utilisation raisonnable ». Unix était fourni « tel quel », sans support technique ni correction de bugs. En contrepartie, l’utilisateur avait accès au code source et pouvait le modifier.

Unix fut rapidement adopté par les institutions universitaires. En 1975, Ken Thompson effectua une année sabbatique à l’Université de Californie, Berkeley. En collaboration avec des étudiants diplômés, il commença à enrichir et améliorer la version locale d’Unix. L’intérêt pour ces ajouts ne tarda pas à croître, menant à la création de la Berkeley Software Distribution (BSD). Il s’agissait d’un ensemble de programmes et de modifications système venant compléter un système Unix existant, sans pour autant être un système d’exploitation complet. Les versions ultérieures de BSD devinrent, quant à elles, des systèmes Unix à part entière.

Deux courants majeurs d’Unix émergèrent : le courant AT&T et le courant BSD. Toutes les autres variantes d’Unix, telles que AIX, HP-UX et Oracle Solaris, en sont des descendants. En 1984, certaines restrictions imposées à AT&T furent levées, permettant à l’entreprise de produire et de commercialiser Unix.

Unix était devenu un produit commercial.

La Naissance de Linux

Face à la commercialisation d’Unix, perçue comme une atteinte aux libertés des utilisateurs d’ordinateurs, Richard Stallman entreprit de créer un système d’exploitation axé sur la liberté. Celle-ci se manifestant par la liberté de modifier le code source, de redistribuer les versions modifiées et d’utiliser le logiciel sans restrictions. Ce système, nommé GNU, devait reproduire les fonctionnalités d’Unix, sans pour autant inclure de code source Unix. Le Projet GNU fut lancé en 1983 pour mener à bien ce projet. En 1985, il fonda la Free Software Foundation pour promouvoir, financer et soutenir le projet GNU.

Tous les aspects du système d’exploitation GNU progressaient, à l’exception du noyau. Les développeurs du projet travaillaient sur un micro-noyau appelé GNU Hurd, mais les avancées étaient lentes. (Il est toujours en développement aujourd’hui, et se rapproche d’une version stable). Sans noyau, il n’était pas possible de disposer d’un système d’exploitation fonctionnel.

En 1987, Andrew S. Tanebaum publia un système d’exploitation nommé MINIX (mini-Unix) comme support pédagogique pour les étudiants en conception de systèmes d’exploitation. MINIX était un système de type Unix fonctionnel, mais il présentait certaines limitations, notamment au niveau du système de fichiers. Le code source devait rester suffisamment petit pour être étudié en un seul semestre. Certaines fonctionnalités avaient donc été sacrifiées.

Souhaitant mieux comprendre le fonctionnement interne du processeur Intel 80386 de son nouveau PC, un étudiant en informatique, Linus Torvalds, écrivit un code simple de changement de tâches à titre d’exercice. Ce code devint par la suite un proto-noyau rudimentaire, point de départ du premier noyau Linux. Torvalds connaissait MINIX, ayant développé son premier noyau sur cette plateforme en utilisant le compilateur GCC de Richard Stallman.

Torvalds décida de créer son propre système d’exploitation, affranchi des limitations du MINIX, qui avait une vocation pédagogique. En 1991, il publia sa fameuse annonce sur le groupe Usenet dédié à MINIX, sollicitant des commentaires et suggestions sur son projet.

Linux n’est pas une simple copie d’Unix. S’il l’était, il serait Unix lui-même. En réalité, Linux s’apparente davantage à une réinterprétation d’Unix. Le terme « clone » suggère une petite portion de l’original cultivée pour obtenir une réplique exacte. Linux a été créé de manière indépendante, avec l’objectif de reproduire l’apparence et les fonctionnalités d’Unix. Il s’agit donc moins d’un clone que d’un réplicant.

Cependant, Linux était un noyau en quête d’un système d’exploitation, tandis que GNU était un système d’exploitation à la recherche d’un noyau. Avec le recul, l’union des deux semblait inévitable. Cela a également changé la face du monde.

Qui est à l’Origine du Développement?

Une distribution Linux résulte de l’assemblage de nombreux éléments différents, issus de sources diverses. Le noyau Linux, la suite d’utilitaires GNU et les applications utilisateur sont combinés pour créer une distribution viable. Un travail d’assemblage, de maintenance et de gestion est nécessaire, tout comme le développement du noyau, des applications et des utilitaires de base. Les responsables de distribution et les communautés qui gravitent autour contribuent à la naissance d’une distribution Linux au même titre que les développeurs du noyau.

Linux est le fruit d’un effort collaboratif, mené par des bénévoles, des organisations telles que Canonical et Red Hat, ainsi que des personnes parrainées par l’industrie.

Chaque version commerciale d’Unix est développée comme une entité unique et cohérente, par des équipes de développement internes ou sous-traitées, suivant un contrôle strict. Souvent, ces systèmes ont un noyau unique et sont conçus spécifiquement pour le matériel fourni par chaque vendeur.

Les dérivés libres et open-source du courant BSD Unix, comme FreeBSD, OpenBSD et DragonBSD, utilisent une combinaison de code BSD hérité et de nouveau code. Ces projets sont aujourd’hui gérés par des communautés, à l’instar des distributions Linux.

Normes et Conformité

Généralement, Linux n’est ni conforme à la Spécification Unix Unique (SUS), ni conforme à la norme POSIX. Il tente de satisfaire aux deux normes, sans pour autant y être contraint. Il existe quelques exceptions, comme Inspur K-UX, un Linux chinois compatible POSIX.

Les systèmes Unix authentiques, tels que les offres commerciales, sont conformes à ces normes. Certains dérivés BSD, y compris toutes les versions de macOS sauf une, sont compatibles POSIX. Les noms de variantes, comme AIX, HP-UX et Solaris, sont des marques déposées détenues par leurs entreprises respectives.

Marques et Droits d’Auteur

Linux est une marque déposée de Linus Torvalds. La Linux Foundation gère la marque en son nom. Le noyau Linux et les utilitaires de base sont publiés sous diverses licences GNU « Copyleft » Licences Publiques Générales. Le code source est disponible gratuitement.

Unix est une marque déposée de The Open Group. Il est protégé par le droit d’auteur, et est donc propriétaire et à source fermée.

FreeBSD est protégé par le droit d’auteur du Projet FreeBSD, mais son code source est disponible.

Différences d’Utilisation

Du point de vue de l’utilisateur, sur la ligne de commande, les différences sont minimes. La conformité aux normes POSIX permet de compiler des logiciels écrits sous Unix pour un système d’exploitation Linux avec un effort de portage limité. Les scripts shell, par exemple, peuvent souvent être exécutés directement sous Linux, avec peu ou pas de modifications.

Certains utilitaires de ligne de commande ont des options légèrement différentes, mais l’ensemble des outils disponibles reste globalement le même. IBM AIX propose même une Boîte à outils AIX pour les applications Linux. Cette fonctionnalité permet à l’administrateur système d’installer des centaines de paquets GNU (comme Bash, GCC, etc.).

Les différentes versions d’Unix proposent des interfaces graphiques (GUI), tout comme Linux. Un utilisateur Linux familier avec GNOME ou Mate aura besoin d’un temps d’adaptation la première fois qu’il rencontrera KDE ou Xfce, mais il s’y fera rapidement. La même situation se retrouve dans le monde Unix, avec des environnements graphiques comme Motif, le Common Desktop Environment et le X Window System. Tous sont suffisamment similaires pour qu’une personne familière avec les concepts d’un environnement fenêtré puisse s’y retrouver.

Les différences deviennent plus flagrantes lors de l’administration des systèmes. Par exemple, il existe différents mécanismes d’ init. Les dérivés d’Unix System V et le courant BSD ont des systèmes d’initialisation différents. Les variantes BSD libres ont conservé les schémas d’initialisation BSD. Par défaut, les distributions Linux utilisent un système d’initialisation dérivé d’Unix System V ou systemd.

Boîte Manuelle vs Automatique

Si vous savez conduire une voiture manuelle, vous saurez conduire une automatique, même si un certain temps d’adaptation est nécessaire au départ.

Si l’on fait abstraction du prix, les différences de philosophie, de licence, de modèle de développement, d’organisation communautaire et de style de gouvernance sont plus importantes que les différences visibles en ligne de commande, comme celles qui peuvent exister entre une commande grep sur Linux et Unix.

Les différences les plus significatives sont celles qui ne sont pas immédiatement visibles à l’écran.