Le noyau Linux change des parties de votre code d'Assembler en C

langage de programmation c

Il est bien connu que l'assembleur est le langage le plus rapide pour certaines tâches, ce qui explique sa large utilisation dans les noyaux de nombreux systèmes d'exploitation, ainsi que dans les projets temps réel utilisant des composants électroniques avancés. Le problème se pose ensuite, lorsque ce code doit être maintenu mais ne l'est pas. C'est pourquoi, dans le cas du noyau Linux, les développeurs ont choisi de traduire ce code assembleur en C.

Le C est le langage de programmation le plus représentatif de Linux ( et même de toutes les plateformes *nix). Développé par Dennis Ritchie et Ken Thompson en 1972, il a été créé sur un système Unix PDP-11 et faisait partie d'Unix version 2. Grâce à ses performances élevées et à sa portabilité, il a été de plus en plus utilisé dans la conception de systèmes d'exploitation. C'est pourquoi Linus Torvalds l'a choisi pour son projet en 1990, lorsqu'il recherchait une alternative libre et open source à Minix.

Bien sûr, malgré ses nombreux atouts, l'assembleur présente certains avantages par rapport au C, comme nous l'avons mentionné précédemment. Cette décision a donc surpris, mais d'après les commentaires d'Andy Lutomirsky sur les listes de diffusion du noyau, son travail est déjà bien avancé et le noyau Linux 4.1 sera le premier à intégrer cette réécriture du code source assembleur en C. Concrètement, cela concerne tout ce qui est lié aux sorties en mode utilisateur, qui consistent actuellement en un mélange de code issu de ces deux langages de programmation, mais dont la maintenance est négligée, rendant les mises à jour de plus en plus difficiles.

Le problème , c'est que le code assembleur n'a pas été mis à jour depuis longtemps. Les nouveaux développeurs ne comprennent donc pas pleinement son fonctionnement et, pire encore, sa mise à jour serait complexe. Par conséquent, au lieu d'opter pour des modifications partielles, ils ont choisi de convertir toutes ces routines assembleur en C. Personnellement, je pense que même si cela entraîne une légère perte de vitesse d'exécution (qui peut être minime si le nouveau code C est efficace), il est toujours préférable d'avoir un code récent et clair plutôt qu'un code obsolète, quasiment impossible à mettre à jour en raison d'une implémentation obscure.


Ajouter comme source préférée dans Google