L'avenir de Linux

Je suis sûr que nous avons pris la bonne décision avec Linux en lui faisant effectuer le moins d'opérations possibles en espace noyau. La vérité est que je n'envisage pas de changements majeurs dans le noyau. Un projet logiciel réussi doit arriver à maturité à un certain point, et alors le rythme des changements ralentit. Il n'y a plus beaucoup d'innovations majeures en stock pour le noyau. Il s'agit plutôt d'offrir un éventail plus large pour le choix du système matériel : profiter de la portabilité de Linux pour le rendre disponible sur de nouveaux systèmes.

De nouvelles interfaces naîtront, mais je pense qu'elles proviendront en partie du port vers un plus grand nombre de systèmes. Par exemple, quand vous commencez à faire des grappes (clusters), vous voyez apparaître le besoin de coordonner l'ordre d'exécution de certains ensembles de processus, ce qui impose une coopération entre les ordonnanceurs. Mais en même temps, je ne veux pas que tout le monde se focalise sur les grappes et les super-ordinateurs parce que les ordinateurs portables, les cartes que vous branchez où que vous alliez et d'autres développements de ce genre peuvent jouer un grand rôle dans le futur et je voudrais donc que Linux aille aussi dans cette direction.

Les systèmes embarqués, eux, ne proposent pas la moindre interface utilisateur. Vous n'accédez au système que pour changer le noyau, et encore, mais le reste du temps, vous n'y touchez pas. Il s'agit là encore d'une autre direction pour Linux. Je ne pense pas que Java ou Inferno (le système d'exploitation embarqué de Lucent) investiront le secteur des périphériques embarqués. Ils n'ont pas saisi l'importance de la loi de Moore . En premier lieu, concevoir un système optimisé spécifique à un périphérique embarqué particulier peut sembler judicieux, mais dans le même temps, la loi de Moore dit qu'un matériel plus performant sera disponible pour le même prix, détruisant ainsi la plus-value apportée par la conception pour un périphérique particulier. Tout devient si bon marché que vous pourriez aussi bien avoir le même système sur votre ordinateur de bureau que sur votre périphérique embarqué. Cela rendra la vie plus facile à tout le monde.

Les systèmes multi-processeurs symétriques représentent un des domaines qui va être développé. Le noyau Linux 2.2 va gérer très correctement quatre processeurs et nous l'améliorerons jusqu'à pouvoir utiliser huit ou seize processeurs. La gestion de plus de quatre processeurs est déjà présente, mais pas tout-à-fait achevée. Si vous disposez de plus de quatre processeurs maintenant, vous jetez votre argent par la fenêtre. Donc ce sera certainement amélioré.

Mais si les gens veulent soixante-quatre processeurs ils devront utiliser une version spécifique du noyau, parce que les gérer dans le noyau normal causerait une perte de performances pour l'utilisateur ordinaire.

Certains domaines d'application particuliers continueront à être le fer de lance du développement du noyau. Les serveurs web ont toujours été un problème intéressant, car c'est la seule application réelle qui demande beaucoup au noyau. D'un certain côté, les serveurs web ont représenté un certain danger de mon point de vue car je reçois tant de commentaires de la part de la communauté utilisant Linux comme plate-forme de serveur web que j'aurais facilement pu finir par optimiser uniquement pour ce type d'applications. Je dois garder à l'esprit le fait que les serveurs web ne sont pas la seule application intéressante.

Bien entendu, Linux n'est pas utilisé à son plein potentiel, même par les serveurs web d'aujourd'hui. Apache lui-même ne procède pas Comme Il Faut en ce qui concerne les threads, par exemple. Ce type d'optimisation a été ralenti par les limites des réseaux. En ce moment, vous pouvez saturer les réseaux à dix mégabits par seconde si facilement qu'il n'y a aucune raison d'optimiser davantage. La seule manière de ne pas saturer les réseaux à dix mégabits par seconde est d'avoir des tas de scripts CGI fort consommateurs de ressources. Mais ce n'est pas quelque chose que le noyau peut éviter. Ce que le noyau pourrait éventuellement faire, c'est de répondre directement aux requêtes concernant les pages statiques et transmettre les requêtes plus compliquées à Apache. Une fois que les réseaux plus rapides seront devenus plus répandus, ce sera plus intéressant. Mais nous n'avons pour le moment pas suffisamment de matériel pour le tester et le développer.

La leçon que donnent toutes ces futures directions possibles est que je veux que Linux soit à la pointe du progrès, et même un peu au-delà, parce que ce qui est à la pointe aujourd'hui est ce qui sera dans nos ordinateurs personnels demain.

Mais les développements les plus attrayants pour Linux auront lieu dans l'espace utilisateur, et non pas dans l'espace noyau. Les changements du noyau sembleront insignifiants par rapport à ce qui arrivera en dehors du système. De ce point de vue, savoir ce que le noyau Linux sera n'est pas aussi intéressant que de savoir quelles seront les fonctionnalités de la Red Hat 17.5 ou quelle sera la situation de Wine (l'émulateur MS-Windows) dans quelques années.

Je m'attends à ce que, dans une quinzaine d'années, une autre personne débarque et dise : « je peux faire tout ce que Linux fait, tout en étant plus concis, parce que mon système ne sera pas alourdi par vingt ans d'héritages ». Ils diront que Linux était conçu pour le 386 et que les nouveaux processeurs effectuent les opérations vraiment intéressantes d'une manière différente. Laissons tomber ce vieux Linux. J'ai procédé ainsi lorsque j'ai commencé à développer Linux. À l'avenir, ils pourront regarder notre code, utiliser nos interfaces, fournir une compatibilité binaire. Et si tout cela se produit, je serai heureux.