
أصبح QEMU 10.1 متاحًا الآن ويأتي مع مجموعة من التغييرات المهمة للمطورين ومستخدمي الآلات الافتراضية على نطاق واسع. ومن بين الميزات الأكثر أهمية الميزات الجديدة في الأمان، والهجرات المباشرة، ودعم الهندسة المعمارية، وتحسينات الأجهزة.لذا فمن المستحسن مراجعته بهدوء.
قبل الخوض في التفاصيل، ملاحظة لتجنب الالتباس: يستخدم QEMU ترقيمًا زمنيًا. هذا يعني أن أعلى رقم إصدار لا يشير، في حد ذاته، إلى مدى التغييرات. تسمح سياسة المشروع بإجراء تغييرات غير متوافقة بعد فترة الإهمال مع وجود تحذيرات في إصدارين سابقين على الأقل.لذا لا تفترض أن القفزة إلى الإصدار الرئيسي مرادفة للثورة.
QEMU 10.1 التوفر والسياق والفلسفة
المشروع أعلن 10.1.0 في 26 أغسطس 2025 مع أكثر من 2700 التزامًا موقّعًا من قبل 226 مؤلفًا. يمكنك تنزيل ملف tarball من الموقع الرسمي والاطلاع على سجل التغييرات الكامل للحصول على كافة التفاصيل.كما هو الحال دائمًا، شكرًا جزيلاً لأولئك الذين يساهمون في الكود والاختبار وCI والتوثيق وتقارير الأخطاء.
تمشيا مع فلسفة QEMU، هناك العديد من الإشارات إلى الميزات التي تمت إزالتها والخيارات القديمة. إذا كنت تعتمد على شيء أقدم، فراجع قسم "الميزات المحذوفة" وفصل "الميزات القديمة" في دليل مستخدم محاكاة النظام، حيث يوصى أيضًا بالاستبدالات.
أهم النقاط في لمحة
لمساعدتك في البدء، يغطي الملخص السريع للإصدار 10.1 الأمان والأداء والإدارة المتقدمة. هناك دعم VFIO أولي للضيوف السريين، وتحسينات قوية للهجرة، وقدرات جديدة لوكيل الضيوف..
- VFIO والسرية:الدعم الأولي للوصول إلى/تعيين ذاكرة الضيف الحساسة عند استخدام guest_memfd، وتمكين المرور على SEV-SNP/TDX.
- الهجرة المباشرة:يعمل multifd على تسريع عمليات تحسين ما بعد النسخ وما قبل النسخ ودعم RDMA عبر IPv6.
- وكيل الضيوف: : أمر جديد 'guest-get-load' للاستعلام عن التحميل على نظام Windows.
- الهندسة المعمارية:ميزات ARM جديدة (FEAT_SME2، SME2p1، SVE2p1 والمزيد)، ودعم RISC-V الموسع وتكامل KVM لـ TDX على x86.
الهندسة المعمارية والآلات: ما الذي يتغير بالضبط
يقوم QEMU 10.1 بتحسين وتوسيع نطاق المحاكاة والافتراض عبر عائلات وحدات المعالجة المركزية المتعددة. من ARM إلى RISC-V وx86، مرورًا بـLoongArch أو HPPA أو Microblaze، هناك تقدم ملموس والتي ينبغي أن يتم تقسيمها.
ARM
على ARM، يضيف QEMU 10.1 مجموعة من ميزات بنية وحدة المعالجة المركزية: FEAT_SME2، FEAT_SME2p1، FEAT_SME_B16B16، FEAT_SME_F16F16، FEAT_SVE_B16B16 وFEAT_SVE2p1، تعزيز الدعم لمعالجة المتجهات والمصفوفات.
أما بالنسبة للآلات، فهناك العديد من الميزات الجديدة ذات الصلة. تم دمج اللوحة 'max78000fthr' (Analog Devices max78000 Cortex-M4)سيتم إطلاق نظام متعدد الأنظمة على رقاقة جديد، AST2700FC، إلى جانب أجهزة 'Catalina-BMC' (Meta) و'GB200-BMC' (NVIDIA)؛ كما سيتم إضافة دعم البرامج الثابتة إلى AST2700 EVB.
لوحة "الفضيلة" الشهيرة تنمو أيضًا: يدعم الآن CXL وPCI hotplug عبر ACPI، وفي ظل نوى المضيف الحديثة، المحاكاة الافتراضية المتداخلة مع KVM من خلال تمكين 'virtualization=on'ملاحظة: تم إيقاف استخدام الطرازين 'highbank' و'midway'، وتم الإعلان عن إيقاف استخدام الطراز 'ast2700a0-evb'.
RISC-V
يتلقى نظام RISC-V البيئي مجموعة كبيرة من التفاصيل حول ISA والأجهزة والإصلاحات. يتم دعم امتداد جلب البيانات الذري (Ziccif)، وتمت إضافة 'Svrsw60t59b'، وتم ضبط الحالات الحدية لتعليمات المتجه بدقة.
- ISA والإضافات:تعليمات زائفة 'tail' للمكالمات المدرجة، وإزالة خصائص وحدة المعالجة المركزية ذات الحرف الكبير 'Z'، وmax_satp_mode من المضيف، وتعيين وتوسيع عدد مناطق PMP (حتى 64)، وخيار لتعيين 'vill' للاستخدام المحجوز لـ vsetvli.
- آلات:دعم RIMT في ACPI 'virt'، وتحسينات التخصيص على Microchip PolarFire SoC و وحدة المعالجة المركزية والمنصة الجديدة في كونمينغهوتحديث إصدارات FADT وMADT في جداول ACPI.
- التصحيحات والمتفرقات:لا تسمح لـ PMP RLB بالقفز على الامتيازات، وإصلاحات CSR في KVM، وsstc، وترتيب zama16b، ومعالجة الملف الشخصي، وإصلاحات الاستثناءات/الإخفاء (MEPC/SEPC لـ IALIGN)، وإصلاح الالتفاف على نطاقات PMP 0، وإصلاحات حلقة الترجمة اللانهائية ذات النهاية الكبيرة، وإصلاح فشل الترحيل عند تعيين AIA على aplic-imsic.
وبالإضافة إلى ذلك، تمت إضافة الميزات المسماة المفقودة، وإصلاحات سجل استجابة ترجمة PPN، وتجنب التأخير اللانهائي في النقل غير المتزامن.، مما يحسن الاستقرار في السيناريوهات المتطرفة.
x86 (KVM وTCG)
يوجد في x86 نقطتان جيدتان سيقدرهما المسؤولون. يتم تجاهل بتات CPUID الخاصة بالبائع عندما لا يتم تعريفها بواسطة بائع وحدة المعالجة المركزية الضيف.، وتجنب الارتباك والملامح الاصطناعية.
من جانب KVM، تمت إضافة دعم لـ TDX (يتطلب Linux 6.16 أو أحدث)، ويسمح ببدء تشغيل أجهزة TDX أو SEV-SNP من ملف IGVM، وهي خطوة مهمة لتدفقات التزويد الآمنة.
في مترجم TCG، يتم دعم بت مصيدة TSS، تحسين دقة مسارات التنفيذ المحددة دون تسريع الأجهزة.
لونج آرتش
تتقدم LoongArch إلى الأمام بدعم من irqchip في النواة، يقوم بإصلاح الطرف الكبير باستخدام جدول MCFG، ويصلح عمليات التشغيل الفاشلة عندما يكون 'smp cpu' < 'smp maxcpus' ضمن KVM، ويصقل تفاصيل التعليمات مثل VLDI. يتم أيضًا إعلام ضيف KVM وإضافة فحص لـ "fcond"..
ميكروبليز
يتمتع الأشخاص الذين يعملون مع Microblaze بمزيد من التحكم: تتيح لك الآلة 'petalogix_s3adsp1800' تبديل الترتيب النهائي عبر خاصية 'endianness'.يتم إيقاف استخدام متغيرات ml605 وxlnx-zynqmp-pmu ذات النهاية الكبيرة، وتحويلها إلى النهاية الصغيرة في qemu-system-microblaze. بالإضافة إلى ذلك، سيتم إيقاف استخدام الملف الثنائي 'qemu-system-microblazeel' وسيتم إزالته مستقبلًا.
MIPS
هناك تصحيح محدد للغاية ولكنه موضع تقدير كبير: تم إصلاح مشكلة BSOD عند تشغيل Windows NT MIPS على جهاز Magnum (المشكلة رقم 2464)، مفيد لأولئك الذين يقومون بالبحث أو صيانة البرامج التاريخية.
HPPA
قد كان تحسين محاكاة استثناء النقطة العائمة (FPE) في كل من وضع المستخدم ووضع النظام، مما يعزز دقة هذه الهندسة المعمارية المخضرمة.
عمارة أخرى
بالإضافة إلى الأقسام المذكورة أعلاه، هناك فصول خاصة بـ 68k، وAlpha، وAVR، وHexagon، وOpenRISC، وPowerPC، وRenesas RX/SH، وs390x، وSPARC، وTricore، وXtensa. على الرغم من عدم وجود عناوين رئيسية مدرجة في الإصدار 10.1 للجميع، إلا أن الصيانة والتعديلات مستمرة.، مع ذكر خاص لـ s390x في الإصدارات الأخيرة للحصول على تعريفات وحدة المعالجة المركزية الجديدة وتحسينات virtio-mem.
الأجهزة، الإدخال/الإخراج والأنظمة الفرعية
يقدم QEMU 10.1 مواد مهمة في VFIO والشبكات والرسومات والصوت والإدخال/الإخراج. وهذه هي التغييرات التي تؤثر بشكل مباشر على الأداء والتوافق والعمليات اليومية..
فيو
تم تقديمه الدعم الأولي لوحدات ذاكرة الضيف memfd الخلفية في الضيوف السريين (CoCo)تم تحديث وثائق IGD Passthrough، وتم إصلاح تعطل L2 على أجهزة pseries.
كما تم تمكينه يتم تلقائيًا تشغيل OpRegion لـ IGD، تم تحسين اكتشافه ويمكن لـ QEMU الآن الإبلاغ عن تغييرات تكوين vfio-ap.
وبعد ذلك يصلون إلى عميل مستخدم vfio، دعم من التحديث المباشر (الإنعاش القلبي الرئوي), هجرة VFIO مع multifd على aarch64، وملكية ل فرض رمز فئة PCI لجهاز. وأخيرا، تم إضفاء الطابع الرسمي على دعم VFIO على أجهزة VM TDX وSNP.
الشبكات والتخزين
هناك واجهة خلفية جديدة لأجهزة الشبكة: 'مر'مُصممة لسيناريوهات التكامل والحماية. بالإضافة إلى ذلك، عند استخدام NBD عبر مقابس يونكس، تحاول QEMU التفاوض على مخازن أكبر لتحسين الأداء بشكل كبير.
PCI/PCIe وvirtio
تضيف لوحة ARM 'virt' توصيل PCI الساخن عبر ACPI وacpi-index لأجهزة PCI من خلال تمكين الخيار العالمي '-global acpi-ged.acpi-pci-hotplug-with-bridge-support=on'.
في الرسومات الافتراضية، يسمح virtio-gpu بحقن اسم EDID، مفيدة لاختبار التوافق والأتمتة.
9pfs والواجهات الخلفية الأخرى
بالنسبة لـ 9pfs، خوارزمية استرداد وصف الملف عندما تكون قريبًا من حد النظام والعديد من حالات الاستخدام بعد إلغاء الارتباط (العمليات بعد حذف الملف) التي قد تسبب أخطاء دقيقة.
Audio
يقوم نظام الصوت بضبط الإعدادات الافتراضية والتوافق: في ALSA، أصبح 'try-poll' الآن خاطئًا بشكل افتراضي تمت إضافة محولات الترتيب والترتيب النهائي للعينات ذات النقطة العائمة.
الواجهة الرسومية والوكلاء
هناك الكثير لمناقشته في واجهة المستخدم الرسومية: يدعم Spice/Dbus dmabuf متعدد المستوياتيمكن أيضًا تمكين gl=on مع العملاء البعيدين/غير المحليين.
يضيف وكيل vdagent دعم الهجرةيعمل GTK على تحسين التعامل مع المقياس وإضافة خياري "الحفاظ على نسبة العرض إلى الارتفاع" و"المقياس".
في VNC يتم تصحيحها تحديث مشاكل الترميز عندما يختلف العميل والخادم في الترتيب النهائي، سواء في الترميزات غير المحكمة أو في 8/16 بت في الثانية؛ فإنه يحل المشكلة أيضًا تم إيقاف الشاشة مؤقتًا بعد الترحيل.
الإدخال/الإخراج واستكشاف الأخطاء وإصلاحها
في طبقة الإدخال/الإخراج، تسمح لك العديد من واجهات TCP الخلفية الآن بتكوين معلمات الحفاظ على اتصال TCP، مفيد جدًا في البيئات ذات جدران الحماية العدوانية أو NAT.
يضيف GDBStub دعم لـ qGDBServerVersion يتم استخدامه بواسطة عملاء غير GDB، مما يؤدي إلى تحسين قابلية التشغيل البيني.
تحصل مكونات TCG الإضافية على تدليل: يدعم المكون الإضافي "ips" القياس القابل للتكوين والتعليمات لكل كمية؛ بالإضافة إلى وجود ميزات جديدة لـ كتابة السجلات، اكتب في عناوين افتراضية (مع الحذر) و قراءة/كتابة عناوين الأجهزة. تم دمج مكون إضافي للاختبار 'patcher'، و sparc64 وalpha يعرضان تفاصيل التسجيل للمكونات الإضافية.
الهجرة المباشرة ومهام الحظر
10.1 يشدد الخناق على تنقل الآلة الافتراضية. يدعم انتقال RDMA الآن IPv6 ويتم تحسين النسخ اللاحق للوصول المتسلسل (الحالات النموذجية مثل بث الفيديو).
اخبار عظيمة: من الممكن الآن تمكين Multifd و Postcopy في نفس الوقت. (تم تفعيل multifd الآن أثناء النسخ المسبق). كما تم إصلاح ترحيل VFIO مع multifd عند تفعيل tcp zerocopy وتقليله. نافذة التوقف في النسخة المسبقة تجنب LOG_CLEARs غير الضرورية.
في QMP، مرآة blockdev يُطلق العلم المنطقي 'target-is-zero' لتحسين المرايا إلى الوجهات التي تقرأ بالفعل على أنها صفر؛ وعلاوة على ذلك، حتى بدون هذا العلم، يتم إنجاز قدر أقل من العمل على كتل المصدر التي تقرأ على أنها صفر. النسخ الاحتياطي لـ blockdev يضيف خيار 'on-cbw-error' لتحديد كيفية التعامل مع أخطاء الإدخال/الإخراج أثناء النسخ قبل الكتابة.
في أعمال الكتل، block-commit غير نشط تم تحسينه للحفاظ على الندرة؛ وترث المرايا/النسخ الاحتياطية التحسينات السابقة للكتل الصفرية والخيارات الجديدة.
وكيل الضيوف
ينمو وكيل QEMU Guest على نظام التشغيل Windows: تم تنفيذ 'guest-get-load' للاستعلام عن تحميل نظام الضيف.
كما تمت إضافة في Windows أيضًا أعد المحاولة عند إلغاء تسجيل مزود VSS وينشر خطأ التثبيت من موفر VSS إلى مثبت MSI، مما يجعل التشخيص أسهل.
وضع المستخدم وTCG
في محاكاة وضع المستخدم هناك تحديثات طفيفة في الوثائق توضيح القيود؛ حيث يتم تغطية مجالات الإشارات ووقت التشغيل وbinfmt_misc، بالإضافة إلى أهداف alpha وarm/aarch64 وHPPA وLongArch وPowerPC وs390 وx86.
يستمر العمل في TCG على LoongArch وRISC-V ودعم تسجيل/إعادة تشغيل، على الرغم من عدم وجود أي تغييرات في العنوان باستثناء جزء الغش TSS المذكور أعلاه.
التجميع والتبعيات والمنصات
في عملية البناء، يتم تحديث الوثائق بـ أمثلة b4 وكل وحدات edk2 الفرعية تذهب الآن مضمن في حزمة البرامج الثابتة.
فيما يتعلق بالصدأ، تمت زيادة الحد الأدنى للإصدار المدعوم إلى 1.77على توزيعة ديبيان، يتوفر bookworm في حزمة rustc-web باستثناء mips64el (لهذا الغرض، يلزم استخدام Debian trixie أو إصدار أحدث). على نظامي أوبونتو 22.04 و24.04، تُستخدم حزمة rust-1.77 عن طريق ضبط متغيري RUSTC/RUSTDOC إلى /usr/bin/rustc-1.77 و/usr/bin/rustdoc-1.77.
يستمر دعم الصدأ تجريبي وغير مستقرلا ينصح باستخدامه لأي شيء آخر غير التطوير. مع تمكين Rust، يتطلب QEMU Meson 1.8.1يتم تضمين البرنامج النصي ('scripts/get-wraps-from-cargo-registry.py') لملء 'subprojects/' من سجل محلي (على سبيل المثال، /usr/share/cargo/registry).
على منصات الاستضافة، لم يعد Debian Bullseye مدعومًا، وأصبح Ninja 1.9 متطلبًا (كان موجودًا بالفعل على جميع الأنظمة المدعومة بـ QEMU 10.0). كما وصل الدعم التجريبي للتجميع إلى WASM باستخدام Emscripten.
لا توجد عناوين محددة حول Windows في هذه الدفعة، بخلاف ما ذكره الوكيل الضيف بالفعل. توجد خريطة الطريق 10.1 في صفحة التخطيط/10.1 إذا كنت تريد متابعة التفاصيل.
إذا كنت تنتظر الترقية، فإن الجمع بين دعم الضيوف السريين (TDX/SEV-SNP مع IGVM وguest_memfd)، والهجرات الأسرع (multifd + postcopy، RDMA IPv6)، والتحسينات عبر البنيات والأنظمة الفرعية تجعل من QEMU 10.1 إصدارًا متكاملًا للغاية. ومع وجود أداء أكثر عملية، وأدوات إدارة أفضل، وقاعدة تكنولوجية مستمرة في التحديث، فإن القفزة تستحق العناء..
