Παρουσιάστηκε η κυκλοφορία του έργου QEMU 6.2. Ως εξομοιωτής, το QEMU σάς επιτρέπει να εκτελέσετε ένα πρόγραμμα μεταγλωττισμένο για μια πλατφόρμα υλικού σε ένα σύστημα με εντελώς διαφορετική αρχιτεκτονική, για παράδειγμα, να εκτελέσετε μια εφαρμογή ARM σε υπολογιστή συμβατό με x86. Στη λειτουργία εικονικοποίησης στο QEMU, η απόδοση της εκτέλεσης κώδικα σε ένα απομονωμένο περιβάλλον είναι κοντά σε αυτήν ενός συστήματος υλικού λόγω της άμεσης εκτέλεσης εντολών στην CPU και της χρήσης του Xen hypervisor ή της μονάδας KVM.
Το έργο δημιουργήθηκε αρχικά από τον Fabrice Bellard για να παρέχει τη δυνατότητα εκτέλεσης εκτελέσιμων αρχείων που έχουν μεταγλωττιστεί για την πλατφόρμα x86. Linux σε αρχιτεκτονικές εκτός της x86. Με τα χρόνια ανάπτυξης, προστέθηκε υποστήριξη για πλήρη εξομοίωση για 14 αρχιτεκτονικές υλικού και ο αριθμός των εξομοιωμένων συσκευών υλικού ξεπέρασε τις 400. Κατά την προετοιμασία της έκδοσης 6.2, έγιναν περισσότερες από 2300 αλλαγές από 189 προγραμματιστές.
Βασικές βελτιώσεις που προστέθηκαν στο QEMU 6.2:
- Ο μηχανισμός virtio-mem επιτρέπει την άμεση σύνδεση και αποσύνδεση της μνήμης. εικονικές μηχανές, πρόσθεσε πλήρη υποστήριξη για dumps μνήμης συστήματος επισκεπτών, λειτουργίες αντιγραφής πριν από την αντιγραφή/μετά την αντιγραφή και δημιουργία στιγμιότυπων οθόνης συστήματος επισκεπτών στο παρασκήνιο.
- Το QMP (QEMU Machine Protocol) υλοποιεί τον χειρισμό σφαλμάτων DEVICE_UNPLUG_GUEST_ERROR που εμφανίζονται στην πλευρά του φιλοξενούμενου συστήματος σε περίπτωση βλαβών κατά τη διάρκεια λειτουργιών άμεσης σύνδεσης.
- Η σύνταξη των ορισμάτων εκκίνησης που επεξεργάζονται τα πρόσθετα για την κλασική γεννήτρια κώδικα TCG (Tiny Code Generator) έχει επεκταθεί. Έχει προστεθεί υποστήριξη πολλαπλών πυρήνων στο πρόσθετο cache.
- Ο εξομοιωτής αρχιτεκτονικής x86 υποστηρίζει πλέον το μοντέλο CPU Intel Snowridge-v4. Προστέθηκε υποστήριξη για την πρόσβαση σε θύλακες Intel SGX (Software Guard eXtensions) από επισκέπτες χρησιμοποιώντας τη συσκευή /dev/sgx_vepc στην πλευρά του κεντρικού υπολογιστή και το backend "memory-backend-epc" στο QEMU. Για επισκέπτες που προστατεύονται από την τεχνολογία AMD SEV (Secure Encrypted Virtualization), προστέθηκε η δυνατότητα επαληθεύσιμης άμεσης εκκίνησης του πυρήνα (χωρίς τη χρήση bootloader) (ενεργοποιήθηκε ορίζοντας την παράμετρο 'kernel-hashes=on' στο 'sev-guest').
- Ο εξομοιωτής ARM σε συστήματα κεντρικού υπολογιστή Apple Silicon υποστηρίζει πλέον τον μηχανισμό επιτάχυνσης υλικού "hvf" κατά την εκτέλεση συστημάτων guest που βασίζονται σε AArch64. Έχει προστεθεί υποστήριξη για εξομοίωση μοντέλου επεξεργαστή Fujitsu A64FX. Έχει υλοποιηθεί ένας νέος τύπος εξομοιωμένων μηχανημάτων, το "kudo-mbc". Για μηχανήματα 'virt', έχει προστεθεί υποστήριξη για εξομοίωση ITS (Interrupt Translation Service), καθώς και η δυνατότητα χρήσης περισσότερων από 123 CPU σε λειτουργία εξομοίωσης. Έχει προστεθεί υποστήριξη για συσκευές BBRAM και eFUSE για τα εξομοιωμένα μηχανήματα "xlnx-zcu102" και "xlnx-versal-virt". Παρέχεται υποστήριξη για το Mobile Profile of Processor Extensions (MVE) για συστήματα που βασίζονται στο τσιπ Cortex-M55.
- Η αρχική υποστήριξη για το μοντέλο CPU POWER10 DD2.0 έχει προστεθεί στον εξομοιωτή αρχιτεκτονικής PowerPC. Η υποστήριξη για την αρχιτεκτονική POWER10 έχει βελτιωθεί για εξομοιωμένα μηχανήματα 'powernv' και έχουν προστεθεί περιγραφές FORM2 PAPR NUMA για μηχανήματα 'pseries'.
- Ο εξομοιωτής αρχιτεκτονικής RISC-V υποστηρίζει πλέον τις επεκτάσεις του συνόλου εντολών Zb[abcs]. Οι επιλογές "host-user" και "numa mem" είναι πλέον ενεργοποιημένες για όλα τα εξομοιωμένα μηχανήματα. Προστέθηκε υποστήριξη SiFive PWM (Pulse-width modulator).
- Ο εξομοιωτής 68k έχει βελτιώσει την υποστήριξη για το NuBus της Apple, συμπεριλαμβανομένης της δυνατότητας φόρτωσης εικόνων ROM και υποστήριξης για υποδοχές διακοπής.
- Η συσκευή μπλοκ qemu-nbd χρησιμοποιεί πλέον την προσωρινή αποθήκευση με επαναγραφή αντί για την προσωρινή αποθήκευση μέσω εγγραφής από προεπιλογή, για να ταιριάζει με τη συμπεριφορά του qemu-img. Προστέθηκε η επιλογή --selinux-label για τον ορισμό ετικετών SE.Linux Υποδοχές Unix.
Πηγή: opennet.ru
