Une brève histoire de Linux

introduction

Dans l’usage courant, «Linux» fait souvent référence à un groupe de distributions de systèmes d’exploitation construites autour du noyau Linux. Dans le sens le plus strict, Linux ne fait référence qu’à la présence du noyau lui-même. Pour créer un système d’exploitation complet, les distributions Linux incluent souvent des outils et des bibliothèques du projet GNU et d’autres sources. De plus en plus de développeurs ont récemment utilisé Linux pour créer et exécuter des applications mobiles. il a également joué un rôle clé dans le développement de périphériques abordables tels que les Chromebooks, qui exécutent des systèmes d’exploitation sur le noyau. Dans les environnements de cloud computing et de serveurs en général, Linux est un choix courant pour des raisons pratiques:

  • Ses distributions restent actuelles et supportées par les communautés d’autres développeurs.

  • Il peut fonctionner sur une large gamme de matériels et s’installe aux côtés de systèmes préexistants (caractéristique utile dans les environnements de développement locaux).

  • Il prend en charge l’installation centralisée de logiciels à partir de référentiels préexistants.

  • Ses besoins en ressources sont faibles.

  • Il est souvent primordial que les développeurs créent des écosystèmes d’applications et des outils pour les serveurs, ce qui entraîne des niveaux élevés de compatibilité.

  • Il apporte les modifications nécessaires aux comportements du système d’exploitation.

Linux tire également ses origines du mouvement des logiciels libres et à code source ouvert. En conséquence, certains développeurs le choisissent pour une combinaison de raisons éthiques et pratiques:

  • Pour certains développeurs, utiliser Linux représente un engagement en matière d’accessibilité et de liberté d’expression.

  • La communauté Linux attire également certains développeurs: lorsqu’ils ont des questions, ils peuvent consulter les ressources produites par cette communauté ou contacter directement l’un des nombreux responsables actifs.

Pour comprendre le rôle de Linux au sein de la communauté des développeurs (et au-delà), cet article décrira un bref historique de Linux par Unix et traitera de certaines distributions Linux populaires.

Racines sous Unix

Linux a ses racines dans Unix et Multics, deux projets partageant le même objectif: développer un système d’exploitation multi-utilisateur robuste.

Les débuts d’Unix

Unix est issu du projet Multics du centre de recherche en sciences informatiques des laboratoires Bell. Les développeurs travaillant sur les Multics chez Bell Labs et ailleurs étaient intéressés par la construction d’un système d’exploitation multi-utilisateurs avec stockage à un seul niveau, liaison dynamique (dans laquelle un processus en cours peut demander l’ajout d’un autre segment à son espace adresse, lui permettant de s’exécuter le code de ce segment) et un système de fichiers hiérarchique.

Les Bell Labs ont cessé de financer le projet Multics en 1969, mais un groupe de chercheurs, notamment Ken Thompson et Dennis Ritchie, ont continué à appliquer les principes fondamentaux du projet. En 1972-3, ils ont pris la décision de réécrire le système en C, ce qui rendait Unix particulièrement portable: contrairement à d’autres systèmes d’exploitation modernes, il pouvait à la fois quitter et survivre à son matériel.

La recherche et le développement chez Bell Labs (plus tard AT & T) se sont poursuivis, Unix System Laboratories développant des versions d’Unix, en partenariat avec Sun Microsystems, qui seraient largement adoptées par les fournisseurs commerciaux Unix. Parallèlement, les recherches se sont poursuivies dans les milieux universitaires, notamment le groupe de recherche sur les systèmes informatiques de l’Université de Californie à Berkeley. Ce groupe a produit Berkeley Software Distribution (BSD), qui a inspiré toute une gamme de systèmes d’exploitation, dont beaucoup sont encore utilisés de nos jours. NeXTStep, le système d’exploitation mis au point par NeXT, est devenu la base de macOS, entre autres produits, et MINIX, un système d’exploitation éducatif qui a servi de base comparative à Linus Torvalds pour le développement de Linux.

Principales fonctionnalités d’Unix

Unix s’articule autour des principes de clarté, de portabilité et de simultanéité.

  • Clarté: la conception modulaire de Unix permet aux fonctions de fonctionner de manière limitée et définie. Son système de fichiers est unifié et hiérarchisé, ce qui simplifie la manipulation des données. À la différence de certains de ses prédécesseurs, Unix implémente des centaines (plutôt que des milliers) d’appels système, chacun étant conçu pour être simple et clair.

  • Portabilité: en écrivant Unix en C, le groupe des Bell Labs a positionné Unix pour une utilisation et une adoption à grande échelle. C a été conçu pour offrir un accès de base à la mémoire, une prise en charge minimale au moment de l’exécution et une relation efficace entre la langue et les instructions machine. Une base en C signifie qu’Unix est adaptable et facile à utiliser sur divers matériels.

  • Simultanéité: le noyau Unix est conçu dans le but (partagé par le projet Multics) de maintenir plusieurs utilisateurs et flux de travail. L’espace noyau reste distinct de l’espace utilisateur sous Unix, ce qui permet à plusieurs applications de s’exécuter simultanément.

L’évolution de Linux

Unix a posé d’importantes questions aux développeurs, mais il est également resté propriétaire dans ses premières itérations. Le prochain chapitre de son histoire est donc l’histoire de la façon dont les développeurs ont travaillé à l’intérieur et à l’extérieur pour créer free and open-source des alternatives.

Expériences Open-Source

Richard Stallman était une figure centrale parmi les développeurs qui ont été inspirés par la création d’alternatives non propriétaires à Unix. Au Laboratoire d’intelligence artificielle du MIT, il a commencé à travailler sur le projet GNU (récursif pour "GNU’s Unix!"), Avant de quitter le laboratoire en 1984 pour pouvoir distribuer les composants GNU en tant que logiciel libre. Le noyau GNU, connu sous le nom de GNU HURD, est devenu le centre de la Free Software Foundation (FSF), fondée en 1985 et dirigée actuellement par Stallman.

Pendant ce temps, un autre développeur travaillait sur une alternative gratuite à Unix: Linus Torvalds, étudiant de premier cycle finlandais. Après avoir été frustré par la licence accordée à MINIX, Torvalds a annoncé le 25 août 1991 à un groupe d’utilisateurs de MINIX qu’il développait son propre système d’exploitation, qui ressemblait à MINIX. Bien que développé initialement sur MINIX à l’aide du compilateur GNU C, le noyau Linux est rapidement devenu un projet unique avec un noyau de développeurs qui ont publié la version 1.0 du noyau avec Torvalds en 1994.

Torvalds utilisait du code GNU, y compris le compilateur GNU C, avec son noyau, et il reste vrai que de nombreuses distributions Linux utilisent des composants GNU. Stallman a fait pression pour élargir le terme «Linux» à «GNU / Linux», ce qui reflèterait à la fois le rôle du projet GNU dans le développement de Linux et les idéaux sous-jacents qui ont favorisé le projet GNU et le noyau Linux. Aujourd’hui, «Linux» est souvent utilisé pour indiquer à la fois la présence du noyau Linux et des éléments GNU. En même temps, les systèmes embarqués sur de nombreux appareils de poche et smartphones utilisent souvent le noyau Linux avec peu ou pas de composants GNU.

Principales fonctionnalités de Linux

Bien que le noyau Linux ait hérité de nombreux objectifs et propriétés d’Unix, il diffère du système précédent des manières suivantes:

  • Son composant principal est le noyau, qui est développé indépendamment des autres composants du système d’exploitation. Cela signifie que Linux emprunte des éléments à diverses sources (telles que GNU) pour constituer l’ensemble du système d’exploitation.

  • C’est gratuit et open-source. Maintenu par une communauté de développeurs, le noyau est sous licence GNU General Public License (une branche du travail de la FSF sur le projet GNU) , et disponible pour téléchargement et modification. La GPL stipule que les travaux dérivés doivent respecter les conditions de licence du logiciel d’origine.

  • Il a un noyau monolithique, semblable à Unix, mais il peut charger et décharger dynamiquement le code du noyau à la demande.

  • Il prend en charge le multiprocesseur symétrique (SMP), contrairement aux implémentations Unix traditionnelles. Cela signifie qu’un seul système d’exploitation peut avoir accès à plusieurs processeurs, qui partagent une mémoire principale et ont accès à tous les périphériques d’E / S.

  • Son noyau est préemptif, une autre différence avec Unix. Cela signifie que le planificateur peut forcer un commutateur de contexte sur un pilote ou une autre partie du noyau pendant son exécution.

  • Son noyau ne fait pas la différence entre les threads et les processus normaux.

  • Il inclut une interface de ligne de commande (CLI) et peut également inclure une interface utilisateur graphique (GUI).

Distributions Linux populaires

Les développeurs gèrent de nombreuses distributions Linux populaires aujourd’hui. Parmi les plus anciennes, on trouve Debian, une distribution gratuite et à code source ouvert contenant 50 000 packages logiciels. Debian a inspiré une autre distribution populaire, Ubuntu, financée par Canonical Ltd. Ubuntu utilise le format de paquet deb et les outils de gestion de paquet de Debian, et les développeurs d’Ubuntu transmettent les modifications en amont à Debian.

Une relation similaire existe entre Red Hat, Fedora et CentOS. Red Hat a créé une distribution Linux en 1993 et, dix ans plus tard, il a concentré ses efforts sur Red Hat Enterprise Linux et Fedora, un système d’exploitation basé sur la communauté qui utilise le noyau Linux et des éléments du projet GNU. Red Hat entretient également une relation avec le projet CentOS, une autre distribution Linux populaire pour les serveurs Web. Cette relation n’inclut cependant pas la maintenance payante. Comme Debian, CentOS est géré par une communauté de développeurs.

Conclusion

Dans cet article, nous avons couvert les racines de Linux sous Unix et certaines de ses caractéristiques. Si vous souhaitez en savoir plus sur l’histoire des versions de Linux et Unix (y compris FreeBSD), notre series sur FreeBSD. Une autre option pourrait consister à examiner notre introduction series sur la prise en main de Linux. Vous pouvez également consulter cette introduction à la disposition du système de fichiers sous Linux, ceci discussion de la façon d’utiliser + find + `et + local + `pour rechercher des fichiers sur un VPS Linux, ou ceci introduction aux expressions rationnelles sur la ligne de commande .