Միջուկի վրա հիմնված վիրտուալ մեքենա

**Կերնելի վրա հիմնված վիրտուալ մեքենա,** (ԿՎՄ) (անգլերեն՝ Kernel-based Virtual Machine (KVM)) Linux կերնելում անվճար և բաց կոդով վիրտուալացման մոդուլ, որը թույլ է տալիս կերնելին գործել որպես հիպերվիզոր (hypervisor): Այն միացվել է հիմնական Linux կերնելին 2.6.20 թողարկումով, որը թողարկվել է 2007 թվականի փետրվարի 5-ին KVM-ին անհրաժեշտ է ապարատային վիրտուալացման ընդլայնումներով պրոցեսոր, ինչպիսիք են Intel VT-ն կամ AMD-V-ն : ԿՎՄ-ն նաև տեղափոխվել է այլ օպերացիոն համակարգեր, ինչպիսիք են FreeBSD և illumos ՝ բեռնվող կերնելի մոդուլների տեսքով։

ԿՎՄ-ն ի սկզբանե նախատեսված էր x86 պրոցեսորների համար, սակայն այն ժամանակից ի վեր տարբերակվեց ESA/390,  PowerPC, IA-64 և ARM : IA-64-ի տարբերակը հեռացվել է թողարկումների ցանկից 2014 թվականին

ԿՎՄ-ն աջակցում է  վիրտուալացմանը հյուր օպերացիոն համակարգերի լայն տեսականիով, նեռարում է BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS, macOS և նաև այլ Linux համակարգեր: Բացի այդ, հայտնի է, որ Android 2.2, GNU/Hurd ( Debian K16), Minix 3.1.2a, Solaris 10 U3 և Darwin 8.0.1, այլ օպերացիոն համակարգերի և թվարկված որոշ ավելի նոր տարբերակների հետ որոշակի քանակի սահմանափակումներով աշխատում է։

Բացի այդ, ԿՎՄ-ն ապահովում է պարավիրտուալացման աջակցություն Linux, OpenBSD, FreeBSD, NetBSD, Plan 9 և Windows հյուր համակարգերի համար՝ օգտագործելով VirtIO API-ն: Սա ներառում է պարավիրտուալ Ethernet քարտ, սկավառակի I/O կարգավորիչ, օդապարիկ դրայվեր (balloon driver) և VGA գրաֆիկական ինտերֆեյս՝ օգտագործելով SPICE կամ VMware դրայվերներ:

## Պատմություն
Avi Kivity-ը սկսեց KVM-ի զարգացումը 2006 թվականի կեսերից Qumranet- ում՝ տեխնոլոգիական ստարտափ ընկերությունում, որը ձեռք էր բերվել Red Hat-ի կողմից 2008 թվականին։

ԿՎՄ-ը առաջացել է 2006 թվականի հոկտեմբերին և միաձուլվել է Linux կերնելի հիմնական գծի կերնելի 2.6.20 տարբերակում, որը թողարկվել է 2007 թվականի փետրվարի 5-ին

KVM-ն պահպանում է Պաոլո Բոնզինին:

## Ներքին սարքերավորումներ
աջից|մինի|ԿՎՄ/QEMU վիրտուալացման միջավայրի բարձր մակարդակի ակնարկ։
KVM-ը ապահովում է սարքերի աբստրակցիա, բայց ոչ պրոցեսորի էմուլյացիա: Այն առաջացնում է է  ինտերֆեյս, որն այնուհետև օգտատիոջ ռեժիմի հոսթորդը կարող է օգտագործել՝

* Կարգավորեք հյուրի ՎՄ-ի հասցեների տարածքը: Հյուրընկալողը պետք է նաև տրամադրի որոնվածի պատկեր (սովորաբար անհատական BIOS, երբ ԱՀ-ները նմանակում են), որը հյուրը կարող է օգտագործել իր հիմնական ՕՀ-ում բեռնաթափելու համար:
* Տրամադրեք հյուրին նմանակված I/O:
* Հյուրի էկրանի ցուցադրումը ավելացրեք համակարգի հոսթի վրա:

Ի սկզբանե, QEMU-ի պատառաքաղված (forked) տարբերակը տրամադրվել էր հյուրերին էմուլացնելու և ապարատային էմուլյացիայի հետ աշխատելու համար, որը չէի կառավարվում կերնելի կողմից: Այդ աջակցությունը, ի վերջո, միաձուլվեց վերին նախագծին: Այժմ կան բազմաթիվ վիրտուալ մեքենաների մոնիտորներ (ՎՄՄ), որոնք կարող են օգտագործել ԿՎՄ ինտերֆեյսը, ներառյալ kvmtool-ը, crosvm-ը և Firecracker-ը և բազմաթիվ մասնագիտացված ՎՄՄ-ներ, որոնք կառուցված են այնպիսի շրջանակներով, ինչպիսիք են rust-վմմ-ն:

Ներքին առումով, ԿՎՄ-ը օգտագործում է SeaBIOS-ը որպես 16-բիթանոց x86 BIOS բաց կոդով իրականացում:

## Առանձնահատկություններ
ԿՎՄ-ը աջակցում է "տաք" փոխանակվող (hot swappable) vCPU-ներին, դինամիկ հիշողության կառավարմանը, և Live Migration-ին 2007 թվականի փետրվարից : Այն նաև նվազեցնում է հիշողության միգրացիաների գործընթացի վրա հիշողությունը գրելու ինտենսիվ աշխատանքային բեռների ազդեցությունը:

## Էմուլացված սարքավորում
ԿՎՄ-ն ինքն իրեն էմուլացնում է շատ քիչ սարքավորում՝ փոխարենը տեղափոխելով ավելի բարձր մակարդակի հավելված, ինչպիսին է QEMU, crosvm կամ Firecracker սարքի էմուլյացիայի համար:

ԿՎՄ-ը ապահովում է հետևյալ նմանակված սարքերը.

* Վիրտուալ պրոցեսոր և հիշողություն
* VirtIO

## Գրաֆիկական կառավարման գործիքներ
մինի|300x300փքս| libvirt-ն աջակցում է KVM-ին

* Kimchiվեբ վրա հիմնված վիրտուալացման կառավարման գործիք KVM-ի համար
* Virtual Machine Managerաջակցում է KVM-ի վրա հիմնված վիրտուալ մեքենաների ստեղծմանը, խմբագրմանը, գործարկմանը և դադարեցմանը, ինչպես նաև վիրտուալ մեքենաների կենդանի կամ սառը քաշել և թողնել միգրացիան հոսթերների միջև:
* Proxmox Virtual Environmentբաց կոդով վիրտուալացման կառավարման փաթեթ, ներառում է KVM և LXC : Այն ունի մերկ ֆիզիկական տեղադրող, վեբ վրա հիմնված հեռակառավարման միջերես, HA կլաստերային կույտ, միասնական պահեստ, ճկուն ցանց և կամընտիր կոմերցիոն աջակցություն:
* OpenQRMկառավարման հարթակ տվյալների կենտրոնների տարասեռ ենթակառուցվածքների կառավարման համար
* GNOME BoxesGnome ինտերֆեյս Linux-ում libvirt հյուրերին կառավարելու համար
* oVirtբաց կոդով վիրտուալացման կառավարման գործիք KVM-ի համար, որը կառուցված է libvirt-ի վրա

## Լիցենզավորում
ԿՎՄ-ի կերնելի ռեժիմի բաղադրիչը Linux կերնելի մի մասն է, որը լիցենզավորված է GNU Ընդհանուր հանրային լիցենզիայի 2-րդ տարբերակով :

## Մատենագիտություն
* 

## Արտաքին հղումներ
* Լավագույն փորձը միջուկի վրա հիմնված վիրտուալ մեքենայի համար,    ում, IBM, երկրորդ հրատարակություն, ապրիլ 2012 թ
* Virtio-blk Performance Improvement, KVM Forum 2012, Նոյեմբեր 8, 2012, Ասիա Հի կողմից
* Wikibook QEMU & KVM
* crosvm - Chrome OS վիրտուալ մեքենայի մոնիտոր
* Firecracker VMM KVM-ի համար

## Ծանոթագրություններ

Կատեգորիա:GNU GPL արտոնագրով ծրագրային ապահովումներ
Կատեգորիա:Ազատ ծրագրային ապահովում
Կատեգորիա:Լինուքսի ծրագրային ապահովում