Page:Linux's History.djvu/8

Cette page n’a pas encore été corrigée
LINUX’s History by Linus Torvalds
https ://www.cs.cmu.edu/~awb/linux.history.html

et le débogage était plus facile. J’ai commencé à utiliser le C à ce stade, et et cela accélère certainement le développement. C’est aussi à ce moment que je commence à être sérieux sur mes idées mégalomanes de faire "un minix meilleur que minix". J’espérais pouvoir recompiler gcc sous linux un jour…

Le pilote de disque dur a été la même chose : cette fois les problèmes de mauvaise documentation ont commencé à se manifester. Le PC est peut-être l’architecture la plus utilisée au monde, mais cela ne veut pas dire que la documentation est meilleure : en fait, je n’ai vu aucun livre mentionner le couplage bizarre 386-387 dans un AT etc (Merci Bruce).

Après cela, un petit système de fichiers, et voilà, vous avez un unix minimal. Deux mois pour les configurations de base, mais seulement un peu plus longtemps jusqu’à ce que j’aie un pilote de disque (sérieusement buggé, mais il fonctionnait sur ma machine) et un petit système de fichiers. C’est à peu près au moment où j’ai rendu la 9.01 disponible (fin août 1991 ? Quelque chose comme ça) : elle n’était pas très jolie, elle n’avait pas de pilote de disquette, 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 me débarrasser de minix. arrêter jusqu’à ce que je puisse me débarrasser de Minix.

3) Est-ce que de nouveaux Linkers (créateurs de liens) et loaders (lanceurs) doivent être écrits avant d’avoir un noyau de base ?

Toutes les versions jusqu’à environ 0.11 ont été compilées sous minix386 - tout comme les programmes utilisateurs. J’ai réussi à faire fonctionner bash et gcc sous la version 0.02. 0.02, et bien qu’une race-condition dans le code du buffer-cache m’a empêché de de recompiler gcc sous lui-même, j’ai pu m’attaquer à des compilations plus petites. La 0.03 (octobre ?) était capable de recompiler gcc sous elle-même, et je pense que que c’est la première version que quelqu’un d’autre a réellement utilisée. Toujours pas de disquettes, mais la plupart des choses de base fonctionnaient.

Après la 0.03, j’ai décidé que la version suivante était réellement utilisable (elle l’était, en quelque sorte, mais X sous 0.96 est plus impressionnant), et j’ai appelé la version suivante version 0.10 (novembre ?). Il y avait encore un bogue assez sérieux dans le code de gestion du buffer-cache, mais après avoir corrigé cela, c’était plutôt bien. La 0.11 (décembre) est venu le premier pilote de disquette, et c’est à ce moment que j’ai commencé à faire du développement linux tout seul. C’est bien ainsi, car j’ai j’ai détruit ma partition minix386 par erreur en essayant d’appeler automatiquement /dev/hd2.

A ce moment là d’autres personnes utilisaient réellement linux, et se retrouvaient à court de mémoire. Ce qui était particulièrement triste, c’est que gcc ne fonctionnait pas sur une machine de 2MB, et bien que c386 ait été porté, il ne faisait pas tout ce que gcc faisait, et ne pouvait pas recompiler le noyau. J’ai donc dû implémenter le disk-paging : La version 0.12 est sortie en janvier (?) et contenait la pagination par moi ainsi que le contrôle des tâches par tytso (et d’autres patches : pmacdona avait commencé sur les VC’s etc). C’était la première version qui commençait à avoir des fonctionnalités "non essentielles", et étant partiellement écrites par d’autres. C’était aussi la première version qui faisait beaucoup de choses mieux que minix, et les gens ont commencé à vraiment à s’y intéresser.

Puis ce fut la 0.95 en mars, des corrections de bogues en avril, et bientôt la 0.96. C’était certainement amusant (et j’espère que ça continuera à l’être) les réactions ont été pour la plupart très positives, et vous apprenez beaucoup en faisant ce genre de chose (d’un autre côté, vos études en souffrent à d’autres égards :)

Linus