Sanallaştırma eski bir fikirdir. 60'lı yıllarda, bilgi işlem normunun, birçok kullanıcı ve birçok iş hizmeti tarafından paylaşılan birkaç büyük ana bilgisayar olduğu zaman ortaya çıktı. Aynı fiziksel donanım üzerinde çok çeşitli iş yüklerini aynı anda çalıştırmak için, tek bir işletim sisteminin tüm o-uygulamalar için tüm olası amaçlar için kullanılmasına gerek kalmadan, birden çok işletim sisteminin olduğu bir model bulmak gerekliydi. aynı donanım platformunda eşzamanlı olarak konuşlandırılabilir.
(2) Sanal Kaynakların Tanımı
Sanallaştırmayla, aynı fiziksel platformda konuşlandırılan işletim sistemlerinin her biri , temeldeki donanım kaynaklarına sahip olduğu yanılsamasına sahiptir. Ya da en azından daha küçük bir kısmı. Bu nedenle, her işletim sistemi donanım kaynaklarına sahip olduğunu düşünür ve bu kaynaklara sanal kaynaklar denir .
(3) Sanal Makinenin Tanımı
Her bir işletim sistemi, uygulamaları ve bize gönderdiği sanal kaynaklarla birlikte sanal makine veya kısaca VM olarak adlandırılır . Bu, bazı yazılım yığınları tarafından yerel olarak yönetilen fiziksel makineden farklı olduğu için sanal bir makineyi temsil eder. Sanal makineler genellikle konuk VM'ler gibi konuk olarak veya etki alanları olarak da adlandırılır .
Klasik olarak, Popek ve Goldberg'in makalesinde , sanal makine , sanal makine monitörü ( VMM ) tarafından desteklenen gerçek makinenin verimli , yalıtılmış , kopyası olarak alınır . VMM aslında VM'lerin var olmasını sağlayan katmandır.
(4) VMM için Özellikler
Yazılımın bir parçası olarak, sanal makine monitörünün üç temel özelliği vardır:
Aslında sanallaştırma yapmanın bazı nedenleri var,
(1) İki Tür Sanallaştırma Modeli
Sanallaştırma için teknik gereksinimleri açıklamadan önce, iki ana Sanallaştırma modeline bir göz atalım. Sanallaştırma için iki popüler model, çıplak metal (diğer adıyla hiper yönetici tabanlı ) model ve barındırılan model olarak adlandırılır . Ayrıca, genellikle hiper yönetici tabanlı model için tip 1 ve sanallaştırma çözümleri için barındırılan model için tip 2 olarak anılırlar .
(2) Çıplak Metal Sanallaştırma (BMV)
Çıplak metal modelde, fiziksel kaynakların yönetiminden bir VMM (veya hiper yönetici olarak adlandırılır ) sorumludur ve tüm sanal makinenin yürütülmesini destekler.
Ancak bu modelin aygıt sürücüleriyle ilgili bir sorunu var. Modele göre, hiper yönetici tüm olası cihazları yönetmelidir veya farklı bir şekilde ifade edilirse, cihaz üretimi artık sadece farklı işletim sistemleri için değil, aynı zamanda farklı hiper yönetici türleri için de cihaz sürücüleri sağlamak zorundadır. Bu pratikte israf olabilir.
(3) Hizmet VM
Bu sorunu ortadan kaldırmak için, hiper yönetici modeli tipik olarak , standart bir işletim sistemini çalıştıran ve her türlü donanım manipülasyonuna erişmek ve gerçekleştirmek için tam donanım ayrıcalıklarına sahip hizmet sanal makinesi adı verilen özel bir sanal makineyi entegre eder.
Ayrıcalıklı sanal makine,
Hem açık kaynaklı sürüm hem de Citrix tarafından desteklenen sürüm için, sanallaştırılmış Xen ortamında çalıştırılan VM'ler etki alanları olarak adlandırılır . Xen'in organizasyonu,
dom0: ayrıcalıklı alan veya hizmet sanal makinesi
domU: konuk sanal makineleri
VMware ve hipervizörlerinin pazara ilk giren olduğu düşünüldüğünde, VMware hala en büyük sanallaştırılmış sunucu çekirdeklerine sahip.
Tarihsel nedenlerden ötürü, VMware tüm sürücülerin hipervizörün parçası olduğu eski bir modeli kullanıyor. Ancak bu iki nedenden dolayı mümkündür. İlk olarak, VMWare, farklı aygıtlar için sürücüleri sağlamak üzere satıcılar tarafından yetkilendirilmiştir. İkincisi, bu o kadar da kötü değil çünkü VMware gerçekten sunucuyu hedefliyor ve PC pazarı gibi çok sayıda cihaz olmayacak.
Üçüncü taraf geliştiriciler topluluğunu desteklemek için, VMware aslında bir dizi API'yi de dışa aktarır. Ve geçmişte ESX mimarisi, Linux tabanlı bir kontrol çekirdeği olacak şekildeydi. Ancak şu anda, konfigürasyonla ilgili tüm görevler uzak API'ler aracılığıyla yapılandırılıyor .
(6) Barındırılan Sanallaştırma Modeli
Çıplak metal model ile barındırılan model arasındaki temel fark, barındırılan modelin en düşük seviyesinde, tüm donanım kaynaklarını yöneten tam teşekküllü bir ana işletim sistemi olmasıdır.
Sunucu İşletim Sistemi bütünleştirir bir VMM modülü kendi sanal platformu arayüzü ile sanal makineler sağlamak için ve ek olarak vb bağlam anahtarlama planlama, tüm yönetiminden sorumludur, çağıracağı bu VMM modülü sürücüleri olarak ana işletim sisteminin veya diğer bileşenleri gerekli.
Bu modelin birçok faydası vardır.
Hosted modelin bir örneği olan KVM açılımı, çekirdek tabanlı VM ve bu Linux işletim sistemi üzerine kuruludur. Konuk VM'leri çalıştırma desteği, KVM modülünün ve X86 Intel veya AMD gibi aynı donanım simülasyonlarını sağlamak için sanallaştırıcı olarak kullanılan QEMU adlı bir donanım öykünücüsünün bir kombinasyonudur . Bunun nedeni, sanallaştırmanın amacının aynı donanımı sağlamak olmasıdır, ancak aynı donanımı bulmamız imkansız olabilir.
KVM için büyük bir fayda, büyük Linux açık kaynak topluluğuna sürekli olarak katkıda bulunan tüm ilerlemelerden gerçekten yararlanabilmesidir. Bu nedenle KVM, yeni donanım özelliklerine, yeni cihazlara, yeni güvenliğe, hatalara veya benzer şeylere hızla uyum sağlayabilir.
Aslında KVM Modülü, ticari platformlarda ortaya çıkmaya başlayan sanallaştırma ile ilgili donanımların bazılarından faydalanmak üzere Linux uygulamalarının düzenli kullanımına izin vermek için orijinal olarak bir Linux modülü olarak geliştirilmiştir. Birdenbire, kullanıcılar bunun konuk VM'leri çalıştırmak için yararlı olabileceğini fark ettiler. Ve üç ay sonra KVM, ana akım Linux çekirdeğinin bir parçası olan gerçek bir sanallaştırma çözümüydü.
3. Donanım Koruması
(1) x86 Mimarisi için Koruma Düzeyleri
Emtia donanımının gerçekte ikiden fazla koruma düzeyine sahip olduğunu gözlemlemek büyük bir şans. X86 mimarisine bakıldığında, halkalar adı verilen 4 koruma seviyesi vardır .
Bu koruma seviyelerinin kullanılmasının bir yolu, hipervizörü şimdi 0 halkasına koymaktır, yani bu, donanım üzerinde tam kontrole sahip olan, uygulamaları halka 3 seviyesinde çalıştırmak için bırakan ve ardından işletim sistemi çalıştıracaktır. halkada 1 seviyesinde.
(3) x86 Mimarisi için Koruma Modları
Daha yeni x86 mimarileri ayrıca kök modu ve kök olmayan mod olarak adlandırılan iki farklı koruma modu sunar . Bu modların her birinde dört koruma seviyesi vardır, bu nedenle bu koruma halkalarının iki katı vardır.
Kök modunun 0 halkası, hipervizörü çalıştıracağımız yerdir. Bunun tersine, root olmayan modda, belirli işlem türlerine izin verilmediğinden, konuk VM'ler bu root olmayan modda yürütülecektir. Bu nedenle, uygulamaları 3. halkada çalışacak ve işletim sistemleri root olmayan modda halka 0 ayrıcalık seviyesinde çalışacaktır.
(5) Kök-Kök Olmayan Geçiş: VMexits ve VMentry
Bazen konuk işletim sisteminin bazı ayrıcalıklı işlemleri gerçekleştirmesi gerekir, o zaman işlemi kök-kök olmayan sınırın ötesine geçirmeliyiz. Konuk işletim sisteminin ayrıcalıklı işlemleri gerçekleştirme girişimlerine VMexits adı verilir . Ve bunlar, bu kök moduna bir geçişi tetikler ve kontrolü hipervizöre iletir.
Hiper yönetici çalışmasını tamamladığında , yürütmenin devam etmesi için 0'ı çalmak üzere modu kök olmayan moda geçiren bir VMentry gerçekleştirerek kontrolü sanal makineye geri gönderir .
4. İşlemci (CPU) Sanallaştırma
(1) Yakala ve Taklit Et Tekniği
Şimdi, konuk işletim sistemi talimatları uygulamaya başladığında ne olacağını tartışalım.
Şimdi bir sorumuz olabilir. Konuk talimatları, koruma konularıyla ilgili olarak doğrudan donanım tarafından yürütülebilir mi? Bu sorunun cevabı evet ve konuğun ayrıcalıklı olmayan talimatları doğrudan donanım tarafından yürütülüyor . VMM, konuk işletim sistemi tarafından verilen her talimata müdahale etmez çünkü VM'nin bir amacı verimliliktir ve donanım hızına ulaşmak istiyoruz . Konuk işletim sistemi ve uygulamaları, hipervizör tarafından kendilerine tahsis edilen kaynaklar dahilinde çalıştığı sürece, her şey güvenlidir .
Bununla birlikte, ayrıcalıklı talimatlar verdiğimizde işler oldukça farklıdır çünkü sistemi korumak için hipervizör dahil edilmelidir. Ayrıcalıklı bir talimata her erişildiğinde, işlemci bir tuzağa neden olur ve kontrol otomatik olarak en ayrıcalıklı hipervizöre geçer. Bu noktada, hipervizör işlemin olup olmadığını belirleyebilir,
(2) Yakala ve Taklit Et Tekniği Sorunu
Şimdi, yakala ve taklit etme tekniği, konuk VM'ler için işlemcileri simüle etmek için iyi ve güzel görünüyor. Ancak 90'lı yıllarda sanallaştırma çözümlerini yaygın olan x86 mimarisine yeniden uygulama ihtiyacı gündeme geldi. Ve bu modelde bazı problemler olduğu ortaya çıktı.
O zamanlar x86 platformlarında sadece 4 halka vardı . Kök veya kök olmayan mod için herhangi bir destek yoktu. Ve böylece onları sanallaştırmanın yolu, hipervizörü halka 0'da ve konuk işletim sistemini halka 1'de çalıştırmak olacaktır. 0, örneğin POPF / PUSHF talimatları) halka 1 koruma seviyesinden veya daha üst seviyeden çağrıldıklarında tuzaklara neden olmaz. Bu talimatlar 2005 öncesi mimaride halka 1'den yayınlandığında, başarısız olurlar ve talimat boru hattının bir sonraki talimata devam etmesine izin verilir.
Tuzak olmaması durumundaki sorun, çünkü x86 da dahil olmak üzere çoğu gerçek dünya komut seti, sanallaştırma göz önünde bulundurularak tasarlanmamıştır. Sonuç olarak, ilgili tuzak tesisine sahip olmayan ayrıcalıklı talimatlar vardır. Böylece kontrol, hipervizöre geçmez ve hipervizörün, işletim sisteminin kesinti durumunu değiştirmek istediğine dair hiçbir fikri yoktur. Daha sonra hiper yönetici bu ayarları değiştirmek için hiçbir şey yapmayacaktır.
Aynı zamanda, talimatın başarısızlığı sessiz olduğu için, işletim sistemi, konuk işletim sistemi yanlış bir şey olduğunu bilmiyor. Böylece işletim sistemi, kesintilerin amaçlandığı gibi doğru bir şekilde etkinleştirildiğini veya devre dışı bırakıldığını varsayarak yürütmeye devam edecek ve bu da bozuk bir duruma veya kilitlenme durumuna neden olacaktır. Açıkça bu büyük bir sorundur ve bu tuzakla ve öykünme yaklaşımını bu mimari için uygulanamaz hale getirir.
(3) İkili Çeviri Tekniğinin Tarihçesi
Tuzaksız sorunla başa çıkmanın bir yolu ikili çeviri olarak adlandırılır. Stanford'da profesör Mendel Rosenblum öncülüğünü yapıyor ve daha sonra bu proje VMware olarak ticarileştiriliyor. VMware, sunucu pazarındaki sanallaştırılmış çekirdeklerin açık ara en büyük payına sahip olmaya devam ediyor.
Rosenblum daha sonra ACM Fellow ödülünü aldı ve takdir edildiğinde, sanallaştırmayı yeniden icat ettiği için özel olarak kredilendirildi. Yaklaşık on yıl boyunca VMware'in baş bilim adamı olarak görev yaptı ve şimdi Stanford'da tam zamanlı olarak geri döndü.
(4) İkili Çeviri Tekniği
İkili çevirinin ana fikri zor değil. Bunun yerine ayrıcalıklı talimatları algılayıp hipervizoründe ya da ana bilgisayara üzerindeki kontrolü geçmek işlemcinin kendisi bağlı olarak, sanallaştırma yazılımı içinde talimat akışını denetler yazılım . Yazılım biz o zaman bu talimat ikili kod olacak 17 talimatlardan birini veren olduğunu algıladığında yeniden yazılması (veya sözde tercüme diğer bazı kodlara). Bu çeviri dinamik bir şekilde yapılmalıdır çünkü çeviriyi yaparken bazı parametrelere ihtiyacımız olabilir. Dolayısıyla, resmi bir ikili çevirinin aşağıdaki adımları içermesi gerekir:
İdeal bir VM için istediğimizin, konuk işletim sisteminin tam olarak aynı kopyasına sahip olmak istediğimizi ve konuk işletim sisteminin sanal bir makinede çalıştığını bilmemesi için hiçbir şeyin değiştirilmesine gerek olmadığını tartıştık. Buna tam sanallaştırma denir .
Bununla birlikte, tamamen farklı bir fikir, değiştirilmemiş işletim sistemlerini çalıştırma hedefinden vazgeçmektir. Bunun yerine, birincil hedef, performans sunan ve değiştirilmemiş konukları desteklemek için gerekli olan karmaşıklıkların herhangi biriyle ilişkili olabilecek bazı ek yüklerden kaçınan bir sanallaştırma çözümü sunmaktır . Tam sanallaştırmanın aksine buna paravirtualization denir .
(6) Hiper Çağrı Yaklaşımı
Paravirtualization ile, konuk işletim sistemi, yerel fiziksel kaynakların üstüne değil, bir hipervizörün üstünde sanallaştırılmış bir ortamda çalıştığını artık bilecek şekilde değiştirilir. Para-sanallaştırılmış bir konuk işletim sistemi, başarısız olacağını bildiği işlemleri doğrudan gerçekleştirmeye çalışmayacaktır. Bunun yerine, istenen davranışı talep etmek için hipervizöre açık çağrılar yapacaktır. Hipervizörün için Bu çağrılar denir hypercalls sistem çağrıları gibi bir şekilde davranırlar. Bu nedenle, hiper arama yapmak için aşağıdaki adımlara sahibiz,
5. Bellek Sanallaştırma
(1) Sanal Adres Vs. Fiziksel Adres Vs. Makine Adresi
Önceki bölümlerin tartışmasında, sanal adres ile fiziksel adres arasındaki farkı tartıştık. Sanal adres alanı uygulamalar tarafından görüntülenebilir ve fiziksel adres alanı OS yöneten gerçek adres alanıdır edilebilir adres alanıdır.
Bununla birlikte, sanallaştırmaya sahip olduğumuzda , konuk işletim sistemi tarafından görüntülenen fiziksel adres alanı gerçek adresle aynı olmayacaktır. Bunun yerine, konuk işletim sisteminin fiziksel kaynakların adresleri olduğunu düşündükleri bunlar olacaktır. Ardından makine adresleri , temel platformdaki makinedeki gerçek adreslerin adı olur.
(2) Tam Bellek Sanallaştırma
Tam bellek sanallaştırma, tüm konuk VM'lerin 0 adresinden başlayan kendi bitişik fiziksel belleğine sahip olmasını beklediği anlamına gelir. Donanım düzeyinde, MMU veya TLB gibi bir dizi bellek yönetim birimine sahip olduğumuzu ve bunların yine de yardımcı olabileceğini unutmayın. adres çeviri süreci ile.
(3) Tam Bellek Sanallaştırma Seçeneği # 1: Doğrudan Çeviri
En basit fikir, makine adresini bulmak için iki çeviri yapabileceğimizdir. Biri, konuğun sayfa tabloları tarafından desteklenen geleneksel V2P çevirisi, diğeri ise hiper yönetici tarafından desteklenen bir P2M (fizikselden makineye) çeviridir.
Bununla birlikte, açıkça, bu seçenek her bir bellek referansına ek yükler eklediğinden çok pahalı olacak ve yerel donanım hızlarında çalışma yeteneğini yavaşlatacaktır .
(4) Tam Bellek Sanallaştırma Seçeneği # 2: Gölge Sayfa Tablosu
Bir önceki modeli geliştirmek için bir yolu hipervizör bir sabit düzeyde kalıyor gölge sayfa tablosunu aslında misafirler bu fiziksel adreslere eşlenen sanal adresleri ve sonra gölge sayfa tablosunda, doğrudan bir kurar neyi bakar ki, konuk tarafından kullanılan VA'lar ile hiper yönetici tarafından kullanılan MA'lar arasında eşleme. MMU bu gölge PT'yi kullanıyorsa, doğrudan V2M çevirileri yapabiliriz.
Konuk işletim sistemi, konuk tarafından kullanılan PT'lere yeni V2P adres eşlemesi yüklemeye çalıştığında, bu , hiper yönetici için bir tuzağa neden olacaktır . Daha sonra hiper yönetici bu VA'yı alabilir ve ardından ilgili makine adresini ilişkilendirebilir ve bu eşlemeyi donanım MMU'su tarafından kullanılan gölge PT'ye yerleştirebilir. Bu, konuk işletim sistemine tamamen şeffaf bir şekilde yapılabilir .
(5) Bellek Paravirtualized Sanallaştırma
Para-sanallaştırılmış sistemlerde, işletim sistemi sanallaştırılmış bir ortamda yürütüldüğünü bilir. Dolayısıyla misafirin kullanmak isteyeceği fiziksel adresler aşağıdaki özelliklere sahiptir,
6. Cihaz Sanallaştırma
(1) Cihaz Sanallaştırmasının Çeşitlilik Sorunu
Bellek sanallaştırma ve işlemci sanallaştırma hakkında konuştuk, ancak bunlar cihaz sanallaştırma kadar çeşitli değiller. Ayrıca, standartlaştırılmış arayüzler ve davranışlar da eksiktir. Bu çeşitliliğin üstesinden gelmek için sanallaştırma çözümleri, cihazları sanallaştırmak için üç temel modelden birini kullanır.
(2) Geçiş Modeli
Geçiş modelinin çalışma şekli, aygıtlar için erişim izinlerini yapılandırmaktan VMM düzeyindeki sürücünün sorumlu olmasıdır. Örneğin, bir Konuk VM'nin cihaz için kontrol kayıtlarının bulunduğu belleğe erişmesine izin verecektir.
Bu modelin faydaları şunlardır:
Bu modelde, VMM'nin tüm cihaz erişimlerine müdahale etmesi gerekir. VMM cihaz erişimine sahip olduktan sonra, cihaz çalışmasını taklit etmek için aşağıdaki işlemleri gerçekleştirecektir.
Son mod bölünmüş olarak adlandırılır çünkü tüm cihaz erişimleri hem konuk VM'de bulunan bir bileşeni hem de hiper yönetici katmanında bulunan bir bileşeni içeren bir şekilde kontrol edilir. Özellikle, aygıt erişimleri, ön uç aygıt sürücüsü adı verilen konuk VM'de bulunan bir aygıt sürücüsü kullanılarak kontrol edilir . Hizmet VM'sindeki (veya tip-2 sanallaştırma için kayıp işletim sistemi) fiziksel aygıtın gerçek sürücüsüne arka uç sürücüsü denir .
Bu arka uç sürücünün mutlaka değiştirilmesi gerekmese de, konuktaki uygulamalar tarafından yapılan cihaz işlemlerini alıp özel bir mesaj gibi bir araya getirmesi gerektiğinden, ön uç sürücünün değiştirilmesi gerekir. bu, doğrudan hizmet sanal makinesinde bulunan bu arka uç bileşenine aktarılacaktır. Bu nedenle, bu yaklaşım esasen yalnızca bu özel ön uç aygıt sürücülerini açıkça yükleyebilecek paravirtualized misafirler için geçerlidir .
Bu modelin faydaları şunlardır:
Biçimsel bir sistem, temel sembollerden ve bu sembolleri manipüle etmek için bir dizi kuraldan oluşan bir mantık yapısıdır. Bu semboller “temeldir” çünkü içsel bir anlamları yoktur.
Bu gönderi, DFINITY ekibinin merkezi olmayan bulut vizyonunu ve bunun geleneksel blok zinciri ve Amazon Web Servisleri gibi mevcut bulut sağlayıcılarıyla ilişkisini araştırıyor. Büyük ölçekli bir ağ tarafından uygulanan DFINITY teknolojisinin gösterimleri 2017 sonbaharında yapılacak ve bunu, 2018 yazının başlarında piyasaya sürülmesi beklenen “açık bulut” ağıyla kâr amacı gütmeyen vakıf için bir Ana bağış toplama izleyecektir. .
28 Temmuz 2022'de Güneş, Yeni Ay, Aslan'da Ceres kavuşumu Jüpiter RX'i üçgen yapacak, Merkür ise Uranüs'ü Merkür, Uranüs-Mars, Satürn'e T-karesinin bir parçası olarak veya düğümler ise sabit bir Büyük Haç ile kare yapacak. dahildir. Venüs, Kara Ay Lilith ve Yengeç burcundaki sabit yıldız Sirius ile kavuşum halindedir.
Amerikalı koşucu Athing Mu, profesyonel kariyerinde ilk kez 800 metrelik bir yarışı kaybedebilirmiş gibi görünüyordu. Mu, tipik olarak, az kol hareketi ve görünüşte az enerji içeren benzersiz ve zahmetsiz bir adımla yarışlarına hükmeder.
Yaz sonu ve sonbahar nostaljik mevsimlerdir. Sokak lambaları ışıklarını yağmurlu sokaklara saçıyor ve ayakların altındaki yapraklar - alacakaranlığın gölgelerinde soluk kırmızı-turuncu - geçmiş günlerin bir hatırlatıcısı.