GCC

Unix lui-même est une belle histoire à succès en ce qui concerne la portabilité. Le noyau Unix, comme de nombreux noyaux, repose sur l'existence du C pour lui donner la plus grande partie de sa portabilité, à l'instar de Linux. La disponibilité de compilateurs C sur de nombreuses architectures a permis d'y porter Unix.

Unix montre donc bien l'importance des compilateurs. C'est l'une des raisons pour lesquelles j'ai choisi de placer Linux sous GPL (GNU Public License). Elle protège aussi le compilateur GCC. Je pense que tous les autres programmes du projet GNU sont, du point de vue de Linux, insignifiants en comparaison. GCC est le seul dont je me préoccupe vraiment et j'en déteste un certain nombre ; l'éditeur Emacs, par exemple, est horrible. Bien que Linux occupe plus d'espace qu'Emacs, il a au moins dans son cas l'excuse que c'est nécessaire.

Mais les compilateurs sont vraiment un besoin fondamental.

Maintenant que la structure générale du noyau Linux facilite son portage, tout au moins vers des architectures raisonnablement conçues, il devrait être possible de l'adapter à une quelconque plate-forme, pour autant que l'on dispose d'un bon compilateur. Je ne m'inquiète plus d'éventuels problèmes structurels qui pourraient entraver l'adaptation du noyau aux processeurs à venir mais plutôt des compilateurs. Le processeur 64 bits d'Intel appelé Merced en est un exemple frappant, car il est très différent des processeurs actuels du point de vue d'un compilateur.

Ainsi, la portabilité de Linux est très liée au fait que GCC est porté sur les architectures les plus répandues.