L'histoire de Linux
Unix© est un des systèmes
d'exploitation les plus appréciés, notamment en raison du grand nombre
d'architectures prises en charge. Tout d'abord développé en tant que
système d'exploitation multitâche pour mini-ordinateurs et gros
systèmes au début des années soixante-dix, il est aujourd'hui
omniprésent, en dépit d'une interface parfois déroutante et d'un manque
de réelle standardisation.
Unix© est populaire au point que
nombre de programmeurs le considèrent comme le seul système
d'exploitation viable et lui vouent un culte quasi réligieux. Il existe
des versions d'Unix pour une vaste gamme de machines, depuis
l'ordinateur personnel jusqu'au super-calculateur. Néanmoins, la
plupart de ses implémentations pour PC restèrent longtemps onéreuses.
On
comprend alors que certains aient mis la main à la pâte afin de
réaliser une version d'Unix librement diffusable. Ainsi, un dénommé
Linus Torvalds, alors étudiant à l'université d'Helsinki (Finlande), en
développa la première version. De nombreux programmeurs et spécialistes
d'Unix participent aujourd'hui activement à l'optimisation du noyau
grâce au réseau mondial Internet. En outre, toute personne compétente
désireuse de contribuer à l'évolution du système est invitée à
participer. Le noyau de Linux n'utilise aucun code issu d'une version
commerciale d'Unix ou de quelque autre source propriétaire et la
plupart des programmes disponibles pour Linux sont conçus dans le cadre
du "projet GNU", qui vise à constituer un système complet librement diffusable.
Linus Torvalds s'est inspiré de Minix, modeste système Unix développé par Andy Tanenbaum. En conséquence, c'est le forum Usenet comp.os.minix
qui accueillit les premières discussions ayant trait à Linux, qui
portaient alors principalement sur le développement d'un petit système
Unix à l'usage des universitaires et autres utilisateurs de Minix
frustrés.
Linux Torvalds se proposait avant tout de maîtriser
la commutation de tâches en mode protégé sur le processeur 80386. Tout
fut réalisé en langage d'assemblage. Dixit Linus :
Ceci
fait, tout coulait de source : encore de la programmation touffue, mais
je disposais de quelques ressources et le débogage était moins pénible.
J'ai alors commencé à utiliser le langage C, ce qui a indubitablement
accéléré le développement. C'est aussi à cette époque que j'ai décidé
de concrétiser ce rêve délirant : réaliser un Minix meilleur que Minix
... J'espérais être un jour en mesure de recompiler gcc sous Linux ...
Deux mois pour le code de base, puis quelques efforts pour disposer
d'un pilote de disque dur (sérieusement bogué, mais qui, par chance,
fonctionnait sur ma machine) et d'un système de fichiers rudimentaire.
S'ensuivit la diffusion de la version 0.01
[fin août 1991], peu élégante et peu puissante, dénuée de pilote de
disquette. Il m'étonnerait que quelqu'un ait un jour compilé cette
version ... Mais, pris au jeu, j'étais déterminé à surpasser Minix
coûte que coûte.
L'avènement de la version 0.01 ne fit l'objet
d'aucune notification préalable. Elle n'était pas même exécutable et
l'archive, qui ne contenait que le squelette des sources du noyau,
imposait l'accès à un système Minix pour compiler et découvrir Linux.
Le
5 octobre 1991, Linus délivra la toute première version "officielle" de
Linux (0.02). A défaut d'autre chose, le système était à présent
capable d'exécuter bash (le Bourne Again Shell de GNU) et gcc. Les
premières moutures de Linux, en effet, étaient surtout destinées aux
hackers et se focalisaient sur le développement du noyau, ce qui
explique l'absence de service d'assistance technique, de documentation,
etc. Dans une moindre mesure, la communauté Linux considère encore
aujourd'hui ces aspects comme très secondaires en regard de la "vraie
programmation" : le développement du noyau.
Voici l'appel que lança Linus à l'époque dans comp.os.minix :
Vous
regrettez les beaux jours de Minix-1.1, époque bénie où les hommes
étaient dignes de ce nom et écrivaient leurs propres pilotes de
périphériques ? Vous cherchez à vous investir dans un projet original
et vous vous languissez d'un système modifiable à votre convenance ?
Vous êtres frustré que tout fonctionne sous Minix ? Vous regrettez les
nuits blanches passées à tenter d'implanter un programme récalcitrant ?
Si tel est le cas, lisez ce qui suit : Comme signalé il y a un mois, je
travaille actuellement sur une version libre d'un système analogue à
Minix pour ordinateur AT-386. Ce système est à présent utilisable (mais
peut-être ne vous conviendra-t-il pas, tout dépend de ce que vous
recherchez) et je compte en diffuser les sources. Il s'agit pour
l'instant de la version 0.02, capable néanmoins d'exécuter bash, gcc,
gnu-make, gnu-sed, compress, etc.
Une fois diffusée la version
0.03, Linus passa directement à la version 0.10, au vu du développement
rapide. Puis, après plusieurs autres révisions, Linus, qui pressentait
que Linux serait bientôt prêt pour une version "officielle", gonfla à
nouveau le numéro, qui passa alors à 0.95 (par convention, le numéro de
version 1.0 n'est attribué qu'après l'obtention d'un programme
théoriquement complet et dénué de bogue).
Dix-huit mois plus
tard (fin 1993) Linus apportait la touche finale à la version 0.99.pl14
du noyau, s'approchant de 1.0 de manière apparamment asymptotique.
Certains ne croyaient plus que la version 1.0 verrait jamais le jour.
Elle existe pourtant, et à tant et si bien évolué que la version
actuelle (décembre 2005) mènera sous peu à la 2.6.14 stable.
Linux n'aurait pu naître sans l'apport des outils GNU créés par la Free Software Foundation.
Leur compilateur gcc, dont nous traiterons ultérieurement, insuffla la
vie au code de Linus Torvalds. Depuis l'origine, en effet, les
programmes GNU et le développement de Linux sont intimement liés.
La version d'Unix issue de Berkeley (dite "BSD")
a elle aussi joué un rôle important, quoique davantage à travers la
mise à disposition de ses fameux outils que lors de la création de
Linux. Beaucoup d'utilitaires fournis avec les distributions du système
proviennent de portages de programmes BSD. Ainsi, les démons et
commandes réseau jouent un rôle crucial. A vrai dire, la partie réseau
du code de Linux a été développée en totalité (deux ou trois fois, en
fait), mais ces démons et commandes émanent en droite ligne de BSD.
A ce jour, Linux est un système Unix complet capable de prendre en charge X Window, TCP/IP, Emacs, UUCP,
le courrier électronique, les forums Usenet et bien d'autres
utilitaires et fonctions. Rares sont les logiciels libres célèbres qui
n'ont pas encore été portés sous Linux et on se réjouit de voir de
grands éditeurs proposer des applications commerciales. Linux reconnaît
aujourd'hui maints périphériques, ce qui n'était pas le cas dans ses
premières versions. A de multiples occasions, les machines dotées de
Linux ont affiché des performances comparables aux stations de travail
de milieu de gamme de Sun Microsystems et Digital Equipment
Corporation. Qui aurait pu imaginer que cet Unix rachitique gagnerait
un jour une telle ampleur et un tel rayonnement ?
Linux a été
reconnu conforme au standard POSIX (.1 et .2) grâce aux efforts de la
société Lasermoon. Au-delà de sa valeur symbolique, une telle
reconnaissance accélère la propagation de Linux au sein des sociétés
commerciales mais aussi de l'administration, qui exige la conformité
POSIX de la plupart des systèmes qu'elle utilise (MS-Windows compris,
comme en témoignent les aménagements apportés à la version NT par
Microsoft).
|