El nucli de Linux canvia parts del seu codi de Assembler a C

llenguatge de programació c

Sabut per tots és que el llenguatge Assembler és el més ràpid per a algunes qüestions i per això és el més utilitzat en el nucli dels diferents sistemes operatius i el mateix passa per a projectes de temps real en on s'utilitza electrònica avançada. El problema arriba després, quan aquest codi necessita ser mantingut i no ho és, i per això en el cas de el nucli de Linux els desenvolupadors han optat per traduir aquest codi Assembler a C.

C és el llenguatge de programació més representatiu de Linux (en realitat, de totes les plataformes * nix), va ser desenvolupat per Dennis Ritchie i Ken Thompson el 1972, va ser realitzat en un sistema Unix PDP-11 i va formar part d'Unix versió 2. Donades les seves altes prestacions i portabilitat va ser començant a ser utilitzat cada vegada més en la implementació de sistemes operatius i per això Linus Torvalds el va utilitzar per al seu projecte quan allà per 1990 buscava una alternativa lliure i oberta a Minix.

És clar que tot i tantes fortaleses, Assembler té alguns avantatges respecte de C com esmentem a l'començament, per això aquesta decisió ha sorprès però d'acord al que comenta Andy Lutomirsky en les llistes de correu de l'nucli seva feina ja està ben encaminat i el nucli de Linux 4.1 serà el primer en incorporar aquesta reescriptura de codi font de Assembler a C. En concret, tot el referit a les sortides cap manera d'usuari, que en l'actualitat està compost d'una barreja de codi d'aquests dos llenguatges de programació però que donat el seu escàs manteniment es veu cada vegada més complicat a l'hora d'actualitzar.

És que el codi en Assembler porta molt temps sense ser actualitzat i això redunda en que els nous desenvolupadors no tinguin de el tot clar el seu funcionament, i el que és pitjor encara, no resultaria fàcil actualitzar-lo. Així les coses, en lloc d'intentar algun canvi parcial han optat per començar a canviar totes aquestes rutines de Assembler a C, i en el personal penso que encara que es pugui arribar a perdre una mica de velocitat d'execució (que pot ser mínima si el codi C nou és eficient) sempre és preferible codi nou i clar a tenir-lo desactualitzat i amb possibilitats gairebé nul·les d'actualització a causa que no s'entén bé com va ser implementat.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Miguel Mayol Tur va dir

    En primer lloc és ASSEMBLADOR, en castellà.

    En segon lloc tot llenguatge ha de compilar (o interpretar), així la bondat de l'resultat depèn de l'compilador (o l'intèrpret)

    Com el compilador de C ha millorat molt i el de assemblador molt poc (perquè ja era molt bo), avui dia la diferència d'un programa compilat escrit en C respecte de el mateix escrit en assemblador és nímia o inexistent (abans no ho era) .
    Fins i tot la diferència entre programes compilats (C i altres) i interpretats (Java i altres) també s'ha minimitzat molt.

    Així que sent molt dt.ś senzill mantenir C que assemblador, és una decisió molt com cal el fer aquests canvis en el nucli, a l'fer una anàlisi cost benefici debilitats amenaces fortaleses i oportunitats o qualsevol altre que serveixi
    per a la presa de decisions.

    1.    Llebres Bipolar va dir

      A Miguel Mayol Tur: En primer lloc, tot programador que es preï de ser-ho diu Assembler i entén anglès. Els altres fan servir Visual Basic i es fan dir programadors. Quina vergonya. I en segon lloc el Assembler NO ES compila. El que fan els programes que el tracten és convertir els mnemònics a bytes directament. Programar en Assembler és parlar-li a la màquina en el seu mateix idioma, però per facilitar-ho una mica s'usen mnemònics en lloc d'escriure directament els bytes corresponents. Hi ha una correspondència biunívoca entre un conjunt de bytes i una instrucció en Assembler. Però això, com és d'entendre, només ho sap un programador de veritat, d'aquells que diuen Assembler. En conseqüència, no hi ha millores a l' «convertidor» de assembler a opcodes perquè el programador és qui s'encarrega de fer aquesta millora. Els compiladors de C (i d'altres llenguatges) tradueixen instruccions en representacions macro ja pre-establertes d'assembler (o códgo màquina) i les millores vénen donades per com siguin aquestes conversions.
      Per què utilitzar C? Perquè és més fàcil revisar i mantenir una cosa que és més llegible. La majoria de la gent no entén directament els opcodes ni els mnemònics de l'assembler. Així de simple.
      Ni siqiuera em molestaré a parlar de Java, que si bé es va imposar com standard fa temps ara és detestat pels que sí que entenen de codi.
      Però no em creen a mi, preguntin-li a Google si el que vaig dir aquí és fals.
      Salutacions

      1.    eriugihc va dir

        Hola Llebres, em cauen els ulls de la cara pensant que no ets capaç d'escriure en castellà sense usar termes d'origen anglosaxó: es diu «assemblador».
        Això sí, en una cosa coincideixo amb tu, millor no parlis de Java perquè per dir tonteries millor deixar-ho. Tenia un amic que era com tu però fuster (no un expert programador) i deia que el millor era el xerrac i de les altres eines millor ni parlar fins i tot estrenyia els cargols amb ell. Quin exemple a seguir!

  2.   Luis Gerardo Marin va dir

    L'idioma anglès sempre està en l'arrel de tots els termes computacionals. Així és encara que no ho vulguem els castellanoparlants. Sumar a això que existeixen termes que no es poden traduir com «bit», «byte», «unix», «linux», «DOS» i molts altres mes. I hi ha alguns que es PODRIEN traduir però ni cas té com a «CMOS», «CSS», «RAM» perquè queden unes inicials que res tenen a veure amb la tecnologia i per rematar ni existeixen a Google. No té cas traduir quan el missatge produït és il·legible. Conclusió: És preferible per qüestions tècniques o computacionals usar termes tècnics en anglès. Pel mateix: Prefereixo escriure que ús «windows» a dir que ús el sistema operatiu «finestres». I prefereixo parlar de CSS i que ús type = »text / css que intentarem dir que ús« fulles de fulles d'estils amb el tipus igual a text diagonal fulls d'estils ». Salut.

  3.   Roberto Gómez va dir

    Els programes escrits algun llenguatge assemblador sempre es compilen, mai s'interpreten. Com sigui, no té res de dolent fer servir espanyol en comptes de spanglish. Els noms propis mai es tradueixen, però els termes tècnics sí quan no són acrònims populars. Com sigui, cada qui pot parlar com li plagui mentre encara puguem entendre-ho.