Ο πυρήνας Linux αλλάζει τμήματα του κώδικα από Assembler σε C

γλώσσα προγραμματισμού γ

Γνωστό σε όλους είναι αυτό Η γλώσσα Assembler είναι η πιο γρήγορη για ορισμένα ζητήματα και για αυτό το λόγο είναι το πιο χρησιμοποιούμενο στον πυρήνα των διαφορετικών λειτουργικών συστημάτων και το ίδιο συμβαίνει για έργα σε πραγματικό χρόνο όπου χρησιμοποιούνται προηγμένα ηλεκτρονικά. Το πρόβλημα εμφανίζεται αργότερα, όταν αυτός ο κώδικας πρέπει να διατηρηθεί και δεν είναι, και επομένως Στην περίπτωση του πυρήνα Linux, οι προγραμματιστές επέλεξαν να μεταφράσουν αυτόν τον κώδικα Assembler σε C.

Η C είναι η πιο αντιπροσωπευτική γλώσσα προγραμματισμού του Linux (στην πραγματικότητα, από όλες τις πλατφόρμες *nix), αναπτύχθηκε από Dennis Ritchie και ο Ken Thompson το 1972, κατασκευάστηκε σε σύστημα Unix PDP-11 και ήταν μέρος της έκδοσης 2 του Unix. Λόγω της υψηλής απόδοσης και φορητότητάς του, άρχισε να χρησιμοποιείται όλο και περισσότερο στην υλοποίηση λειτουργικών συστημάτων και ως εκ τούτου Ο Linus Torvalds το χρησιμοποίησε για το έργο του όταν το 1990 έψαχνε για μια δωρεάν και ανοιχτή εναλλακτική λύση για το Minix.

Φυσικά, παρά τα τόσα δυνατά σημεία, το Assembler έχει κάποια πλεονεκτήματα έναντι του C όπως αναφέραμε στην αρχή, οπότε αυτή η απόφαση εξέπληξε, αλλά σύμφωνα με όσα σχολιάζει ο Andy Lutomirsky στις λίστες αλληλογραφίας του πυρήνα η εργασία σας έχει ήδη ξεκινήσει καλά και Πυρήνας Linux 4.1 θα είναι ο πρώτος που θα ενσωματώσει αυτήν την επανεγγραφή του πηγαίου κώδικα του Assembler στο C. Συγκεκριμένα, όλα όσα σχετίζονται με τις εξόδους στη λειτουργία χρήστη, η οποία αυτή τη στιγμή αποτελείται από ένα μείγμα κώδικα από αυτές τις δύο γλώσσες προγραμματισμού, αλλά λόγω της χαμηλής συντήρησής του γίνεται όλο και πιο περίπλοκο κατά την ενημέρωση.

είναι ότι το κώδικας στο assembler Δεν έχει ενημερωθεί εδώ και πολύ καιρό και αυτό έχει ως αποτέλεσμα οι νέοι προγραμματιστές να μην είναι απολύτως σαφείς σχετικά με τον τρόπο λειτουργίας του και, το ακόμη χειρότερο, δεν θα ήταν εύκολο να ενημερωθεί. Έτσι, αντί να δοκιμάσουν κάποια μερική αλλαγή, επέλεξαν να αρχίσουν να αλλάζουν όλες αυτές τις ρουτίνες Assembler σε C, και προσωπικά πιστεύω ότι αν και κάποια ταχύτητα εκτέλεσης μπορεί να χαθεί (η οποία μπορεί να είναι ελάχιστη εάν ο κωδικός νέος C είναι αποτελεσματικός) Ο νέος και σαφής κώδικας είναι πάντα προτιμότερος από τον ξεπερασμένο και χωρίς σχεδόν καμία δυνατότητα ενημέρωσης γιατί δεν είναι καλά κατανοητό πώς εφαρμόστηκε.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Μιγκέλ Μαγιόλ Τουρ dijo

    Στην πρώτη θέση είναι ASSEMBLER, στα ισπανικά.

    Δεύτερον, κάθε γλώσσα πρέπει να είναι COMPILED (ή να ερμηνεύεται), άρα το καλό του αποτελέσματος εξαρτάται από τον COMPILER (ή τον διερμηνέα).

    Καθώς ο μεταγλωττιστής C έχει βελτιωθεί πολύ και ο assembler πολύ λίγο (γιατί ήταν ήδη πολύ καλός), σήμερα η διαφορά μεταξύ ενός μεταγλωττισμένου προγράμματος γραμμένου σε C και του ίδιου γραμμένου σε assembler είναι αμελητέα ή ανύπαρκτη (πριν ήταν όχι). .
    Ακόμη και η διαφορά μεταξύ μεταγλωττισμένων (C και άλλων) και ερμηνευμένων προγραμμάτων (Java και άλλα) έχει επίσης ελαχιστοποιηθεί πολύ.

    Επομένως, επειδή είναι πολύ πιο εύκολο να διατηρηθεί το C από το assembler, είναι πολύ σωστή απόφαση να κάνετε αυτές τις αλλαγές στον πυρήνα, όταν κάνετε μια ανάλυση κόστους-οφέλους αδυναμιών, δυνατά και ευκαιρίες απειλών ή οποιαδήποτε άλλη εξυπηρετεί.
    για λήψη αποφάσεων.

    1.    Διπολική καπιμπάρα dijo

      Προς Miguel Mayol Tur: Πρώτα από όλα, κάθε προγραμματιστής που ισχυρίζεται ότι είναι τέτοιος λέει ASEMBLER και καταλαβαίνει αγγλικά. Οι άλλοι χρησιμοποιούν τη Visual Basic και αυτοαποκαλούνται προγραμματιστές. Τι κρίμα. Και δεύτερον, το Assembler ΔΕΝ ΜΕΤΑΓΡΑΦΕΙ. Αυτό που κάνουν τα προγράμματα που ασχολούνται με αυτό είναι να μετατρέπουν απευθείας τα μνημονικά σε byte. Ο προγραμματισμός στο Assembler είναι να μιλάς στο μηχάνημα στη δική του γλώσσα, αλλά για να γίνει λίγο πιο εύκολο, χρησιμοποιούνται μνημονικά αντί να γράφονται απευθείας τα αντίστοιχα byte. Υπάρχει μια αντιστοιχία ένα προς ένα μεταξύ ενός πίνακα byte και μιας εντολής στο Assembler. Αλλά αυτό, όπως καταλαβαίνετε, το ξέρει μόνο ένας πραγματικός προγραμματιστής, ένας από αυτούς που λένε ΣΥΝΑΡΜΟΛΟΓΗΣΗ. Συνεπώς, δεν υπάρχουν βελτιώσεις στο assembler για τον "μετατροπέα" κωδικοποιήσεων, επειδή ο προγραμματιστής είναι αυτός που είναι υπεύθυνος για την πραγματοποίηση αυτής της βελτίωσης. Οι μεταγλωττιστές C (και άλλες γλώσσες) μεταφράζουν οδηγίες σε προκαθορισμένες μακροεντολές αναπαραστάσεις του assembler (ή του κώδικα μηχανής) και οι βελτιώσεις προέρχονται από τον τρόπο με τον οποίο γίνονται αυτές οι μετατροπές.
      Γιατί να χρησιμοποιήσετε το C; Επειδή είναι πιο εύκολο να αναθεωρήσετε και να διατηρήσετε κάτι που είναι πιο ευανάγνωστο. Οι περισσότεροι άνθρωποι δεν καταλαβαίνουν άμεσα τα opcodes ή τα μνημονικά assembler. Τόσο απλό.
      Δεν θα μπω καν στον κόπο να μιλήσω για την Java, η οποία αν και καθιερώθηκε ως πρότυπο εδώ και πολύ καιρό, τώρα την απεχθάνονται όσοι καταλαβαίνουν κώδικα.
      Αλλά μην με πιστεύετε, ρωτήστε το Google εάν αυτό που είπα εδώ είναι ψευδές.
      αφορά

      1.    eriugihc dijo

        Γεια σου Chigüire, τα μάτια μου πέφτουν από το πρόσωπό μου νομίζοντας ότι δεν είσαι ικανός να γράψεις στα ισπανικά χωρίς να χρησιμοποιήσεις όρους αγγλοσαξονικής προέλευσης: λέγεται "assembler".
        Ότι ναι, σε ένα πράγμα συμφωνώ μαζί σου, καλύτερα να μην μιλήσω για java γιατί για να πεις βλακείες καλύτερα να το αφήσεις. Είχα έναν φίλο που ήταν σαν εσένα αλλά ξυλουργός (όχι ειδικός προγραμματιστής) και είπε ότι το καλύτερο ήταν το πριόνι και τα άλλα εργαλεία καλύτερα να μην αναφέρω μέχρι να σφίξει τις βίδες με αυτό. Τι παράδειγμα προς μίμηση!

  2.   Λουίς Χεράρντο Μάριν dijo

    Η αγγλική γλώσσα βρίσκεται πάντα στη ρίζα όλων των υπολογιστικών όρων. Έτσι είναι ακόμα κι αν εμείς οι Ισπανόφωνοι δεν το θέλουμε. Προσθέστε σε αυτό ότι υπάρχουν όροι που δεν μπορούν να μεταφραστούν ως "bit", "byte", "unix", "linux", "DOS" και πολλοί άλλοι. Και υπάρχουν μερικά που ΘΑ ΜΠΟΡΟΥΣΑΝ να μεταφραστούν αλλά δεν υπάρχει νόημα όπως "CMOS", "CSS", "RAM" γιατί υπάρχουν μερικά αρχικά που δεν έχουν καμία σχέση με την τεχνολογία και για να το συμπληρώσω δεν υπάρχουν καν στο Google . Δεν έχει νόημα η μετάφραση όταν το μήνυμα που παράγεται δεν είναι αναγνώσιμο. Συμπέρασμα: Είναι προτιμότερο για τεχνικά ή υπολογιστικά ζητήματα να χρησιμοποιούνται τεχνικοί όροι στα αγγλικά. Για τον ίδιο λόγο: προτιμώ να γράφω ότι χρησιμοποιώ "windows" παρά να πω ότι χρησιμοποιώ το λειτουργικό σύστημα "windows". Και προτιμώ να μιλήσω για CSS και ότι χρησιμοποιώ type="text/css" παρά να προσπαθήσω να πω ότι χρησιμοποιώ "φύλλα στυλ φύλλων με τύπο ίσο με διαγώνια φύλλα στυλ κειμένου". Υγεία.

  3.   Ρομπέρτο ​​Γκόμεζ dijo

    Προγράμματα γραμμένα σε κάποια γλώσσα assembly πάντα μεταγλωττίζονται, ποτέ δεν ερμηνεύονται. Ούτως ή άλλως, δεν υπάρχει τίποτα κακό με τη χρήση ισπανικών αντί για Spanglish. Τα σωστά ονόματα δεν μεταφράζονται ποτέ, αλλά οι τεχνικοί όροι είναι όταν δεν είναι δημοφιλή αρκτικόλεξα. Ούτως ή άλλως, ο καθένας μπορεί να μιλήσει όπως θέλει όσο εμείς μπορούμε ακόμα να το καταλάβουμε.