Il y a eu de nombreuses discussions à ce sujet. Principalement, la raison est philosophique. C a été inventé comme un langage simple pour le développement de systèmes (pas tellement le développement d'applications). Il existe de nombreux arguments pour utiliser C++, mais il y en a à peu près autant pour ne pas utiliser C++ et s'en tenir à C.
En fin de compte, c'est une question historique. La plupart des éléments d'application sont écrits en C, car la plupart des éléments du noyau sont écrits en C. Et comme à l'époque, la plupart des éléments étaient écrits en C, les gens ont tendance à utiliser les langages d'origine.
À ce stade, quelqu'un pourrait demander "OK, alors pourquoi est-ce que le noyau écrit en C et non porté en C++ ?" . Cela a été discuté sur kerneltrap il y a quelque temps. Une belle explication qui peut être citée à partir de ce fil est une réponse de yoshi314 (citant directement) :
c'est parce que presque toutes les applications c++ ont besoin d'une bibliothèque standard c++ distincte pour fonctionner. ils devraient donc le porter sur le noyau et s'attendre à une surcharge supplémentaire partout.
c++ est un langage plus complexe et cela signifie que le compilateur crée un code plus complexe à partir de celui-ci. à cause de cela, trouver qu'un problème provient d'un bogue du compilateur plutôt que d'une erreur de code est plus facile en c.
De plus, le langage C est plus simple et il est plus facile de suivre sa représentation d'assemblage, qui est souvent facile à prédire.
c++ est plus polyvalent, mais c est plus adapté aux éléments de bas niveau ou intégrés.
D'autre part, "la plupart des programmes Linux" est assez trompeur. Découvrez les applications graphiques. Python gagne de plus en plus de terrain, en particulier dans les environnements GUI sous Linux. À peu près la même chose qui se passe avec Windows et .NET.
Après avoir lu l'e-mail suivant de Linus Torvalds, le créateur de linux. Je ne peux pas m'empêcher de penser que la réponse ci-dessus est incorrecte. Il semble penser que les programmeurs C++ ne sont pas de bons systèmes programmeurs. Et que les fonctionnalités supplémentaires de C++ causent souvent plus de problèmes à long terme par rapport aux avantages qu'elles apportent à court terme. Bien que l'on puisse être en désaccord avec lui, il est difficile d'exagérer l'influence qu'il a eue sur le système d'exploitation Linux.
http://harmful.cat-v.org/software/c++/linus