Το wasm3, ένας διερμηνέας WebAssembly κυκλοφορεί την πρώτη του έκδοση

W3

Πρόσφατα, κυκλοφόρησε η πρώτη έκδοση του wasm3, το οποίο είναι διερμηνέας πολύ γρήγορος ενδιάμεσος κωδικός από το WebAss AssemblyΔεδομένου ότι έχει σχεδιαστεί κυρίως για την εκτέλεση εφαρμογών WebAssembly σε μικροελεγκτές και πλατφόρμες για τις οποίες δεν υπάρχει εφαρμογή JIT για WebAssembly, δεν υπάρχει αρκετή μνήμη για να λειτουργεί το JIT ή η δημιουργία εκτελέσιμων σελίδων μνήμης που απαιτούνται για την εφαρμογή JIT.

Για όσους δεν γνωρίζουν το WebAssembly, θα πρέπει να ξέρετε ότι αυτό είναι μια γλώσσα χαμηλού επιπέδου, Αρχικά σχεδιάστηκε ως μορφή στόχου κατά τη σύνταξη από C και C ++, αν και υποστηρίζει επίσης τον πηγαίο κώδικα για άλλες γλώσσες, όπως το Rust και το Go. Αυτή η φορητή μορφή δυαδικού κώδικα χρησιμοποιείται για την πλήρη εκτέλεση σεναρίων από το πρόγραμμα περιήγησης πελάτη.

Σχετικά με το wasm3

Το Wasm3 περνά δοκιμές συμβατότητας με την προδιαγραφή WebAssembly 1.0 και μπορεί να χρησιμοποιηθεί για την εκτέλεση πολλών εφαρμογών WASI, παρέχοντας απόδοση μόνο 4-5 φορές μικρότερη από τις μηχανές JIT και 11.5 φορές μικρότερη από την εκτέλεση εγγενούς κώδικα.

Σε σύγκριση με άλλους ερμηνευτές από το WebAssembly (wac, life, wasm-micro-runtime), Το wasm3 ήταν 15.8 φορές πιο γρήγορο.

Το Wasm3 ξεκίνησε ως ερευνητικό έργο και συνεχίζει να είναι με πολλούς τρόπους. Η αξιολόγηση του κινητήρα σε διαφορετικά περιβάλλοντα είναι μέρος της έρευνας. Δεδομένου ότι οι Lua, JS, Python, Lisp, (…) τρέχουν στο MCU, το WebAssembly είναι πραγματικά μια πολλά υποσχόμενη εναλλακτική λύση. Παρέχει ένα πλήρως απομονωμένο, καλά καθορισμένο και προβλέψιμο περιβάλλον. Μεταξύ των πρακτικών περιπτώσεων χρήσης, μπορούμε να παραθέσουμε υπολογιστές αιχμής, scripting, εκτέλεση κανόνων IoT, συμβόλαια blockchain κ.λπ.

wasm3 απαιτεί 64 Kb μνήμης για τον κωδικό και 10 Kb μνήμης RAM, τι εσύ επιτρέπει τη χρήση του έργου για την εκτέλεση εφαρμογών που έχουν μεταγλωττιστεί στο WebAssembly σε μικροελεγκτές όπως Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210UP (K1UP), και HiFi310 40, καθώς και πίνακες και υπολογιστές που βασίζονται σε αρχιτεκτονικές x86, x64, ARM, MIPS, RISC-V και Xtens.

Η υψηλή απόδοση επιτυγχάνεται με τη χρήση της τεχνικής Massey Meta Machine (M3) στον διερμηνέα, στον οποίο, για να μειώσετε την επιβάρυνση της αποκωδικοποίησης του bytecode, ο κωδικός bytec μεταφράζεται προληπτικά σε πιο αποτελεσματικές λειτουργίες που δημιουργούν ψευδο-μηχανή κώδικα και το μοντέλο εκτέλεσης της στοιβαγμένης εικονικής μηχανής γίνεται μια πιο αποτελεσματική προσέγγιση μητρώου οι λειτουργίες στο M3 είναι συναρτήσεις C, των οποίων τα επιχειρήματα είναι οι καταχωρητές της εικονικής μηχανής, οι οποίες μπορούν να αντικατοπτρίζονται στους καταχωρητές CPU.

Οι συχνές ροές εργασίας για βελτιστοποίηση γίνονται συνοπτικές πράξεις.

Επιπλέον, Τα αποτελέσματα της μελέτης μπορούν να προβληθούν στο WebAssembly στο Web, αφού ανέλυσαν 948 από τους πιο δημοφιλείς ιστότοπους με αξιολόγηση Alexa, οι ερευνητές διαπίστωσαν ότι Το WebAssembly χρησιμοποιείται από 1639 ιστότοπους (0.17%) ή 1 στους 600 ιστότοπους.

Συνολικά, οι ιστότοποι αποκάλυψαν τη μεταφόρτωση 1950 λειτουργικών μονάδων WebAssembly, εκ των οποίων τα 150 είναι μοναδικά.

Κατά την εξέταση του πεδίου εφαρμογής του WebAssembly, συνήχθησαν απογοητευτικά συμπεράσματα: σε πάνω από το 50% των περιπτώσεων, το WebAssembly χρησιμοποιήθηκε για κακόβουλους σκοπούς, για παράδειγμα, για να εξορύξει κρυπτονομίσματα (55,7%) και να κρύψει κώδικα από κακόβουλα σενάρια (0,2 , XNUMX%).

Από τα υποστηριζόμενα λειτουργικά συστήματα για το Wasm3, μπορούμε να βρούμε Linux συμπεριλαμβανομένων των δρομολογητών που βασίζονται στο OpenWRT, Windows, macOS, Android και iOS. Ήταν επίσης δυνατή η μεταγλώττιση του wasm3 σε ενδιάμεσο κώδικα WebAssembly για την εκτέλεση του διερμηνέα σε ένα πρόγραμμα περιήγησης ή για αυτο-φιλοξενία.

Από τις νόμιμες χρήσεις του WebAssembly, παρατηρήθηκε εκτέλεση βιβλιοθήκης (38.8%), δημιουργία παιχνιδιών (3.5%) και εκτέλεση μη εγγενών JavaScript (0.9%). Στο 14,9% των περιπτώσεων, το WebAssembly χρησιμοποιήθηκε για την ανάλυση του περιβάλλοντος για την αναγνώριση του χρήστη (δακτυλικά αποτυπώματα).

Δοκιμάστε το wasm3

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


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

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

*

*

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