8 aylıq inkişafdan sonra, Xen 4.21 açıq hiperjaşdırıcısının buraxılışı nəşr olunmuşdur. Yeni buraxılışın inkişafında Amazon, Arm, EPAM Systems və AMD kimi şirkətlər iştirak etmişdir. Layihənin kodu C dilində yazılmışdır və GPLv2+ lisenziyası altında yayılır. İnkişaf Linux Foundation təşkilatının tərkibində aparılır.
Xen 4.21-dəki əsas dəyişikliklər:
- Linux stubdomain cihaz modelinin tam dəstəyi təmin olunmuşdur, bu da ayrı bir səlahiyyətsiz istifadəçi altında cihazların emulyasiyası üçün komponentlərin icrasını təşkil etməyə imkan tanıyır. Linux stubomains modeli QUBES OS layihəsi tərəfindən hazırlanmışdır və emulyasiya sürücülərinin yeni QEMU buraxılışlarından istifadə etməsinə və QEMU-nun qonaq sistemləri üçün mövcud funksiyalarına dəstək verir.
- x86 arxitekturası əsaslı sistemlər üçün dəyişikliklər:
- Yeni PDX (Page inDeX) strukturu sıxılma alqoritminin dəstəyi əlavə olunmuşdur ki, bu da Intel Sierra Forest və Granite Rapids prosessorlarında qeyri-xətti fiziki yaddaşın təsviri (sparse memory map) ilə işləməyə imkan tanıyır, boş sahələrin olması mümkündür.
- PCI cihazının bazası olan BAR (Base Address Register) registri üçün MTRR (Memory Type Range Registers) saxlama atributunu idarə etmək imkanı əlavə olunmuşdur. PCI cihazlarının əks olunmuş yaddaşında MTRR-də UC (uncacheable) atributu standart olaraq təyin olunur ki, bu da faktiki PCI cihazları üçün məna kəsb edir, lakin Xen platformasındakı PCI cihazının performansını azaldır.
- AMD prosessorları üçün CPU-nun optimal performansını əldə etmək məqsədilə tezliyi idarə edən yeni amd-cppc/amd-cppc-epp sürücüsü əlavə olunmuşdur. Bu sürücü, acpi-cpufreq-dən fərqli olaraq, yalnız üç performans səviyyəsi ilə məhdudlaşmayan CPPC (Collaborative Processor Performance Control) mexanizmini istifadə edir və vəziyyət dəyişikliklərinə daha sürətli reaksiya verməyə imkan tanıyır.
- Privileged Dom0 olmadan xenstored-i işə salmaq üçün istifadə olunan xenstore-stubdom qatında, PVH rejimində paravirtualizasiya mühitləri üçün live-updates dəstəyi həyata keçirilmişdir.
- Dom0-da PVH rejimində Resizable BAR (Resizable Base Address Register) texnologiyası dəstəyi təmin edilmişdir ki, bu da PCI Express cihazının bütün yaddaşına eyni anda giriş imkanı verir, yalnız bloklara bağlı olaraq deyil.
- HVM (tam avadanlıq virtualizasiyası) rejimində domU mühitlərinə PCI cihazlarını keçirmək imkanı təmin edilmişdir, bu konfiqurasiyalarda dom0 PVH rejimində işləyir (hibrid avadanlıq virtualizasiyası və paravirtualizasiya).
- ARM arxitekturası əsaslı sistemlər üçün dəyişikliklər:
- Yığıma qoruma mexanizminin ("-fstack-protector" bayrağı ilə yığma) aktivləşdirilməsi imkanı əlavə olunub; bu, yığıma rastgələ ardıcıllıq olan kanar etiketi əlavə etməyə əsaslanır. Bir zəiflik istismarı zamanı, yığımdakı kanar etiketi digər məlumatlar tərəfindən yenidən yazılır, bu da etiketin dəyişməzliyini yoxlayan sonrakı yoxlamanın işə düşməsinə və tətbiqin fövqəladə bağlanmasına səbəb olur.
- GICv3.1 kesmə idarəediciləri tərəfindən təmin olunan eSPI (Genişləndirilmiş Paylaşılan Periferik Kəsintilər) mexanizminin dəstəyi əlavə olunub.
- PCIe cihazlarının keçirilməsi zamanı SMMU (Sistem Yaddaş İdarəetmə Bloku) emalı təmin edilib.
- Renesas R-Car-nın dördüncü nəsil SoC-larında istifadə olunan PCI ev sahibi idarəedicilərinin dəstəyi əlavə olunub.
- Cortex-R52 və Cortex-R82 prosessorları üçün MPU (Yaddaş Qoruma Bloku) ilə başlanğıc dəstək əlavə olunub.
- RISC-V arxitekturası üçün Xen portunda UART üçün əsas dəstək və hipervizor rejimində xarici kesintilərin emalı (APLIC/IMSIC) imkanı təmin edilib.
- Kritik sistemlər üçün MISRA-C spesifikasiyalarında formulə olunan təhlükəsiz və etibarlı C proqramlarının inkişafına dair tələblərin həyata keçirilməsi davam etdirilir.
- Köhnə GCC və Clang versiyalarının dəstəyi dayandırılıb; indi yığılma üçün ən azı GCC 5.1, Clang 11, Binutils 2.25 və GNU Make 3.80 versiyaları tələb olunur.
Mənbə: opennet.ru
