Το Jitter έγινε επίσημα μέρος του έργου GNU

Πριν λίγες μέρες κυκλοφόρησε η είδηση ​​ότι το έργο Το Jitter έγινε επίσημα έργο υπό την πτέρυγα του Έργου GNU και τώρα αναπτύσσεται με το όνομα GNU Jitter χρησιμοποιώντας υποδομή GNU και σύμφωνα με τις απαιτήσεις του έργου.

Για όσους δεν είναι εξοικειωμένοι με το Jitter, θα πρέπει να ξέρετε ότι είναιΤο a είναι μια υλοποίηση που επιτρέπει τη δημιουργία φορητών και πολύ γρήγορων εικονικών μηχανών για αυθαίρετους σχεδιασμούς γλωσσών προγραμματισμού, των οποίων η απόδοση εκτέλεσης κώδικα είναι σημαντικά μεγαλύτερη από τους διερμηνείς και κοντά στον εγγενή μεταγλωττισμένο κώδικα.

Το Jitter είναι εξαιρετικά φορητό και ένα σωστό VM θα επιδεικνύει ακριβώς την ίδια συμπεριφορά σε οποιαδήποτε πλατφόρμα που διαθέτει μόνο μεταγλωττιστή και τυπική βιβλιοθήκη C. Ωστόσο, η απόδοση θα είναι καλύτερη χρησιμοποιώντας μία από τις υποστηριζόμενες αρχιτεκτονικές (επί του παρόντος: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64ο επίπεδο: Aarch390, Alpha, ARM, SXNUMXx) σε συστήματα ELF με GCC. Φυσικά, το Jitter είναι μέρος του έργου GNU και έχει σχεδιαστεί κυρίως για χρήση στο σύστημα GNU.

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

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

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

Η εικονική μηχανή που προκύπτει διαμορφώνεται σε C με μικρό αριθμό ένθετων συμβολομεταφράστης. Παρέχονται διαμορφώσεις που επιτρέπουν διάφορες βελτιστοποιήσεις και επιλεγμένους μηχανισμούς παράδοσης, καθιστώντας εύκολη τη μετεγκατάσταση μιας εικονικής μηχανής σε διαφορετικές πλατφόρμες.

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

Ο παραγόμενος κώδικας περιλαμβάνει ένα απλό C API για δυναμική αντικατάσταση και εκτέλεση κώδικα σε μια εικονική μηχανή, καθώς και ένα πρόγραμμα ελεγκτή για την ξεχωριστή εκτέλεση κώδικα από αρχεία κειμένου σε μια εικονική μηχανή.

Ο παραγόμενος κώδικας C είναι ρυθμισμένος σε μεγάλο βαθμό και μπορεί να ρυθμιστεί ώστε να εκτελείται χρησιμοποιώντας διαφορετικές τεχνικές διανομής ποικίλης πολυπλοκότητας. Οι πιο αποτελεσματικές τεχνικές αποστολής βασίζονται σε κάποια υποστήριξη συναρμολόγησης για συγκεκριμένη αρχιτεκτονική, αλλά όχι ειδική για VM, που παρέχεται από το Jitter. όλα τα μοντέλα αποστολής, αλλά ένα βασίζεται επίσης σε επεκτάσεις GNU C.

Τέλος, για όσους ενδιαφέρονται να μάθουν περισσότερα για αυτό, θα πρέπει να γνωρίζουν ότι ο αρχικός κώδικας Jitter είναι γραμμένος σε C και είναι διαθέσιμος με την άδεια GPLv3. Μπορείτε να μάθετε περισσότερα στο παρακάτω σύνδεσμο.

Πώς να πάθεις Jitter;

Για όσους ενδιαφέρονται να μπορούν να δοκιμάσουν το Jitter, μπορούν να λάβουν τον πηγαίο κώδικα ανοίγοντας ένα τερματικό και πληκτρολογώντας την ακόλουθη εντολή σε αυτό:

git clone http://git.ageinghacker.net/jitter

Μόλις γίνει αυτό, τώρα προχωράμε στην εισαγωγή του φακέλου που έχει τον κώδικα, θα εκτελέσουμε το σενάριο εκκίνησης που χρησιμοποιείται για τη δημιουργία των απαραίτητων αρχείων για τη διαμόρφωση και τη δημιουργία του Jitter, συμπεριλαμβανομένου ενός σεναρίου διαμόρφωσης. Αυτό το κάνουμε με:

cd jitter && ./bootstrap

Αξίζει να αναφέρουμε ότι το Jitter ακολουθεί τις συμβάσεις GNU για τη διαμόρφωση και την κατασκευή και υποστηρίζει την κατασκευή από τον κατάλογο πηγής. Στην πραγματικότητα, υποστηρίζει πολλαπλή μεταγλώττιση και ακόμη και εκτέλεση της δοκιμαστικής σουίτας σε πολλαπλή μεταγλώττιση μέσω ενός εξομοιωτή.

./configure && make

Τέλος, για να το εκτελέσετε, απλώς πληκτρολογήστε:

make check


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

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

*

*

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