Youssef ELMIZEB · fondateur de tekfold.com · mis à jour le 26 octobre 2026
« Linux est rapide parce qu’il est écrit en C. » C’est la thèse défendue par Linus Torvalds, et elle mérite d’être prise au sérieux : elle vient de la personne qui a écrit le noyau et qui le revue encore aujourd’hui. Mais la réponse complète est plus intéressante que la formule, parce qu’elle explique pourquoi un système d’exploitation de 1991 continue de battre des solutions bien plus récentes sur des machines à milliers de processeurs.
Pourquoi le C a été le bon choix, et le reste
Le langage C a été conçu dans les années 1970, à une époque où les compilateurs étaient simples et où l’on voulait un langage proche de la sortie de la machine. Cette caractéristique, loin d’être une limite, en a fait l’outil idéal pour écrire un système d’exploitation :
- Proximité avec le matériel. Le C permet de manipuler directement les adresses mémoire, les registres et les périphériques — indispensable quand on écrit des pilotes et des gestionnaires de mémoire.
- Prévisibilité du code généré. Lorsqu’il faut raisonner en cycles et en cache, savoir exactement ce que le compilateur produit est un atout décisif.
- Aucune couche cachée. Pas de ramasse-miettes, pas de virtual machine, pas de boîte noire entre l’intention du programmeur et l’exécution.
- Portabilité pragmatique. Le C compile partout, du microcontrôleur au supercalculateur, avec le même jeu d’instructions logiques.
Torvalds raque d’ailleurs que son intérêt pour les systèmes d’exploitation vient de son goût pour le matériel lui-même : le C est le langage qui laisse la main sur ce qui se passe réellement dans la machine.
L’optimisation là où ça compte : la mémoire cache
Un système d’exploitation rapide ne l’est pas parce qu’il exécute plus d’instructions par seconde, mais parce qu’il en exécute moins — et surtout parce qu’il évite d’attendre. Le goulot d’étranglement dominant de l’informatique moderne n’est plus le processeur, c’est la latence mémoire. Une requête servie depuis le cache L1 est répondue en quelques cycles ; la même requête servie depuis la RAM principale peut en demander des dizaines, et un accès disque en demande des millions.
Torvalds décrit ainsi son propre travail récent : non pas écrire de nouvelles fonctionnalités, mais remanier la disposition des données pour réduire les fautes de cache lors de la résolution de chemins de fichiers. Concrètement, il s’agit de faire en sorte que les structures de données consultées successivement se trouvent aux adresses voisines, afin que le processeur trouve dans son cache ce qu’il va demander juste après.
C’est ce type d’optimisation qui permet à Linux de résoudre des noms de fichiers plus rapidement que les systèmes concurrents, et de tenir la charge sur des machines équipées de 1 000 processeurs et plus.
Ce que cela change concrètement
| Domaine | Effet d’une résolution de chemins rapide et d’un bon usage du cache |
|---|---|
| Serveurs web | Plus de requêtes servies par seconde à charge égale, latence réduite sous charge élevée |
| Conteneurs et microservices | Démarrage plus rapide, milliers de conteneurs gérés sur le même hôte |
| Systèmes de fichiers | Recherche dans des arborescences profondes sans dégradation brutale |
| Embarqué et IoT | Faible empreinte mémoire, comportement prévisible sur du matériel modeste |
| Calcul haute performance | Équilibrage efficace sur des centaines à des milliers de cœurs |
Linux partout, sans qu’on le voie
La portée de ce travail dépasse largement le serveur. Linux équipe :
- Les serveurs du monde entier — une très grande majorité des services web et des infrastructures cloud tournent dessus.
- Android — le noyau Linux se trouve au cœur de la quasi-totalité des smartphones vendus.
- Les équipements réseau — routeurs, bornes, baies de commutation.
- L’embarqué — télévisions connectées, box opérateur, systèmes industriels, appareils médicaux.
- Les supercalculateurs — la totalité du classement TOP500 depuis plus d’une décennie.
Autrement dit, les optimisations décrites par Torvalds ne se limitent pas à un niche de serveurs : elles se retrouvent dans le téléphone que vous avez en main.
Leçons applicables à votre propre code
- Mesurez avant d’optimiser. Une intuition de lenteur ne dit rien sur la cause réelle ; un profileur, lui, parle.
- Travaillez la disposition des données autant que l’algorithme : des structures contiguës et alignées réduisent les fautes de cache.
- Réduisez les allocations dans les chemins critiques — réutilisez des tampons, évitez les allers-retours mémoire inutiles.
- Pensez au pire cas, pas au cas moyen : c’est le pic qui dégrade perçue.
- Gardez le code lisible. Torvalds le dit lui-même : il passe plus de temps sur la mise en page et la relecture que sur l’écriture elle-même. Un code clair est plus facile à optimiser correctement.
Questions fréquentes
Le C est-il toujours nécessaire pour aller vite ?
Non. Rust, C++ et Zig atteignent des performances comparables, et Rust apporte en plus des garanties de sécurité mémoire. Dans un noyau d’exploitation existant, migrer reviendrait à réécrire des décennies de code — d’où les initiatives d’introduction progressive de Rust dans le noyau Linux.
La rapidité de Linux vient-elle seulement du langage ?
Non. Elle vient du langage combiné à une discipline d’optimisation quotidienne : relecture attentive, profils de cache, choix algorithmiques, et un nombre de contributeurs exceptionnellement élevé.
Pourquoi les machines à 1 000 processeurs posent-elles problème ?
Parce que la coordination coûte cher : plus il y a de cœurs, plus les synchronisations, les verrous et les passages en cache coûtent cher. Un système mal optimisé plafonne très vite, alors qu’un système qui minimise les partages de mémoire continue de scaler.
Cela a-t-il un impact sur un simple site web ?
Oui, indirectement : un serveur web plus réactif sous charge signifie des pages plus rapides pour vos visiteurs, ce qui compte pour l’expérience utilisateur comme pour le référencement.
La réponse de Torvalds tient donc moins dans un choix de langage que dans une attitude : regarder ce que la machine fait réellement, mesurer, puis enlever tout ce qui ralentit inutilement. C’est une méthode, pas une recette — et elle s’applique à un noyau comme à une simple application.

