कर्नेल-आधारित वर्चुअल मशीन

कर्नेल-आधारित वर्चुअल मशीन (केवीएम) लिनक्स कर्नेल में एक वर्चुअलाइजेशन मॉड्यूल है जो कर्नेल (ऑपरेटिंग सिस्टम) को सूत्र के रूप में कार्य करने की अनुमति देता है। इसे 2.6.20 संस्करण में मेनलाइन लिनक्स में मिला दिया गया था, जिसे 5 फरवरी, 2007 को जारी किया गया था। KVM को हार्डवेयर वर्चुअलाइजेशन एक्सटेंशन वाले प्रोसेसर की आवश्यकता होती है, जैसे Intel VT या AMD-V। KVM को अन्य ऑपरेटिंग सिस्टम जैसे FreeBSD में भी पोर्ट किया गया है और इलुमोस लोड करने योग्य कर्नेल मॉड्यूल के रूप में।

KVM को मूल रूप से x86 प्रोसेसर के लिए डिज़ाइन किया गया था, लेकिन तब से यह IBM ESA/390|S/390 में में porting हो रहा है। पावरपीसी, IA-64, और ARM आर्किटेक्चर। केवीएम लिनक्स, बीएसडी, सोलारिस (ऑपरेटिंग सिस्टम), माइक्रोसॉफ़्ट विंडोज़, हाइकू (ऑपरेटिंग सिस्टम), रिएक्टोस, बेल लैब्स से प्लान 9, एआरओएस रिसर्च ऑपरेटिंग सिस्टम और मैकओएस सहित विभिन्न प्रकार के गेस्ट ऑपरेटिंग सिस्टम के लिए हार्डवेयर-असिस्टेड वर्चुअलाइजेशन प्रदान करता है। इसके अलावा, एंड्रॉइड 2.2, जीएनयू / हर्ड (Debian K16), MINIX 3 3.1.2a, Solaris 10 U3 और Darwin (ऑपरेटिंग सिस्टम) 8.0.1, साथ में अन्य ऑपरेटिंग सिस्टम और इनमें से कुछ नए संस्करण सूचीबद्ध हैं, कुछ सीमाओं के साथ काम करने के लिए जाने जाते हैं। इसके अतिरिक्त, KVM Linux, OpenBSD, के लिए पैरावर्चुअलाइजेशन समर्थन प्रदान करता है। फ्रीबीएसडी, नेटबीएसडी योजना 9 और Windows अतिथि VirtIO API का उपयोग कर रहे हैं। इसमें एक पैरावर्चुअल ईथरनेट कार्ड, डिस्क I/O कंट्रोलर, गुब्बारा चालक, और SPICE (प्रोटोकॉल) या VMware ड्राइवरों का उपयोग करने वाला VGA ग्राफ़िक्स इंटरफ़ेस।

इतिहास
एवी किविटी ने केवीएम का विकास 2006 के मध्य में कुमरनेट, एक प्रौद्योगिकी स्टार्ट - अप कंपनी में शुरू किया जिसे 2008 में Red Hat द्वारा अधिग्रहित किया गया था। केवीएम अक्टूबर, 2006 में सामने आया और कर्नेल संस्करण 2.6.20 में लिनक्स कर्नेल मेनलाइन में विलय कर दिया गया था, जो 5 फरवरी 2007 को जारी किया गया था।

केवीएम का रखरखाव पाओलो बोनज़िनी द्वारा किया जाता है।

आंतरिक
KVM उपकरण अमूर्तता प्रदान करता है लेकिन कोई प्रोसेसर एमुलेशन नहीं। यह उजागर करता है /dev/kvm इंटरफ़ेस, जिसे उपयोगकर्ता मोड होस्ट इसके लिए उपयोग कर सकता है:
 * अतिथि VM का पता स्थान सेट करें। मेजबान को एक फर्मवेयर छवि भी प्रदान करनी चाहिए (आमतौर पर पीसी का अनुकरण करते समय एक कस्टम BIOS) जिसका उपयोग अतिथि अपने मुख्य ओएस में बूटस्ट्रैप करने के लिए कर सकता है।
 * अतिथि सिम्युलेटेड I/O फ़ीड करें।
 * अतिथि के वीडियो डिस्प्ले को वापस सिस्टम होस्ट पर मैप करें।

मूल रूप से QEMU का एक फोर्क्ड संस्करण मेहमानों को लॉन्च करने और हार्डवेयर एमुलेशन से निपटने के लिए प्रदान किया गया था जिसे कर्नेल द्वारा नियंत्रित नहीं किया जाता है। उस समर्थन को अंततः अपस्ट्रीम परियोजना में मिला दिया गया। अब कई वर्चुअल मशीन मॉनिटर्स (VMMs) हैं जो kvmtool, crosvm और Firecracker_(सॉफ़्टवेयर) सहित KVM इंटरफ़ेस का उपयोग कर सकते हैं और कई विशेष VMMs रस्ट-vmm जैसे फ्रेमवर्क के साथ निर्मित होते हैं।

आंतरिक रूप से, KVM SeaBIOS को 16-बिट x86 BIOS के ओपन सोर्स कार्यान्वयन के रूप में उपयोग करता है।

विशेषताएं
KVM को गर्म अदला-बदली के लिए समर्थन प्राप्त है, गतिशील स्मृति प्रबंधन, और फरवरी 2007 से लाइव प्रवासन। माइग्रेशन प्रक्रिया में मेमोरी राइट इंटेंसिव वर्कलोड प्रभाव

नकली हार्डवेयर
डिवाइस अनुकरण के लिए QEMU, crosvm, या Firecracker (सॉफ़्टवेयर) जैसे उच्च स्तरीय क्लाइंट एप्लिकेशन को टालने के बजाय, KVM स्वयं बहुत कम हार्डवेयर का अनुकरण करता है।

KVM निम्नलिखित अनुकरणीय उपकरण प्रदान करता है:


 * वर्चुअल CPU और मेमोरी
 * गुण

ग्राफिकल प्रबंधन उपकरण
* किम्ची (सॉफ्टवेयर) – केवीएम के लिए वेब आधारित वर्चुअलाइजेशन प्रबंधन उपकरण
 * वर्चुअल मशीन प्रबंधक – KVM-आधारित वर्चुअल मशीनों को बनाने, संपादित करने, शुरू करने और रोकने के साथ-साथ मेजबानों के बीच VMs के लाइव या कोल्ड ड्रैग-एंड-ड्रॉप माइग्रेशन का समर्थन करता है।
 * प्रॉक्समॉक्स वर्चुअल एनवायरनमेंट – केवीएम और एलएक्ससी सहित एक ओपन-सोर्स वर्चुअलाइजेशन प्रबंधन पैकेज। इसमें एक बेयर-मेटल इंस्टालर, एक वेब-आधारित रिमोट मैनेजमेंट जीयूआई, एक एचए क्लस्टर स्टैक, एकीकृत भंडारण, लचीला नेटवर्क और वैकल्पिक व्यावसायिक समर्थन है।
 * ओपनआर्म – विषम डेटा सेंटर इन्फ्रास्ट्रक्चर के प्रबंधन के लिए प्रबंधन मंच
 * गनोम बॉक्स – Linux पर libvirt अतिथि के प्रबंधन के लिए गनोम इंटरफ़ेस
 * ओविर्ट – KVM के लिए ओपन-सोर्स वर्चुअलाइजेशन मैनेजमेंट टूल libvirt के शीर्ष पर बनाया गया है

लाइसेंसिंग
केवीएम का कर्नेल-मोड घटक लिनक्स कर्नेल का एक हिस्सा है, जो स्वयं जीएनयू जनरल पब्लिक लाइसेंस # संस्करण 2 के तहत लाइसेंस प्राप्त है। जीएनयू जनरल पब्लिक लाइसेंस, संस्करण 2।

यह भी देखें

 * क्लाउडस्टैक
 * प्लेटफॉर्म वर्चुअलाइजेशन सॉफ्टवेयर की तुलना
 * कर्नेल समान-पृष्ठ विलय (KSM)
 * अतिथि
 * libguestfs
 * ओपन वर्चुअलाइजेशन एलायंस
 * ओपन नेबुला
 * खुली बड़ी चिमनी
 * रेड हैट वर्चुअलाइजेशन
 * वीएक्स32
 * एक्सईएन

बाहरी संबंध

 * Best practices for the Kernel-based Virtual Machine, IBM, second edition, April 2012
 * Virtio-blk Performance Improvement, KVM Forum 2012, November 8, 2012, by Asias He
 * Wikibook QEMU & KVM
 * crosvm - chrome OS virtual machine monitor
 * Firecracker VMM for KVM
 * Firecracker VMM for KVM