Page:Linux's History.djvu/2

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

J’ai actuellement porté bash(1.08) et gcc(1.40), et les choses semblent fonctionner. Cela implique que je vais obtenir quelque chose de pratique d’ici quelques mois, et J’aimerais savoir quelles fonctionnalités la plupart des gens voudraient avoir. Toute suggestion sont les bienvenues, mais je ne promets pas de les mettre en œuvre :-)


Linus (torvalds@kruuna.helsinki.fi)


PS. Oui - il est libre de tout code minix, et il a un fs multi-thread. Il n’est PAS portable (il utilise la commutation de tâches du 386, etc. ne supportera probablement jamais autre chose que les disques durs AT, puisque c’est tout ce que j’ai :-(.

A en juger par le post, la 0.01 n’est pas encore sortie, mais elle est proche. Je pense que la première version est sortie au milieu du mois de septembre 1991. J’ai eu quelques réponses à cela (la plupart par courrier, que je n’ai pas sauvegardé), et J’ai même reçu quelques mails demandant à être bêta-testeurs pour linux. Après cela juste quelques réponses générales à des questions sur le net :


From : torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups : comp.os.minix
Subject : Re : Qu’est-ce que vous aimeriez voir le plus dans minix ?
Summary : Oui, c’est non portable.
Message-ID :
Date : 26 Aug 91 11:06:02 GMT
Organization : Université d’Helsinki


Dans l’article jkp@cs.HUT.FI (Jyrki Kuoppala) écrit :
>> [re : mon post sur mon nouvel OS]
>
>Dites-nous en plus ! A-t-il besoin d’une MMU ?

Oui, il a besoin d’une MMU (désolé tout le monde), et il a spécifiquement besoin d’une MMU 386/486 (voir plus loin).

>
>>PS. Oui - il est libre de tout code minix, et il a un fs multi-thread.
>>Il n’est PAS protable (utilise la commutation de tâches 386, etc.).
>
>Quelle est la part du code en C ? Quelles seront les difficultés de portage ?
>Personne ne vous croira pour ce qui est de la non-portabilité ;-), et pour ma part,
>J’aimerais le porter sur mon Amiga (Mach a besoin d’une MMU et Minix n’est pas libre).

Simplement, je dirais que le portage est impossible. C’est principalement en C, mais la plupart des gens n’appelleraient pas ce que j’écris C. Il utilise toutes les fonctionnalités imaginables du 386 que j’ai pu trouver, car c’était aussi un projet pour m’apprendre le 386. Comme déjà mentionné, il utilise une MMU, à la fois pour la pagination (pas encore vers le disque) et la segmentation. C’est la segmentation qui le rend VRAIMENT dépendant du 386. (chaque tâche a un segment de 64Mo pour le code et les données - 64 tâches max. dans 4Gb. Si quelqu’un a besoin de plus de 64Mo/tâche, c’est un dur à cuire).

Il utilise également toutes les fonctionnalités de gcc que j’ai pu trouver, en particulier la directive __asm__ de sorte que je n’ai pas besoin de tant d’objets en langage assembleur. Certains de mes fichiers "C" (en particulier mm.c) sont presque autant de l’assembleur que du C. Il serait "intéressant" même de le porter sur un autre compilateur (bien que pourquoi quelqu’un voudrait-il utiliser autre chose que gcc ? c’est un mystère). Note : linux est en fait devenu plus portable avec les nouvelles versions : il y avait beaucoup plus d’assemblage dans les premières versions. Il a en fait été porté sur d’autres architectures maintenant.

Contrairement à minix, il se trouve que j’AIME aussi les interruptions, donc les interruptions sont gérées sans essayer de cacher leur raison sousjacente (j’aime particulièrement mon pilote de disque dur. Quelqu’un d’autre a fait en sorte que les interruptions pilotent une ##???machine en l’état ?). Dans l’ensemble, c’est un cauchemar pour les porteurs.

>En ce qui concerne les fonctionnalités ; eh bien, pseudo ttys, sockets BSD, systèmes de fichiers en mode utilisateur (donc je peux dire cat /dev/tcp/kruuna.helsinki.fi/finger), taille de la fenêtre dans la structure du tty, appels système capables de supporter POSIX.1. Oh, et des noms de fichiers longs à la Bsd.