Il kernel Linux cambia parti del codice da Assembler a C

linguaggio di programmazione c

Questo è noto a tutti Il linguaggio Assembler è il più veloce per alcuni problemi e per questo motivo è il più utilizzato nel kernel dei diversi sistemi operativi e lo stesso accade per i progetti real-time dove si utilizza elettronica avanzata. Il problema viene dopo, quando quel codice deve essere mantenuto e non lo è, e quindi Nel caso del kernel Linux, gli sviluppatori hanno scelto di tradurre quel codice Assembler in C.

C è il linguaggio di programmazione Linux più rappresentativo (in realtà, tra tutte le piattaforme * nix), è stato sviluppato da Dennis Ritchie e Ken Thompson nel 1972, era realizzato su un sistema Unix PDP-11 e faceva parte di Unix versione 2. Date le sue elevate prestazioni e portabilità, iniziò ad essere sempre più utilizzato nell'implementazione di sistemi operativi e quindi Linus Torvalds Lo ha usato per il suo progetto quando nel 1990 stava cercando un'alternativa libera e aperta a Minix.

Ovviamente, nonostante tanti punti di forza, Assembler ha alcuni vantaggi rispetto al C come abbiamo accennato all'inizio, quindi questa decisione ha sorpreso ma secondo quanto commenta Andy Lutomirsky nelle mailing list del kernel il tuo lavoro è ben avviato e Kernel Linux 4.1 sarà il primo a incorporare questa riscrittura del codice sorgente Assembler in C. Nello specifico, tutto ciò che riguarda le uscite in modalità utente, che attualmente consiste in una miscela di codice proveniente da questi due linguaggi di programmazione ma che, data la sua scarsa manutenzione, risulta sempre più complicata in fase di aggiornamento.

È il file codice in Assembler Non è stato aggiornato da molto tempo e ciò significa che i nuovi sviluppatori non sono completamente chiari sul suo funzionamento e, quel che è peggio, non sarebbe facile aggiornarlo. Quindi, invece di provare qualche modifica parziale hanno scelto di iniziare a cambiare tutte quelle routine Assembler in C, e personalmente penso che sebbene una certa velocità di esecuzione possa essere persa (che potrebbe essere minima se il codice C new è efficiente) un codice nuovo e chiaro è sempre preferibile ad averlo obsoleto e con quasi zero possibilità di aggiornamento perché non è ben compreso come sia stato implementato.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Miguel Mayol Tur suddetto

    In primo luogo è ENSAMBLADOR, in spagnolo.

    In secondo luogo, tutta la lingua deve essere COMPILATA (o interpretata), quindi la bontà del risultato dipende dal COMPILATORE (o dall'interprete)

    Dato che il compilatore C è migliorato molto e l'assembler molto poco (perché era già molto buono), oggigiorno la differenza di un programma compilato scritto in C rispetto a quello scritto in assembler è trascurabile o inesistente (prima non era).
    Anche la differenza tra i programmi compilati (C e altri) e interpretati (Java e altri) è stata notevolmente ridotta al minimo.

    Quindi, essendo molto più facile mantenere C rispetto all'assembler, è una decisione molto valida apportare queste modifiche nel kernel, quando si esegue un'analisi costi-benefici, punti deboli, minacce, punti di forza e opportunità o qualsiasi altra cosa che funzioni.
    per il processo decisionale.

    1.    Chigüire bipolare suddetto

      A Miguel Mayol Tur: Prima di tutto, ogni programmatore che si vanta di essere uno parla ASSEMBLATORE e capisce l'inglese. Gli altri usano Visual Basic e si definiscono programmatori. Che peccato. E in secondo luogo l'Assemblatore NON COMPILA. Quello che fanno i programmi che lo gestiscono è convertire direttamente i mnemonici in byte. La programmazione in Assembler sta parlando alla macchina nella stessa lingua, ma per renderla un po 'più semplice, vengono utilizzati mnemonici invece di scrivere direttamente i byte corrispondenti. Esiste una corrispondenza uno a uno tra un insieme di byte e un'istruzione in Assembler. Ma questo, ovviamente, lo sa solo un vero programmatore, uno di quelli che dice ASSEMBLATORE. Di conseguenza, non ci sono miglioramenti al "convertitore" da assembler a opcode perché il programmatore è incaricato di fare quel miglioramento. I compilatori C (e altri linguaggi) traducono le istruzioni in rappresentazioni macro prestabilite dell'assemblatore (o codice macchina) ei miglioramenti sono dati da come sono queste conversioni.
      Perché usare C? Perché è più facile rivedere e mantenere qualcosa di più leggibile. La maggior parte delle persone non comprende direttamente i codici operativi o gli mnemonici dell'assembler. Semplice come quella.
      Non mi prenderò nemmeno la briga di parlare di Java, che sebbene sia stato imposto come standard molto tempo fa, ora è detestato da coloro che capiscono il codice.
      Ma non credetemi, chiedete a Google se quello che ho detto qui è falso.
      saluti

      1.    eriughc suddetto

        Ciao Chigüire, mi cadono gli occhi dal viso pensando che non sei capace di scrivere in spagnolo senza usare termini di origine anglosassone: si dice «assemblatore».
        Certo, su una cosa sono d'accordo con te, è meglio non parlare di java perché per dire sciocchezze è meglio lasciarlo. Avevo un amico che era come te ma un falegname (non un programmatore esperto) e ha detto che la cosa migliore era la sega a mano e gli altri strumenti, per non parlare, con essa ha anche stretto le viti. Che esempio da seguire!

  2.   Luis Gerardo Marini suddetto

    La lingua inglese è sempre alla radice di tutti i termini computazionali. È così, anche se noi di lingua spagnola non lo vogliamo. Aggiungete a questo che ci sono termini che non possono essere tradotti come "bit", "byte", "unix", "linux", "DOS" e molti altri. E ce ne sono alcune che POTREBBERO essere tradotte ma non esistono cose come "CMOS", "CSS", "RAM" perché ci sono alcune iniziali che non hanno nulla a che fare con la tecnologia e per finire non esistono nemmeno in Google. Non ha senso tradurre quando il messaggio prodotto è illeggibile. Conclusione: è preferibile per questioni tecniche o computazionali utilizzare termini tecnici in inglese. Per lo stesso motivo: preferisco scrivere che uso "windows" per dire che utilizzo il sistema operativo "windows". E preferisco parlare di CSS e che uso type = »text / css piuttosto che provare a dire che uso« fogli di stile con tipo uguale a fogli di stile di testo diagonale ». Salute.

  3.   Roberto Gómez suddetto

    I programmi scritti in un linguaggio assembly vengono sempre compilati, mai interpretati. Tuttavia, non c'è niente di sbagliato nell'usare lo spagnolo al posto dello spanglish. I nomi propri non vengono mai tradotti, ma i termini tecnici lo sono quando non sono acronimi popolari. Ad ogni modo, tutti possono parlare come vogliono mentre noi possiamo ancora capire.