Hipervizör

Bir hiper yönetici veya sanal makine monitörü (VMM), sanal makineleri oluşturan ve çalıştıran bilgisayar yazılımı , bellenim veya donanımdır . Bir hipervizörün bir veya daha fazla sanal makineyi çalıştırdığı bir bilgisayara ana makine adı verilir ve her sanal makineye konuk makinesi adı verilir. Hiper yönetici, konuk işletim sistemlerini sanal işletim platformuyla sunar ve konuk işletim sistemlerinin yürütülmesini yönetir. Çeşitli işletim sistemlerinin birden fazla örneği sanallaştırılmış donanım kaynaklarını paylaşabilir: örneğin, Linux , Windows ve macOS örneklerinin tümü tek bir fiziksel x86 makinede çalışabilir. Konuk işletim sistemleri aynı çekirdeğe sahip farklı Linux dağıtımları gibi kullanıcı alanında farklılık gösterebilse de, bu, tüm örneklerin (genellikle kapsayıcılar olarak adlandırılır) tek bir çekirdeği paylaşması gereken işletim sistemi düzeyinde sanallaştırma ile çelişir.

Hipervizör terimi, bir işletim sisteminin çekirdeği için geleneksel bir terim olan bir süpervizör çeşididir : hipervizör, süpervizörünün süpervizörüdür, süper güçlü bir değişken olarak kullanılanhiperile - r Super- . Bu terim 1970 dolaylarındadır; önceki CP/CMS (1967) sisteminde bunun yerine Kontrol Programı terimi kullanılmıştır.

Bu hipervizörler, donanımı kontrol etmek ve konuk işletim sistemlerini yönetmek için doğrudan sunucunun donanımında çalışırlar. Bu nedenle, bazen bare metal hipervizörleri denir. IBM'in 1960'larda geliştirdiği ilk hipervizörler, native hipervizörlerdi.. Bunlara SIMMON test yazılımı ve CP/CMS işletim sistemi (IBM'in z/VM'nin selefi) dahil edildi. Modern eşdeğerler arasında AntsleO'lar, Xen, XCP-ng, SPARC için Oracle VM Sunucusu, x86 için Oracle VM Sunucusu, Microsoft Hyper-V, Xbox One sistem yazılımı ve VMware ESX/ESXi bulunur.

Bu hipervizörler, diğer bilgisayar programlarında olduğu gibi geleneksel bir işletim sisteminde (OS) çalışır. Konuk işletim sistemi, ana bilgisayarda bir işlem olarak çalışır. Tip 2 hipervizörleri, konuk işletim sistemlerini ana bilgisayar işletim sisteminden soyutlar. VMware Workstation, VMware Player, VirtualBox, Mac için Parallels Desktop ve QEMU tip 2 hiper yönetici örnekleridir.

Bu iki tip arasındaki ayrım her zaman net değildir. Örneğin, Linux'un Çekirdek Tabanlı Sanal Makinesi (KVM) ve FreeBSD'nin BHyVe, ana bilgisayar işletim sistemini etkili bir tip 1 hiper yöneticiye dönüştüren çekirdek modülleri. Aynı zamanda, Linux dağıtımları ve FreeBSD hala genel amaçlı işletim sistemleri olduğundan, VM kaynakları için birbirleriyle rekabet eden uygulamalar, KVM ve bhyve de tip 2 hiper denetleyiciler olarak kategorize edilebilir.

Tam sanallaştırma sağlayan ilk hipervizörler, Ocak 1967'de üretime başlayan ve IBM'in CP/CMS işletim sisteminin ilk versiyonu olan test aracı SIMMON ve IBM'in araştırma sistemi CP-40 idi. CP-40, sanallaştırmaya izin veren önemli bir özellik olan Dynamic Address Translation'ı desteklemek için IBM Cambridge Scientific Center'da değiştirilmiş bir S/360-40 üzerinde çalıştı. Bu süreden önce, bilgisayar donanımı yalnızca birden fazla kullanıcı uygulamasının aynı anda çalışmasına izin verecek kadar sanallaştırılmıştı (bkz. CTSS ve IBM M44/44X). CP-40 ile donanımın denetleyici durumu da sanallaştırılarak birden fazla işletim sisteminin aynı anda ayrı sanal makine bağlamlarında çalışmasına izin verildi.

Programcılar yakın zamanda, tam sanallaştırma yapabilen ilk üretim bilgisayarı olan IBM System/360-67 için CP-40'ı (CP-67 olarak) uyguladılar .IBM, bu makineyi ilk kez 1966'da gönderdi; sanal bellek için sayfa çeviri tablosu donanımı ve I/O ve interrupt işlemesi de dahil olmak üzere tüm çekirdek görevlerinin tam olarak sanallaştırılmasını sağlayan diğer teknikleri içeriyordu.(“Resmi” işletim sistemi, kötü niyetli TSS/360'ın tam sanallaştırma kullanmadığına dikkat edin.) Hem CP-40 hem de CP-67, 1967'de üretime başladı. CP/CMS ,IBM müşterilerine 1968'den 1970'lerin başlarına, desteksiz olarak kaynak kod biçiminde ulaşılabilirdi.

CP/CMS, IBM'in ana bilgisayarları için sağlam zaman paylaşımı sistemleri kurma girişiminin bir parçası oldu. Aynı anda birden fazla işletim sistemi çalıştırarak, hiper yönetici sistem sağlamlığını ve dengesini arttırdı: Bir işletim sistemi çökse bile, diğerleri kesintisiz çalışmaya devam ederdi. Aslında, bu bile işletim sistemlerinin beta veya deneysel sürümlerinin —yeni donanımlar için bile olsa— kararlı ana üretim sistemini tehlikeye atmadan ve maliyetli ek geliştirme sistemleri gerektirmeden konuşlandırılıp hata ayıklanmasına izin verdi.

IBM, 1970 yılında System/370 serisini herhangi bir sanallaştırma özelliği olmadan duyurdu, ancak Ağustos 1972 Gelişmiş İşlev duyurusunda sanal bellek desteği ekledi. Takip eden tüm sistemlerinde (zSeries hattı gibi tüm modern IBM anabilgisayarları, 1960'lar dönemi olan IBM S/360 hattıyla geriye dönük uyumluluğu koruyor) sanallaştırma özelliği mevcut. 1972 duyurusu, S/370 için CP/CMS'nin bir yeniden uygulaması olan VM/370'ı da içeriyordu. CP/CMS'den farklı olarak, IBM bu sürüm için destek sağladı (yine de birkaç sürüm için kaynak kod biçiminde dağıtılmış olmasına rağmen).VM, donanım arayüzlerinin sadece bazılarının değil, hepsinin sanallaştırıldığını vurgulayarak Sanal Makine anlamına gelir. Hem VM hem de CP/CMS, üniversiteler, kurumsal kullanıcılar ve zaman paylaşımı sağlayıcılarının yanı sıra IBM dahilinde erken kabul görmüş ve hızlı bir gelişim göstermişlerdir. Kullanıcılar, modern açık kaynaklı projelerde görülen trendleri öngörerek devam eden gelişimde aktif rol oynadılar.Bununla birlikte, bir dizi tartışmalı ve acı savaşta, zaman paylaşımı, IBM'in politik mücadelesiyle toplu işleme için kaybedilmiş ve VM, yıllar boyunca IBM'in "diğer" ana bilgisayar işletim sistemi olarak kaldı ve MVS'yi kaybetti. 2000'den itibaren z/VM ürünü olarak, örneğin zSeries Linux için bir platform olarak popülerlik ve desteğin yeniden dirilişini yaşadı.

Yukarıda belirtildiği gibi, VM kontrol programı, sanal bir makinede kullanılan DIAG ("Diagnose", opcode x'83 ') komutlarını arayarak alan bir hipervizör çağrısı işleyicisi içerir. Bu, dosya sistemi erişiminin ve diğer işlemlerin hızlı yoldan sanallaştırılmamış olarak yürütülmesini sağlar (DIAG, normal programlamada kullanılmayan modele bağlı ayrıcalıklı bir talimattır ve dolayısıyla sanallaştırılmaz). Bu nedenle "ana bilgisayar" işletim sistemine bir sinyal olarak kullanılabilir). CP/CMS sürüm 3.1'de ilk kez uygulandığında, DIAG'ın kullanımı, Sistem/360 Supervisor Call instruction (SVC) benzer olan ancak sistemin SVC'nin sanallaştırılmasını değiştirmeyi veya genişletmeyi gerektirmeyen bir işletim sistemi arayüzü sağladı.

Sun Microsystems , HP , IBM ve SGI gibi belli başlı Unix satıcıları 2000'den beri sanallaştırılmış donanım satıyorlar. Bunlar genel olarak büyük, pahalı sistemler olmuştur (yüksek uçtaki milyonlarca dolar aralığında), ancak sanallaştırma IBM’in pSeries sunucuları, Sun / Oracle’ın T - serisi CoolThreads sunucuları ve HP Superdome serisi makineler.

HP, Itanium destekli sistemleri "Integrity Virtual Machines" (Integrity VM) üzerinde çoklu işletim sistemi teknolojisine ev sahipliği yapmak için teknolojisini çağırıyor. Itanium, HP-UX , Linux, Windows ve OpenVMS’leri çalıştırabilir . OpenVMS dışında, daha sonraki bir sürümde desteklenmesi dışında, bu ortamlar ayrıca HP'nin Integrity VM platformunda sanal sunucular olarak da desteklenir. HP-UX işletim sistemi, HP-UX’in birçok önemli özelliğinden faydalanılmasını sağlayan ve bu platform ile işlemci hotswap, bellek hotswap ve dinamik çekirdek gibi bu ürün ve diğer emtia platformları arasında büyük farklılıklar sağlayan Integrity VM hiper yönetici katmanını barındırıyor. Sistemin yeniden başlatılması olmadan güncellemeler. HP-UX'i yoğun bir şekilde kullanıyor olsa da, Integrity VM hipervizörü, konuklar çalışırken çıplak metal üzerinde çalışan bir melezdir. Bir Integrity VM ana bilgisayarında normal HP-UX uygulamalarını çalıştırmak, kesinlikle önerilmez.   çünkü Integrity VM, sanal makineler için ayarlanmış ve normal uygulamalar için etkili olmayan kendi bellek yönetimi, zamanlama ve I/O politikalarını uygulamaktadır. HP ayrıca, VPAR ve nPar teknolojisi ile Dürüstlük ve HP9000 sistemlerinin daha katı bir şekilde bölümlenmesini sağlar; eski paylaşılan kaynak bölümlemesi sunar ve ikincisi de eksiksiz I/O ve işleme yalıtımı sunar. Sanal sunucu ortamının (VSE) esnekliği, yeni dağıtımlarda daha sık kullanılmasına yol açtı.

Xen gibi açık kaynaklı projelerin sanallaştırma çabalarına öncülük ettiği x86 / x86-64 sunucu platformlarında da benzer eğilimler yaşanmıştır. Bunlar, Linux ve Solaris çekirdekleri üzerine inşa edilmiş hipervizörleri ve ayrıca özel çekirdekleri içerir. Bu teknolojiler büyük sistemlerden masaüstlerine kadar uzandığından, bir sonraki bölümde açıklanmaktadır.

Alternatif bir yaklaşım, konuk işletim sisteminin, hipervizörün simüle ettiği makine I/O talimatlarını uygulamak yerine, hipervizöre sistem çağrıları yapmak için değiştirilmesini gerektirir.Buna Xen'de paravirtualization, Parallels Workstation'da "hiper çağrı" ve IBM'in VM'sinde "DIAGNOSE kodu" denir. Hepsi gerçekten aynı şey, altta yatan hiper denetçiye bir sistem çağrısı. Mach ve L4 gibi bazı mikro çekirdekler, konuk işletim sistemlerinin "paravirtualization"'a mümkün olacak şekilde yeterince esnektir.

Gömülü sistemleri ve belirli gerçek zamanlı işletim sistemi (RTOS) ortamlarını hedef alan gömülü hiper denetleyiciler , sağlamlık, güvenlik ve gerçek zamanlı özellikler dahil olmak üzere masaüstü ve kurumsal sistemlere kıyasla farklı gereksinimlerle tasarlanmıştır. Pek çok gömülü sistemin, özellikle de pille çalışan mobil sistemlerin kaynak kısıtlı niteliği, küçük bellek boyutu ve düşük ek yük için başka bir gereklilik getirir. Son olarak, PC dünyasında x86 mimarisinin yaygınlığının aksine, gömülü dünya daha geniş çeşitlilikte mimariler ve daha az standartlaştırılmış ortamlar kullanıyor. Sanallaştırma desteği, bellek koruması (bir bellek yönetim birimi veya en azından bir bellek koruma birimi şeklinde) ve çoğu mikrodenetleyiciyi dışlayan kullanıcı modu ile ayrıcalıklı mod arasında bir ayrım gerektirir. Bu hala x86 , MIPS , ARM ve PowerPC'yi orta ila üst seviye gömülü sistemler üzerinde yaygın olarak kullanılan mimariler olarak bırakıyor.

Gömülü sistem üreticileri genellikle işletim sistemlerine yönelik kaynak koduna sahip olduklarından, bu alanda tam sanallaştırmaya daha az ihtiyaç duyarlar. Bunun yerine, paravirtüelleşmenin performans avantajları, bunu genellikle tercih edilen sanallaştırma teknolojisi yapar. Yine de, ARM ve MIPS yakın zamanda bir IP seçeneği olarak tam sanallaştırma desteği ekledi ve bunu ARM Cortex-A15 MPCore ve ARMv8 EL2 gibi en son teknolojiye sahip işlemcilerine ve mimari sürümlerine dahil etti.

Sunucu/masaüstündeki sanallaştırma ve gömülü ortamlar arasındaki diğer farklar arasında, sanal makineler arasında kaynakların verimli bir şekilde paylaşılması, yüksek bant genişliği, düşük gecikmeli VM'ler arası iletişim, zamanlamanın ve güç yönetiminin global bir görünümü ve bilgi akışlarının ayrıntılı bir şekilde kontrol edilmesi gerekliliği vardır.

Hyperjacking olarak bilinen, işletim sisteminin altına hiper yönetici olarak kendilerini yükleyen, kötü amaçlı yazılım ve rootkitler tarafından hipervizör teknolojisinin kullanılması, kötü amaçlı yazılımın işletim sisteminin herhangi bir işlemini (bir parola giren biri gibi) işlemlerini engelleyebileceği için tespit etmelerini zorlaştırabilir. kötü amaçlı yazılımdan koruma yazılımı mutlaka onu algılar (kötü amaçlı yazılım tüm işletim sisteminin altında çalıştığı için). Konseptin uygulamasının, SubVirt laboratuvarının kök setinde (Microsoft ve University of Michigan araştırmacıları birlikte geliştirilmiştir) ve Blue Pill malware paketinde gerçekleştiği iddia edildi. Bununla birlikte, bu tür iddialar, hiper yönetici tabanlı bir kök setinin varlığını tespit etmenin mümkün olacağını iddia eden diğerleri tarafından tartışılmıştır.

2009 yılında, Microsoft ve Kuzey Carolina Eyalet Üniversitesi'nden araştırmacılar, çekirdek modu kök kitlelerine karşı genel koruma sağlayabilen Hooksafe adlı bir hiper yönetici katmanı anti-rootkit sergilediler.