Hypervizor

Hypervizor (též Virtual Machine Monitor, Virtual Machine Manager, VMM) je v informatice označení pro jednu z technik virtualizace hardwaru počítače, která umožňuje na jednom počítači spustit zároveň více operačních systémů.

Hypervizor je pro hostovaný systém nejvyšším arbitrem, který řídí přístup virtualizovaných počítačů (hostovaný systém, anglicky guest) k hardwaru počítače (hostitelský systém, hostitel, anglicky host), řídí jejich běh a zároveň je od sebe odděluje.

Rozdělení

Robert P. Goldberg rozlišuje dvě třídy hypervizorů:[1]

Typ 1 (nativní)
Hypervizor typu 1 běží přímo na hostitelském hardwaru. Zde monitoruje a řídí běh virtualizovaných strojů (guestů) z hlediska hardwarových prostředků. Hostovaný operační systém tak funguje na jiné úrovni, pod hypervizorem. Tento model představuje klasické provedení architektury virtuálního stroje, původní hypervizor byl CP/CMS, vyvinutý v IBM v roce 1960. Dnes tento typ můžeme najít například u hypervizoru ESXi od firmy VMware.
Typ 2 (hostovaný)
Hypervizor typu 2 je spuštěn v konvenčním prostředí operačního systému. Vrstva hypervizora se nachází nad vrstvou operačního systému.

Podle implementace

Podle způsobu, jakým je hypervizor implementován, rozlišujeme hardwarovou virtualizaci umožňující virtualizaci nemodifikovaných operačních systémů (resp. jejich nemodifikovaných jader), která avšak vyžaduje podporu virtualizace přímo v procesoru, a softwarovou virtualizaci, která je obvykle méně výkonná, protože jednoduché operace vstupu a výstupu musí být obsluhovány komplexními obslužnými funkcemi. Určitým kompromisem je implementace paravirtualizace, která spojuje výhody obou řešení (umožňuje svižný běh nemodifikovaných systémů, avšak je nutná hardwarová podpora v procesoru).

Související informace naleznete také v článku Virtualizace.

PC a desktopové systémy

Na 16bitové architektuře x86 nebylo možné hypervizor naprogramovat. Teprve 32bitová architektura mikroprocesoru Intel 80386 (IA-32) umožnila vyvinout softwarový hypervizor. Jeden z prvních PC hypervizorů byl v roce 1998 hypervizor od firmy VMware, případně Parallels Workstation od firmy Parallels, Inc. z roku 2005. O rok později vznikl Parallels Desktop pro počítače firmy Apple, který běžel na Mac OS X.

Na platformě PC byla hardwarová virtualizace, která vyžaduje podporu přímo v procesoru, uvedena až na 64bitových procesorech. Firma Intel ji uvedla na trh v roce 2005 (VT-x, kódový název Vanderpool) a firma AMD v roce 2006 (AMD-V, kódové jméno Pacifica).

Historie

Prvním hypervizorem poskytující plnou virtualizaci se stal výzkumný systém CP-40 od firmy IBM, který byl vyroben v roce 1967 a stal se tak první verzí operačního systému CP/CMS firmy IBM. Systém CP-40 běžel na počítačích typu S/360-40, které poskytovaly podporu virtualizace. Důležité bylo, aby virtualizovaný hardware dovolil spouštět více uživatelských aplikací (CTSS a IBM M44/44X) i systémů současně. Hypervizor dodnes běží na holém mainframe hardwaru a přiděluje fyzické součásti jako jsou procesory, zařízení pro přímý přístup ke vstupně-výstupním zařízením a paměti.

Programátoři brzy inovovali CP-40 na systém CP-67 pro IBM S/360-67, první počítačový systém schopný plné virtualizace. IBM vyrobila podobný stroj již v roce 1966, ten zahrnoval tabulky stránek pro virtuální paměť a další techniky, které umožňovaly plnou virtualizaci jádra, včetně vstupu, výstupu a obsluhy přerušení. Oba systémy jak CP-40, tak i CP-67 se začaly vyrábět v roce 1967. CP/CMS bylo k dispozici zákazníkům firmy IBM v rozmezí let 1968–1972 sice ve formě zdrojových kódů, ale bez technické podpory.

Vestavěné systémy

Od roku 2009 se začaly objevovat virtuální stroje i v oblasti vestavěných systémů, jakou jsou například mobilní telefony, což umožnilo vysokou flexibilitu programování aplikací pro operační systémy, jako jsou Linux a Microsoft Windows, přičemž zůstávají současně zachovány klasické vlastnosti operačního systému reálného času (RTOS).

Vestavěné hypervizory tak musí mít specifické realtimové schopnosti. Omezené zdroje mnoha vestavěných systému, zejména bateriově poháněné mobilní systémy, vyžadují zachování co nejnižší režie a i paměťových nároků. Podpora virtualizace vyžaduje ochranu paměti a podporu privilegovaného režimu, což bohužel vylučuje většinu jednoduchých mikroprocesorů (x86, MIPS, ARM, PowerPC).

Bezpečnostní rizika

Pokud by došlo ke zneužití technologie hypervizora škodlivým softwarem (tzv. malware), mohl by škodlivý software získat přednostní přímý přístup k hardwaru počítače a zároveň aktivně skrývat svoji přítomnost v operačním systému (tj. chovat se jako pokročilý rootkit). Hostovaný operační systém má totiž jen omezené možnosti, jak hypervizor detekovat, pokud mu k tomu hypervizor sám nedá příležitost (cílem virtualizace je před hostovaným systémem úplně skrýt, že nemá hardware počítače jen pro sebe). Antivirové programy by byly nefunkční. K implementaci této nebezpečné koncepce došlo údajně v laboratořích SubVirt (společný vývoj společnosti Microsoft a Univerzity v Michiganu),[2] stejně tak jako u nástroje zvaného Blue Pill.

V roce 2009 vývojáři ze společnosti Microsoft a univerzity ze Severní Caroliny demonstrovali tzv. anti-rootkit hypervizor s názvem Hooksafe, který pomocí mezivrstvy poskytuje obecně použitelnou ochranu právě proti rootkitům založeným na funkci hypervizora.[3]

Reference

V tomto článku byl použit překlad textu z článku Hypervisor na anglické Wikipedii.

  1. GOLDBERG, Robert P. Architectural Principles for Virtual Computer Systems. www.dtic.mil. Harvard University, 1973, s. 22–26. Dostupné v archivu pořízeném dne 2011-06-05. (anglicky) 
  2. SubVirt: Implementing malware with virtual machines [online]. University of Michigan, Microsoft, 2006-04-03 [cit. 2008-09-15]. Dostupné online. (anglicky) 
  3. Zhi Wang, Xuxian Jiang, Weidong Cui & Peng Ning. Countering Kernel Rootkits with Lightweight Hook Protection. research.microsoft.com. Microsoft/North Carolina State University, 11 August 2009. Dostupné online [cit. 2009-11-11]. (anglicky) 

Související články

Externí odkazy