Το QEMU 7.1 υλοποιεί βελτιώσεις με τη μεταφορά μνήμης στο Linux
Ανακοινώθηκε η κυκλοφορία της έκδοσης 7.1 του QEMU, η οποία περιλαμβάνει μια σειρά βελτιώσεων για διάφορους εξομοιωτές , με κυριότερες αλλαγές για τα ARM και RISC-V, καθώς και μια βελτίωση στη μεταφορά μνήμης για Linux. Στο πλαίσιο της προετοιμασίας για την έκδοση 7.1, έγιναν πάνω από 2800 αλλαγές από 238 προγραμματιστές.
Για όσους είναι νέοι στο QEMU, θα πρέπει να γνωρίζετε ότι σας επιτρέπει να εκτελέσετε ένα πρόγραμμα που έχει δημιουργηθεί για μια πλατφόρμα υλικού σε ένα σύστημα με εντελώς διαφορετική αρχιτεκτονική, για παράδειγμα εκτέλεση μιας εφαρμογής ARM σε υπολογιστή συμβατό με x86.
Στη λειτουργία εικονικοποίησης στο QEMU, η απόδοση της εκτέλεσης κώδικα σε απομονωμένο περιβάλλον είναι παρόμοια με εκείνη ενός συστήματος υλικού λόγω της άμεσης εκτέλεσης εντολών στη CPU και της χρήσης του Xen hypervisor ή της μονάδας KVM.
Κύριες καινοτομίες του QEMU 7.1
Σε αυτήν τη νέα έκδοση που παρουσιάζεται για Linux, υλοποιείται η επιλογή μηδενικής αποστολής αντιγράφων , η οποία επιτρέπει την οργάνωση μεταφορών σελίδων μνήμης κατά τη διάρκεια της ζωντανής μετεγκατάστασης χωρίς ενδιάμεση αποθήκευση στην προσωρινή μνήμη.
Επιπλέον, το QMP (QEMU Machine Protocol) προσθέτει τη δυνατότητα χρήσης της εντολής `block-export-add` για την εξαγωγή εικόνων NBD με δεδομένα σελίδας σε "μη επεξεργασμένη" κατάσταση. Έχουν επίσης προστεθεί νέες εντολές `query-stats` και `query-stats-schema` για την υποβολή ερωτημάτων σε στατιστικά στοιχεία από διάφορα υποσυστήματα QEMU.
Μια άλλη αξιοσημείωτη αλλαγή σε αυτήν τη νέα έκδοση του QEMU είναι ότι ο guest agent έχει βελτιώσει τη συμβατότητα με την πλατφόρμα Solaris και έχει προσθέσει νέες εντολές, 'guest-get-diskstats' και 'guest-get-cpustats', για την εμφάνιση της κατάστασης του δίσκου και της CPU. Πληροφορίες NVMe SMART έχουν προστεθεί στην εντολή 'guest-get-disks' και πληροφορίες τύπου διαύλου NVMe έχουν προστεθεί στην εντολή 'guest-get-fsinfo'.
Επιπλέον, έχει προστεθεί ένας νέος εξομοιωτής LoongArch για την υποστήριξη της έκδοσης 64-bit της αρχιτεκτονικής συνόλου εντολών LoongArch (LA64). Ο εξομοιωτής υποστηρίζει επεξεργαστές Loongson 3 5000 και northbridges Loongson 7A1000.
Επιπλέον, επισημαίνεται ότι ο εξομοιωτής ARM έχει εφαρμόσει νέους τύπους εξομοιωμένων μηχανημάτων: Aspeed AST1030 SoC, Qualcomm και AST2600/AST1030 (fby35), εκτός από την προσθήκη υποστήριξης για την εξομοίωση των CPU Cortex-A76 και Neoverse-N1, καθώς και επεκτάσεις επεξεργαστή SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) και εντολές για τον αποκλεισμό εσωτερικών διαρροών cache κατά την εκτέλεση κερδοσκοπικών εντολών στην CPU.
Ενώ ο εξομοιωτής αρχιτεκτονικής RISC-V έχει προσθέσει υποστήριξη για τις νέες επεκτάσεις συνόλου εντολών (ISA) που ορίζονται στην προδιαγραφή 1.12.0, καθώς και πρόσθετη υποστήριξη για την επέκταση Sdtrig και βελτιωμένη υποστήριξη για διανυσματικές εντολές.
Άλλες αξιοσημείωτες αλλαγές σε αυτήν τη νέα έκδοση περιλαμβάνουν:
- Βελτιωμένες επιλογές εντοπισμού σφαλμάτων.
- Προστέθηκε υποστήριξη TPM (Trusted Platform Module) στο μηχάνημα εξομοίωσης «virt» και προστέθηκε υποστήριξη Ibex SPI στο μηχάνημα «OpenTitan».
- Ο εξομοιωτής x86 για το KVM έχει προσθέσει υποστήριξη για την εικονικοποίηση του μηχανισμού παρακολούθησης LBR (Last Branch Record).
- Εφαρμοσμένη εξομοίωση χειριστή διακοπής GICv4 για μηχανές 'virt'.
- Ο εξομοιωτής αρχιτεκτονικής HPPA προσφέρει ένα νέο υλικολογισμικό που βασίζεται στο SeaBIOS v6 που υποστηρίζει τη χρήση πληκτρολογίου PS/2 στο μενού εκκίνησης.
- Βελτιωμένη εξομοίωση σειριακής θύρας.
- Προστέθηκαν πρόσθετες γραμματοσειρές κονσόλας STI.
- Ο εξομοιωτής αρχιτεκτονικής MIPS για πλακέτες Nios2 (-μηχάνημα 10m50-ghrd) υλοποιεί εξομοίωση διανυσματικού ελεγκτή διακοπής και σύνολο καταχωρητών σκιών.
- Βελτιωμένος χειρισμός εξαιρέσεων.
- Προστέθηκε η δυνατότητα χρήσης έως και 4 συσκευών UART 16550A στον εξομοιωτή αρχιτεκτονικής OpenRISC για το μηχάνημα 'or1k-sim'.
- Ο εξομοιωτής αρχιτεκτονικής 390x παρέχει υποστήριξη για επεκτάσεις Vector-Enhancements Facility 2 (VEF 2). Το BIOS s390-ccw έχει τη δυνατότητα εκκίνησης από δίσκους με μέγεθος τομέα διαφορετικό από 512 byte.
- Προστέθηκε υποστήριξη για πυρήνες lx106 και κωδικούς αντικειμένων δοκιμής προσωρινής μνήμης στον εξομοιωτή αρχιτεκτονικής Xtensa.
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα για τις αλλαγές και τις νέες δυνατότητες αυτής της νέας έκδοσης του QEMU 7.1, μπορείτε να βρείτε λεπτομέρειες και περισσότερα στον παρακάτω σύνδεσμο.