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

langage de programmation c

Connu de tous, c'est que Le langage assembleur est le plus rapide pour certains problèmes et pour cette raison, il est le plus utilisé dans le noyau des différents systèmes d'exploitation et il en va de même pour les projets en temps réel où des composants électroniques avancés sont utilisés. Le problème survient plus tard, lorsque ce code doit être maintenu et qu'il ne l'est pas, et donc Dans le cas du noyau Linux, les développeurs ont choisi de traduire ce code Assembler en C.

C est le langage de programmation Linux le plus représentatif (en fait, de toutes les plates-formes * nix), il a été développé par Dennis Ritchie et Ken Thompson en 1972, il a été réalisé sur un système Unix PDP-11 et faisait partie de la version Unix 2. Compte tenu de ses hautes performances et de sa portabilité, il a commencé à être de plus en plus utilisé dans l'implémentation de systèmes d'exploitation et donc Linus Torvalds Il l'a utilisé pour son projet quand, en 1990, il cherchait une alternative gratuite et ouverte à Minix.

Bien sûr, malgré tant de points forts, Assembler a quelques avantages par rapport au C comme nous l'avons mentionné au début, donc cette décision a surpris mais selon ce que commente Andy Lutomirsky sur les listes de diffusion du noyau, votre travail est bien avancé et Noyau Linux 4.1 sera le premier à intégrer cette réécriture du code source Assembler en C. Concrètement, tout ce qui concerne les sorties en mode utilisateur, qui consiste actuellement en un mélange de code issu de ces deux langages de programmation mais qui, compte tenu de sa faible maintenance, est de plus en plus compliquée lors de la mise à jour.

Est-ce le code dans l'assembleur Il n'a pas été mis à jour depuis longtemps et cela signifie que les nouveaux développeurs ne sont pas tout à fait clairs sur son fonctionnement, et ce qui est pire, il ne serait pas facile de le mettre à jour. Ainsi, au lieu d'essayer un changement partiel, ils ont choisi de commencer à changer toutes ces routines d'assembleur en C, et personnellement je pense que bien qu'une certaine vitesse d'exécution puisse être perdue (ce qui peut être minime si le code C new est efficace) un code nouveau et clair est toujours préférable à un code obsolète et avec des possibilités de mise à jour presque nulles car on ne comprend pas bien comment il a été mis en œuvre.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Miguel Mayol Tour dit

    En premier lieu, c'est ENSAMBLADOR, en espagnol.

    Deuxièmement, toute langue doit être COMPILÉE (ou interprétée), donc la qualité du résultat dépend du COMPILATEUR (ou de l'interprète)

    Comme le compilateur C s'est beaucoup amélioré et l'assembleur très peu (car c'était déjà très bon), de nos jours la différence d'un programme compilé écrit en C par rapport au même écrit en assembleur est négligeable voire inexistante (avant n'était pas).
    Même la différence entre les programmes compilés (C et autres) et interprétés (Java et autres) a également été considérablement minimisée.

    Donc, étant beaucoup plus facile à maintenir C que l'assembleur, c'est une décision très judicieuse de faire ces changements dans le noyau, lors d'une analyse coûts-avantages, des faiblesses, des menaces, des forces et des opportunités, ou tout autre qui fonctionne.
    pour la prise de décision.

    1.    Chigüire Bipolaire dit

      A Miguel Mayol Tur: Tout d'abord, tout programmeur qui prétend être un parle ASSEMBLER et comprend l'anglais. Les autres utilisent Visual Basic et s'appellent eux-mêmes programmeurs. Quelle honte. Et deuxièmement, l'assembleur NE COMPILE PAS. Ce que font les programmes qui s'en occupent, c'est convertir directement les mnémoniques en octets. La programmation dans Assembler consiste à parler à la machine dans le même langage, mais pour le rendre un peu plus facile, des mnémoniques sont utilisés au lieu d'écrire directement les octets correspondants. Il existe une correspondance biunivoque entre un ensemble d'octets et une instruction dans Assembler. Mais cela, bien sûr, seul un vrai programmeur le sait, un de ceux qui disent ASSEMBLER. Par conséquent, il n'y a aucune amélioration du "convertisseur" de l'assembleur aux opcodes parce que le programmeur est celui en charge de faire cette amélioration. Les compilateurs C (et d'autres langages) traduisent les instructions en macro-représentations préétablies de l'assembleur (ou du code machine) et les améliorations sont apportées par la façon dont ces conversions sont.
      Pourquoi utiliser C? Parce qu'il est plus facile de réviser et de maintenir quelque chose de plus lisible. La plupart des gens ne comprennent pas directement les opcodes ou mnémoniques de l'assembleur. Aussi simple que cela.
      Je ne prendrai même pas la peine de parler de Java, qui, bien qu'il ait été imposé comme standard il y a longtemps, est maintenant détesté par ceux qui comprennent le code.
      Mais ne me croyez pas, demandez à Google si ce que j'ai dit ici est faux.
      salutations

      1.    ériugihc dit

        Bonjour Chigüire, mes yeux tombent de mon visage en pensant que vous n'êtes pas capable d'écrire en espagnol sans utiliser des termes d'origine anglo-saxonne: on dit «assembleur».
        Bien sûr, en une chose, je suis d'accord avec vous, mieux vaut ne pas parler de java car pour dire des bêtises, mieux vaut le laisser. J'avais un ami qui était comme vous mais un menuisier (pas un programmeur expert) et il a dit que la meilleure chose était la scie à main et les autres meilleurs outils sans oublier qu'il avait même serré les vis avec. Quel exemple à suivre!

  2.   Luis Gerardo Marín dit

    La langue anglaise est toujours à la base de tous les termes de calcul. C'est comme ça même si nous, les hispanophones, n'en voulons pas. Ajoutez à cela qu'il existe des termes qui ne peuvent pas être traduits par "bit", "byte", "unix", "linux", "DOS" et bien d'autres. Et il y en a qui POURRAIENT être traduits mais il n'y a pas de "CMOS", "CSS", "RAM" car il y a des initiales qui n'ont rien à voir avec la technologie et pour couronner le tout, elles n'existent même pas dans Google. Il ne sert à rien de traduire lorsque le message produit est illisible. Conclusion: il est préférable pour les problèmes techniques ou informatiques d'utiliser des termes techniques en anglais. Pour la même raison: je préfère écrire que j'utilise "windows" pour dire que j'utilise le système d'exploitation "windows". Et je préfère parler de CSS et que j'utilise type = »text / css que d'essayer de dire que j'utilise« des feuilles de style avec un type égal à des feuilles de style de texte en diagonale ». Santé.

  3.   Roberto Gómez dit

    Les programmes écrits dans un langage d'assemblage sont toujours compilés, jamais interprétés. Cependant, il n'y a rien de mal à utiliser l'espagnol au lieu du spanglish. Les noms propres ne sont jamais traduits, mais les termes techniques le sont lorsqu'ils ne sont pas des acronymes populaires. Quoi qu'il en soit, tout le monde peut parler à sa guise pendant que nous pouvons encore comprendre.