Donanım Sanallaştırmayı ve CPU Registers'un Eleştirel Rollarını Anlamak
Sanallaştırma modern hesaplamaya dönüştü, bulut sağlayıcılarına, işletmelere ve veri merkezlerinin birden fazla işletim sistemi ve uygulamaları tek bir fiziksel sunucuda çalıştırarak en üst düzeye çıkarmalarına izin verdi.Bu teknolojinin kalbinde hipervizör – sadece sanal makineleri yöneten yazılım katmanı – sadece aktif olarak izolasyon, bağlam ve kontrol sahipleri.Bu makaleye nasıl kayıt yaptırdıklarını keşfetmek için bu makaleye bağlı olarak sanallaştırma yeteneği.
CPU Registers Nedir?The Building Blocks of Processor State
Kayıtlar bir işlemcinin içindeki en hızlı bellek yerleridir. Doğrudan CPU'da ölürler ve tek bir saat döngüsü içinde okunabilir veya yazılabilirler - hafıza veya RAM'dan daha hızlı geçiş yapar. Genellikle kayıt olmadan her veriyi daha yavaş hafızadan almak zorunda kalacaklar, kayıtlar bir sonraki eğitim adresi (program veya öğretim noktası) gibi kritik veriler kayıt altına alır.
Kayıtların Sınıflandırılması
- [FONT:0] Genel amaçlı kayıtlar (GPRs)): Arithmetic, mantık işlemleri ve veri hareketi için kullanılır. x86-64 mimarlıklarında, RAX, RBX, RCX, RDX, RSI, RDI, R8-R15 mevcut.
- [FONT=0]Özel amaçlı kayıtlar[[[Dönetici: x86-64), yığın noktası (RSP) ve bayrak kaydı (RFLAGS) Bu kontrol uygulama ve statü akışını kontrol eder.
- [FONT:0) Kontrol kayıtları[[Dönetici: x86'da CR0, CR2, CR3, CR4 ve CR8 kontrol sistemi- seviye özellikleri, koruma ve sanallaştırma uzantıları gibi.
- [FONT:0]Segment kayıtları[[Dönetici: CS, DS, ES, FS, GS, SS hafıza segmenti yönetiyor - şu anda 64 bit modunda büyük ölçüde vestigial olsa da, miras uyumluluk ve bazı VM senaryoları için önemli kalıyorlar.
- [FONT:0) Model-Specific Registers (MSRs)[Dönetici:0)[FONT=0))[değiştir | kaynağı değiştir]: Performans sayacı, sıcaklık ve sanallaştırma uzantıları gibi özel kayıtlar standart kayıt setinin bir parçası değildir ve RDMSR/WRMSR talimatları ile erişimlidir.
- [FONT:0]Debug kayıtlarını [Dönetici: DR0-DR7 donanım uçları ve debugging için kullanıldı.
Bir hipervizör üzerinde çalışan her VM, bu kayıtların kendi kopyasını bağımsız bir uygulama kapsamını korumak için ihtiyaç duyar.Bir VM'den diğerine hipervizör anahtarları başka bir VM'den diğerine geçerken, gelen VM'nin kayıt durumunu kurtarır ve gelen VM'nin durumunu geri yüklemesi gerekir.Bu bağlamdaki geçiş noktası dikkat çekici performans yükünden kaçınmak için son derece hızlı olmalıdır.
Sanallaştırmada Kayıtların Orta Rolı
Hipervizör ( Virtual Machine Monitor, VMM) donanım kaynaklarının sahtekarlığı olarak hareket eder. Kayıtlar, VMM'nin VM eyaletindeki yedekleri, izolasyonu uygular ve ayrıcalıklı işlemleri engeller. İşte sanallaştırmanın temel yolları şunlardır:
Context P protection ve Anahtarlama
Her VM, sanal bir kayıt setine atanır. hipervizör bir bağlam geçişi gerçekleştirirken (örneğin, iki VM arasında zaman paylaşımı), mevcut kayıt değerlerini sanal makine kontrol bloğu ( VMCB in AMD) veya sanal makine kontrol yapısı ( VMCS) olarak adlandırılan bir sonraki VM'nin kaydettiği kayıt durumunu içerir.
Öğretim-Level Virtualization
Misafir işletim sistemleri ayrıcalıklı talimatları (örneğin, sayfa tablolarını değiştirmek, kesme tanımlayıcıları güncellemek) Klasik tuzak ve konuğu sanallaştırmada, misafir ayrıcalıklı bir kayıt değiştirmeye çalışırken, CPU bir tuzak yaratır ve hipervizörlüğün talimatlarını otomatik olarak tutar.
Kayıt Koruması Tarafından
CR3 (sayfa masası ana adresi) ve CR0 (kontrol bayrakları) doğrudan hafızayı ve korumayı kontrol edebilir.Bir misafir OS, başka bir VM'ye ait fiziksel hafızayı haritalayabilir. hipervizör bunu bir gölge sayfası veya ihmal edilen sayfalar (EPT/NPT) kullanarak engelleyebilir.
Model-Specific Registers (MSRs)
MSRs kontrol işlemcisi, VM bağlamı boyunca otomatik olarak kurtarılmıyor, hipervizör ( MSR bitleri ile) ve MSR'nin her VM'yi kendi sanal MSR alanıyla sunmak için çok zor durumda. A rogue VM context keys.
Kayıt türleri özellikle Sanallaştırmada kullanılır
General-Purpose Registers
GPRs en sık erişimli kayıtlardır. Her VM, önbellek kirliliğinden kaçınmak için kendi değer setini alır.GPRs are the most often access records. Her VM takes its own set of values for RAX through R15. during context switch, all GPRs are save and restore. Performance- critical hipervizörs may use CPU features like memory Segmentation (FS, GS) to store per- VM pointers to avoid cache kirliliği.
Kontrol Registers (CR0, CR2, CR3, CR4, CR8)
- [FONT:0]CR0[DÜDÜT:1): Kontrol işlemci işletim modları (PG biraz koruma için). PE veya PG'yi değiştirme girişimleri durdurulmalıdır.
- [FONT:0]CR2[DÜT:1]: Son sayfadaki hata lineer adresini içeriyor. Hypervisors talep etmek ve ihmal edilen sayfa hataları işlemek için buna güveniyor.
- [FONT=0)CR3[DÜT:1]: Sayfanın masa hiyerarşisinin temel adresini tut. Donanım destekli sanallaştırma, Intel veya Nested Page Tables (NPT)'de Genişletilmiş Page Tables (EPT) kullanır, bu yüzden misafirin CR3 puanlarını misafir-fiziksel sayfalara tutun ve hipervizörlerin ikinci seviye masa haritalarını misafir-fiziksel olarak makine-fiziksel olarak kullanır.
- [FONT:0]CR4[[DÜDÜT:1): Fiziksel Adres Dahili (PAE), SMEP, SMAP ve sanallaştırma uzantıları (VMXE bit) Guest değişiklikler ele alındı ve doğrulandı.
- [FONT:0]CR8[[DÜDÜT:1): Görev önceliği kaydı, kesinti yönetimi için kullanılır. hipervizör VM'lere teslimatı kontrol etmek için bunu sanallaştırır.
Segment Registers
Segmentasyon 64-bit modunda büyük ölçüde kullanılmamış olsa da, segment kayıtları (CS, DS, SS, ES, FS, GS) hala mağaza tabanı, limit ve nitelikler içeren gizli tanımlayıcı önbellekleri içerir. Sanallaştırmada hipervizörlüğün bu önbellek değerleri sanallaştırması gerekir, çünkü hafıza erişim izinlerini etkiler.
Model-Specific Registers (MSRs) in Virtualization
MSR'ler sanallaştırma ile ilgilidir. Örneğin: - [[ŞUYGÜ:0)IYLA KAYNAKLARI (DÜSÜSÜ) ve DÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞ
Debug Registers (DR0-DR7)
Debug kayıtları per-core'dur ve uygun bir şekilde sanallaştırmamışsa VM'den ayrılmaları için misafir OS tarafından ayarlanabilir. hipervizör bunları bağlam anahtarları üzerinde kurtarmalı ve geri yüklemelidir. Ek olarak, kötü niyetli yazılımlar, sanallaştırmamışsa VM'den ayrılmaya kayıt kullanabilir.
Donanım Sanallaştırma Dahilileri: Nasıl Geliştirilir
Donanım uzantıları önce, saf yazılım sanallaştırma (binary çeviri) önemli performans cezaları geçirdi. Intel VT-x (Virtualization Technology) ve AMD, AMD-V (Pacifica) yeni CPU modlarını eklemek ve sanallaştırmayı kolaylaştıran özel kayıt yapıları tanıttı.
Intel VT-x: VMCS ve Guest /Host State Fields
Sanal Makine Kontrol Yapısı (VMCS) bir VM çıkışı için tüm kayıt durumunu içeren hafıza dışı veri yapısıdır: - Guest state alanı: CR0, CR3, CR4, RSP, RIP, RFLAGS, segment kaydı ve daha fazlası. - Host state alanı: VM çıkışında restore edilecek hipervizörün kayıt durumunu kurtarmak için hipervizör. - Kontrol alanları: hangi olayların VM çıkışlarına neden olduğunu belirt. - Kontrol alanları: hangi olayları belirteçleri VM çıkışları (örneğin, CR3, bazı MSR erişimleri, CR3).
VMCS, VMPTRLD talimat aracılığıyla işlemciye yüklenir ve VM'ler arasındaki bağlantı hızlıdır, çünkü işlemci tek bir operasyonda tüm konuk durumunu kaydeder. VMXON talimat sanallaştırma modunda etkinleştirir; VMX kök modu (hypervisor) ve her biri kendi ayrıcalık seviyelerini taşır.
AMD-V: VMCB
AMD, sanal makine Kontrol Blokunu (VMCB), fiziksel hafızada depolanır. VMRUN talimatı VMCB ve misafir modlarına kadar yükler. VMCS gibi VMCB konuyla ilgili olarak konuk ve host kayıt durumunu ve kontrolleri içerir. AMD ayrıca Nested Page Tables (NPT) hipervizör tarafından kontrol edilen ayrı bir dizi sayfaya güvenir.
ARMv8 Sanallaştırma Hazırlanıyor
ARM işlemciler, ikinci aşama çeviri masası için temel adresi tutar. EL2 (hypervisor ayrıcalık seviyesi) HCR EL2 kontrol sanallaştırma davranışı ve VTTBR EL2 gibi kayıt bankaları gerektirmez.
Performans Kayıt Yönetiminde Düşünmek
VM geçişleri sırasında tasarruf ve geri yükleme maliyeti kritik bir performans faktörüdür. Her VM çıkışı ve giriş, düzinelerce kayıt yükü ve mağaza içerir. Donanım destekli sanallaştırma bu yükü azaltır, çünkü işlemcinin kendisi mikrokoca kullanarak toplu tasarruf / alışveriş yapar (yüzlülükler) ancak çıkışlar hala pahalıdır (yüzlülükler).
VM Exits'i Minimiz
Hipervizör, VMCS/VMCB'yi sık sık çıkışları önlemek için yapılandırabilir. Örneğin, birçok MSR erişimi, hipervizörden önce popülatlar MSR bitmelerine doğrudan misafir erişimine izin vermek için (daha iyi MSR’ye karşı çıkmak için) bir VMCS ve IOMMU'ya erişim sağlar.
Kayıt Caching ve Shadowing
Bazı hipervizörler, misafirin sayfa masalarını değiştirirken VCPU veri yapısında önbellekli puanlar alır. Örneğin, misafir CR3 genellikle gölgelenir: hipervizör, konuk sayfa masalarını değiştirirken gerçek CR3'ü günceller. Benzer şekilde, misafir MSR değerleri önbellek ve tembel-enebilir.
Nested Virtualization'in etkisi
Bir hipervizör bir VM içinde (tarafsız sanallaştırma), dış hipervizör, VMCS/VMCB yapıları kendilerini sanallaştırmalı. Bu, kayıtlarla daha fazla bakım gerektirir - örneğin, iç hipervizör VMLAUNCH talimatının kesintiye uğraması ve dış hipervizör tarafından emilmesi gerekir, ekstra kayıt kurtarma/recilere neden olur.
Kayıt Sanallaştırmanın Güvenlik Takmaları
Kayıtlar, bir sonraki VM’ler tarafından gözlemlenen kayıtlarda birincil veri miktarı (örneğin, yeni VM'leri içeren kayıt numaraları) kayıt altına alan VM'ler ve MSR'ler arasında kayıt dışı olarak kayıt altına alınamaz. Örneğin, bir bağlamda, kayıtlarda geri alınan veriler, bir sonraki VM'ler tarafından gözlemlenebilir.
Spekülatif Vulner yükümlülükleri
Meltdown ve Spectre saldırıları, spekülatif infazın mimari olarak görünür olmayan kayıt değerlerine erişebileceğini ve bu eylemlerin genellikle sanal kayıtlardan sonra sanal olarak gerçekleştirildiğini iddia ediyor.
Immutable Registers and Security
Bazı MSRs (bu kontrol debug kimlik doğrulama veya işlemci seri sayıları gibi) asla misafirler tarafından erişilebilir olmamalıdır. hipervizör herhangi bir erişimde VM çıkışına neden olmak için MSR bitmaps'ı ayarlar, sonra bir hata veya sahte değer döndürür.Bu, bilgi sızıntı veya donanım hasarını önler.
Meydanlar ve Gelecek Yollar
Modern CPUlar zengin kayıt sanallaştırma desteği sağlarken, zorluklar kalır. Önemli bir sorun CPU'lar ek özellikler olarak MSR'nin sayısıdır - yeni MSR'nin sanallaştırılmış olması, daha büyük VMCS/ VMCB yapılarına ve daha yavaş bağlam anahtarlarına yol açan bir başka meydan okumadır.
Geleceğin donanım sanallaştırma için özel donanım kayıtları içerebilir, örneğin Intel TDX ve AMD SEVİYE kayıt dosyasına güvenilir, ancak CPU'da otomatik olarak otomatik olarak giriş / ek olarak, [[Dönetici:0)confidential Computing), Intel TDX ve AMD SEVİYE gibi teknolojiler hafıza şifreleme ve bütünlüğüne güvenmektedir, ancak CPU'nun içinde kayıt durumu hipervizörden korunmalıdır.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
CPU kayıtları, sanallaştırmanın en az maliyetle sanallaştırmanın yanı sıra, her bir sanal makinenin kritik durumunu depolar ve hipervizörlerin sanallaştırma gibi özel yapıları tanıtarak daha verimli hale getirirler.Genel amaçlı kayıtlardan ve VMCB gibi özel bir şekilde kayıt altına almalarını sağlarlar, her türlü bellek çevirisini her misafir için güvenli hale getirir.