Unix est l’un des systèmes d’exploitation les plus populaires au monde en raison de sa large base de soutien et de sa distribution. Il a été développé à l’origine comme un système multitâche pour les mini-ordinateurs et les ordinateurs centraux au milieu des années 1970. Il s’est depuis développé pour devenir l’un des systèmes d’exploitation les plus utilisés dans le monde, malgré son interface parfois déroutante et son manque de standardisation centrale.
La véritable raison de la popularité d’Unix ? De nombreux hackers pensent qu’Unix est la bonne chose, le seul vrai système d’exploitation. D’où le développement de Linux par un groupe croissant de hackers Unix qui veulent se salir les mains avec leur propre système.
Des versions d’Unix existent pour de nombreux systèmes, allant des ordinateurs personnels aux superordinateurs tels que le Cray Y-MP. La plupart des versions d’Unix pour les ordinateurs personnels sont assez coûteuses et encombrantes. Au moment où nous écrivons ces lignes, une version pour une machine du System V d’AT&T pour le 386 coûte environ 1500 $US.
Linux est une version librement distribuable d’Unix,développée à l’origine par Linus Torvalds, qui a commencé à travailler sur Linux en 1991 alors qu’il était étudiant à l’université d’Helsinki en Finlande.Linus travaille maintenant pour Transmeta Corporation, une start-up de Santa Clara, en Californie, et continue à maintenir le noyau de Linux, c’est-à-dire le composant central de plus bas niveau du système d’exploitation.
Linus a publié la version initiale de Linux gratuitement sur Internet, provoquant par inadvertance l’un des plus grands phénomènes de développement de logiciels de tous les temps. Aujourd’hui, Linux est écrit et maintenu par un groupe de plusieurs milliers de développeurs (si ce n’est plus) qui collaborent librement sur Internet. Des sociétés sont apparues pour fournir une assistance pour Linux, pour l’empaqueter dans des distributions faciles à installer et pour vendre des stations de travail préinstallées avec le logiciel Linux. En mars 1999, la première exposition commerciale Linux World Expo s’est tenue à San Jose, en Californie, et aurait attiré plus de 12 000 personnes.La plupart des estimations situent le nombre d’utilisateurs de Linux dans le monde autour de 10 millions (et nous pensons que ce nombre paraîtra faible au moment où vous lirez ces lignes).
Inspiré par le système d’exploitation Minix d’Andrew Tanenbaum (un autre Unix libre pour PC – bien que très simple), Linux a commencé comme un projet de classe dans lequel Linus voulait construire un système Unix simple qui pourrait fonctionner sur un PC à base de 386.Les premières discussions sur Linux ont eu lieu sur le groupe de discussion Usenet comp.os.minix. Ces discussions concernaient surtout le développement d’un petit systèmeUnix académique pour les utilisateurs de Minix qui en voulaient plus.
Le tout premier développement de Linux traitait surtout des fonctionnalités de commutation de tâches de l’interface en mode protégé du 80386, le tout écrit en code assembleur. Linus écrit:
Après cela, c’était du vent : le codage était toujours poilant, mais j’avais quelques appareils, et le débogage était plus facile. J’ai commencé à utiliser le C à ce stade, et cela accélère certainement le développement. C’est aussi à ce moment que j’ai commencé à prendre au sérieux mes idées mégalomanes de faire « un meilleur Minix que Minix ». J’espérais pouvoir recompilegcc sous Linux un jour…
Deux mois pour la configuration de base, mais ensuite à peine plus longtemps jusqu’à ce que j’ai un pilote de disque (sérieusement bogué, mais il se trouve qu’il a fonctionné sur ma machine)et un petit système de fichiers. C’est à peu près à ce moment-là que j’ai mis la version 0.01 à disposition : elle n’était pas jolie, elle n’avait pas de pilote de disque, et elle ne pouvait pas faire grand-chose. Je ne pense pas que quiconque ait jamais compilé cette version. Mais à ce moment-là, j’étais accroché, et je ne voulais pas m’arrêter avant d’avoir pu balancer Minix.
Aucune annonce n’a jamais été faite pour la version 0.01 de Linux. Les sources 0.01 n’étaient même pas exécutables : elles ne contenaient que les rudiments de la source du noyau et supposaient que vous aviez accès à une machine Minix pour les compiler et jouer avec.
Le 5 octobre 1991, Linus a annoncé la première version « officielle » de Linux, la version 0.02. À ce stade, Linus était capable d’exécuterbash (le GNU Bourne AgainShell) et gcc (le GNU Ccompiler), mais pas grand chose d’autre ne fonctionnait. Encore une fois, ce système était destiné à être utilisé par les hackers. L’objectif principal était le développement du noyau ; aucun des problèmes d’assistance aux utilisateurs, de documentation, de distribution, etc. n’avait été abordé. Aujourd’hui, la situation est tout à fait différente – la véritable excitation dans le monde Linux concerne les environnements graphiques, les paquets de distribution faciles à installer et les applications de haut niveau telles que les utilitaires graphiques et les suites de productivité.
Linus a écrit dans comp.os.minix:
Vous vous languissez des beaux jours de Minix-1.1, quand les hommes étaient des hommes et écrivaient leurs propres pilotes de périphériques ? Vous n’avez pas de beau projet et vous mourrez d’envie de vous faire les dents sur un système d’exploitation que vous pouvez essayer de modifier pour vos besoins ? Vous trouvez frustrant que tout fonctionne sur Minix ? Plus de nuits blanches pour faire fonctionner un programme intéressant ? Alors ce post pourrait être juste pour vous.
Comme je l’ai mentionné il y a un mois, je travaille sur une version libre d’un sosie de Minix pour les ordinateurs AT-386. Il a finalement atteint le stade où il est même utilisable (bien qu’il puisse ne pas l’être en fonction de ce que vous voulez), et je suis prêt à mettre les sources pour une distribution plus large.C’est juste la version 0.02 … mais j’ai réussi à faire tournerbash, gcc, GNU make, GNUsed, compress, etc. sous elle.
Après la version 0.03, Linus a augmenté le numéro de version à 0.10, car plus de gens ont commencé à travailler sur le système. Après plusieurs autres révisions, Linus a augmenté le numéro de version à 0.95, pour refléter son attente que le système soit prêt pour une sortie « officielle » très bientôt. (En général, les logiciels ne reçoivent le numéro de version 1.0 que lorsqu’ils sont théoriquement complets ou exempts de bogues). C’était en mars 1992. Presque un an et demi plus tard, à la fin décembre 1993, le noyau Linux était toujours à la version 0.99.pl14 – se rapprochant de manière asymptotique de la version 1.0. La version 1.0 est apparue en mars 1994. Au moment où nous écrivons ces lignes (mars 1999), la version actuelle du noyau est la 2.2.6, tandis que les versions 2.3 du noyau sont développées en parallèle. (Nous expliquerons les conventions de version de Linux en détail plus tard.)
Linux n’aurait pas pu voir le jour sans les outilsGNU créés par la Free Software Foundation.Leur compilateur gcc, dont nous parlerons au chapitre 13 a donné vie au code de Linus Torvalds. Les outils GNU ont été intimement liés au développement de Linux depuis le début. En raison des contributions critiques de ces outils, laFree Software Foundation demande même que les distributions de Linux accompagnées d’utilitaires soient appelées GNU/Linux.
Berkeley Unix (BSD) a également joué un rôle important dans Linux – pas tant dans sa création, mais en fournissant les outils qui le rendent populaire. La plupart des utilitaires fournis avec les distributions Linux ont été portés depuis BSD. Les démons et utilitaires de mise en réseau sont particulièrement importants. Le code réseau du noyau de Linux a été développé de A à Z (deux ou trois fois, en fait), mais les démons et les utilitaires sont des classiques BSD.
Aujourd’hui, Linux est un clone Unix complet, capable d’exécuter le système X Window, TCP/IP, Emacs, le Web, les logiciels de courrier et de nouvelles, etc. Presque tous les principaux logiciels libres ont été portés sur Linux, et des logiciels commerciaux sont de plus en plus disponibles. En fait, de nombreux développeurs commencent par écrire des applications pour Linux, et les portent ensuite sur d’autres systèmes Unix. Plus de matériel est supporté que dans les versions originales du noyau. De nombreuses personnes ont exécuté des tests sur des systèmes Linux et les ont trouvés plus rapides que les stations de travail de Sun Microsystems et de Compaq, et les performances de Linux sont meilleures ou aussi bonnes que celles de Windows 98 et de Windows NT sur une large gamme de tests.Qui aurait pu imaginer que ce « petit » clone d’Unix aurait grandi pour s’attaquer au monde entier de l’informatique personnelle et des serveurs ?