Έκδοση του εξομοιωτή QEMU 4.0

Σχηματίστηκε έκδοση έργου QEMU 4.0. Ως εξομοιωτής, το QEMU σάς επιτρέπει να εκτελέσετε ένα πρόγραμμα μεταγλωττισμένο για μια πλατφόρμα υλικού σε ένα σύστημα με εντελώς διαφορετική αρχιτεκτονική, για παράδειγμα, να εκτελέσετε μια εφαρμογή ARM σε υπολογιστή συμβατό με x86. Στη λειτουργία εικονικοποίησης στο QEMU, η απόδοση της εκτέλεσης κώδικα σε ένα απομονωμένο περιβάλλον είναι κοντά στο εγγενές σύστημα λόγω της άμεσης εκτέλεσης εντολών στη CPU και της χρήσης του Xen hypervisor ή της μονάδας KVM.

Το έργο δημιουργήθηκε αρχικά από τον Fabrice Bellard για να παρέχει τη δυνατότητα εκτέλεσης εκτελέσιμων αρχείων Linux που έχουν μεταγλωττιστεί για την πλατφόρμα x86 σε αρχιτεκτονικές που δεν είναι x86. Με τα χρόνια της ανάπτυξης, προστέθηκε υποστήριξη για πλήρη εξομοίωση για 14 αρχιτεκτονικές υλικού, ο αριθμός των εξομοιούμενων συσκευών υλικού ξεπέρασε τις 400. Κατά την προετοιμασία της έκδοσης 4.0, έγιναν περισσότερες από 3100 αλλαγές από 220 προγραμματιστές.

Κλειδί βελτιώσειςπροστέθηκε στο QEMU 4.0:

  • Η υποστήριξη για επεκτάσεις εντολών ARMv8+ έχει προστεθεί στον εξομοιωτή αρχιτεκτονικής ARM: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT και BTI. Προστέθηκε υποστήριξη για εξομοίωση πλακών Musca και MPS2. Βελτιωμένη εξομοίωση ARM PMU (Power Management Unit). Στην πλατφόρμα αρετή πρόσθεσε τη δυνατότητα χρήσης περισσότερων από 255 GB μνήμης RAM και υποστήριξη για εικόνες u-boot με τύπο "noload".

  • Στον εξομοιωτή αρχιτεκτονικής x86 στη μηχανή επιτάχυνσης εικονικοποίησης ΧΑΞ Το (Intel Hardware Accelerated Execution) πρόσθεσε υποστήριξη για κεντρικούς υπολογιστές συμβατούς με POSIX, όπως το Linux και το NetBSD (προηγουμένως υποστηριζόταν μόνο η πλατφόρμα Darwin). Στον εξομοιωτή chipset Q35 (ICH9) για τις κύριες θύρες PCIe, η μέγιστη ταχύτητα (16GT/s) και ο αριθμός των γραμμών σύνδεσης (x32) που ορίζονται στην προδιαγραφή PCIe 4.0 μπορούν πλέον να δηλωθούν προαιρετικά (για να διασφαλιστεί η συμβατότητα, το 2.5GT είναι εγκατεστημένο από προεπιλογή για παλαιότερους τύπους μηχανών QEMU /s και x1). Είναι δυνατή η φόρτωση εικόνων Xen PVH με την επιλογή "-kernel".
  • Ο εξομοιωτής αρχιτεκτονικής MIPS έχει προσθέσει υποστήριξη για εξομοίωση πολλαπλών νημάτων χρησιμοποιώντας την κλασική γεννήτρια κώδικα TCG (Tiny Code Generator). Προστέθηκε επίσης υποστήριξη για εξομοίωση CPU I7200 (nanoMIPS32 ISA) και I6500 (MIPS64R6 ISA), η δυνατότητα επεξεργασίας αιτημάτων τύπου CPU χρησιμοποιώντας το QMP (QEMU Management Protocol), προστέθηκε υποστήριξη για καταχωρητές διαμόρφωσης SAARI και SAAR. Βελτιωμένη απόδοση εικονικών μηχανών με τον τύπο Fulong 2E. Ενημερωμένη υλοποίηση της Μονάδας Επικοινωνίας Interthread.
  • Στον εξομοιωτή αρχιτεκτονικής PowerPC, προστέθηκε υποστήριξη για την εξομοίωση του ελεγκτή διακοπής XIVE, επεκτάθηκε η υποστήριξη για το POWER9 και για τη σειρά P, προστέθηκε η δυνατότητα ζεστής σύνδεσης γεφυρών κεντρικού υπολογιστή PCI (PHB, PCI host bridge). Η προστασία από επιθέσεις Spectre και Meltdown είναι ενεργοποιημένη από προεπιλογή.
  • Η υποστήριξη για εξομοίωση PCI και USB έχει προστεθεί στον εξομοιωτή αρχιτεκτονικής RISC-V. Ο ενσωματωμένος διακομιστής εντοπισμού σφαλμάτων (gdbserver) υποστηρίζει πλέον τον καθορισμό λιστών καταχωρήσεων σε αρχεία XML. Προστέθηκε υποστήριξη για τα πεδία mstatus TSR, TW και TVM.
  • Ο εξομοιωτής αρχιτεκτονικής s390 έχει προσθέσει υποστήριξη για το μοντέλο CPU z14 GA 2, καθώς και υποστήριξη για εξομοίωση επεκτάσεων εντολών για λειτουργίες κινητής υποδιαστολής και διανύσματος. Η δυνατότητα hot-plug συσκευών έχει προστεθεί στο vfio-ap.
  • Ο εξομοιωτής επεξεργαστών της οικογένειας Tensilica Xtensa έχει βελτιωμένη υποστήριξη SMP για Linux και πρόσθεσε υποστήριξη για το FLIX (Επέκταση οδηγιών ευέλικτου μήκους).
  • Η επιλογή «-display spice-app» έχει προστεθεί στη γραφική διεπαφή για τη διαμόρφωση και την εκκίνηση μιας έκδοσης του προγράμματος-πελάτη απομακρυσμένης πρόσβασης Spice με σχεδιασμό παρόμοιο με τη διεπαφή QEMU GTK.
  • Προστέθηκε υποστήριξη για έλεγχο πρόσβασης χρησιμοποιώντας τις επιλογές tls-authz/sasl-authz στην υλοποίηση διακομιστή VNC.
  • Το QMP (QEMU Management Protocol) πρόσθεσε υποστήριξη για κεντρική/εξωτερική (Out-of-band) εκτέλεση εντολών και εφάρμοσε πρόσθετες εντολές για εργασία με μπλοκ συσκευές.
  • Μια υλοποίηση της διεπαφής EDID έχει προστεθεί στο VFIO για υποστηριζόμενα mdevs (Intel vGPU), επιτρέποντάς σας να αλλάξετε την ανάλυση οθόνης χρησιμοποιώντας τις επιλογές xres και yres.
  • Μια νέα συσκευή 'xen-disk' προστέθηκε για το Xen, η οποία μπορεί ανεξάρτητα να δημιουργήσει ένα backend δίσκου για Xen PV (χωρίς πρόσβαση στο xenstore). Η απόδοση του υποστηρικτικού δίσκου Xen PV έχει αυξηθεί και έχει προστεθεί η δυνατότητα αλλαγής του μεγέθους του δίσκου.
  • Οι δυνατότητες διάγνωσης και ανίχνευσης έχουν επεκταθεί σε συσκευές μπλοκ δικτύου και η συμβατότητα πελάτη με προβληματικές υλοποιήσεις διακομιστή NBD έχει βελτιωθεί. Προστέθηκαν οι επιλογές "--bitmap", "--list" και "--tls-authz" στο qemu-nbd.
  • Προστέθηκε υποστήριξη για λειτουργία PCI IDE στη συσκευή εξομοίωσης IDE/μέσω.
  • Προστέθηκε υποστήριξη για τη χρήση του αλγόριθμου lzfse για τη συμπίεση εικόνων dmg. Για τη μορφή qcow2, έχει προστεθεί υποστήριξη για σύνδεση εξωτερικών αρχείων δεδομένων. Οι λειτουργίες αποσυσκευασίας qcow2 μετακινούνται σε ξεχωριστό νήμα. Προστέθηκε υποστήριξη για τη λειτουργία "blockdev-create" σε εικόνες vmdk.
  • Η συσκευή μπλοκ virtio-blk έχει προσθέσει υποστήριξη για λειτουργίες DISCARD (πληροφόρηση σχετικά με την απελευθέρωση μπλοκ) και WRITE_ZEROES (μηδενισμός εύρους λογικών μπλοκ).
  • Η συσκευή pvrdma υποστηρίζει υπηρεσίες RDMA Management Datagram (MAD).
  • Υποβλήθηκε αλλαγές, παραβίαση της συμβατότητας προς τα πίσω. Για παράδειγμα, αντί για την επιλογή "handle" στα "-fsdev" και "-virtfs", θα πρέπει να χρησιμοποιήσετε τις επιλογές "local" ή "proxy". Οι επιλογές “-virtioconsole” (αντικαταστάθηκε με “-device virtconsole”), “-no-frame”, “-clock”, “-enable-hax” (αντικαταστάθηκε με “-accel hax”) καταργήθηκαν. Καταργήθηκε η συσκευή "ivshmem" (πρέπει να χρησιμοποιεί "ivshmem-doorbell" και "ivshmem-plain"). Η υποστήριξη για δημιουργία με SDL1.2 έχει διακοπεί (πρέπει να χρησιμοποιήσετε το SDL2).

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο