ओएस-स्तरीय वर्चुअलाइजेशन

ओएस-स्तरीय वर्चुअलाइजेशन एक ऑपरेटिंग सिस्टम (ओएस) प्रतिमान है जिसमें कर्नेल (कंप्यूटर विज्ञान) कई अलग-अलग उपयोगकर्ता स्थान उदाहरणों के अस्तित्व की अनुमति देता है, जिन्हें 'कंटेनर' (एलएक्ससी, सोलारिस कंटेनर, डॉकर (सॉफ्टवेयर), धोखे) कहा जाता है। ज़ोन (सोलारिस कंटेनर), वर्चुअल प्राइवेट सर्वर (ओपनवीजेड), पार्टीशन, वर्चुअल एनवायरनमेंट (वीई), वर्चुअल कर्नेल (vkernel), या  जेल  (फ्रीबीएसडी जेल या चुरोट जेल)। ऐसे उदाहरण उनमें चल रहे कार्यक्रमों के दृष्टिकोण से वास्तविक कंप्यूटर की तरह लग सकते हैं। एक साधारण ऑपरेटिंग सिस्टम पर चलने वाला एक कंप्यूटर प्रोग्राम उस कंप्यूटर के सभी संसाधनों (कनेक्टेड डिवाइसेस, फाइल्स और फोल्डर्स, साझा संसाधन, सीपीयू पावर, क्वांटिफिएबल हार्डवेयर क्षमताओं) को देख सकता है। हालाँकि, कंटेनर के अंदर चलने वाले प्रोग्राम केवल कंटेनर की सामग्री और कंटेनर को सौंपे गए उपकरणों को देख सकते हैं।

यूनिक्स जैसे ऑपरेटिंग सिस्टम पर, इस सुविधा को मानक चेरोट तंत्र के उन्नत कार्यान्वयन के रूप में देखा जा सकता है, जो वर्तमान चल रही प्रक्रिया और उसके बच्चों के लिए स्पष्ट चुरोट फ़ोल्डर को बदलता है। अलगाव तंत्र के अलावा, कर्नेल अक्सर संसाधन प्रबंधन (कंप्यूटिंग) | संसाधन-प्रबंधन सुविधाओं को अन्य कंटेनरों पर एक कंटेनर की गतिविधियों के प्रभाव को सीमित करने के लिए प्रदान करता है। लिनक्स कंटेनर सभी लिनक्स कर्नेल, विशेष रूप से लिनक्स नामस्थान और cgroups द्वारा प्रदान किए गए वर्चुअलाइजेशन, आइसोलेशन और संसाधन प्रबंधन तंत्र पर आधारित हैं। कंटेनर शब्द, जबकि सबसे लोकप्रिय रूप से OS-स्तर वर्चुअलाइजेशन सिस्टम का जिक्र है, कभी-कभी अस्पष्ट रूप से फुलर आभासी मशीन वातावरण को संदर्भित करने के लिए उपयोग किया जाता है, जो होस्ट OS के साथ अलग-अलग डिग्री में काम करता है, उदा। माइक्रोसॉफ्ट | माइक्रोसॉफ्ट के हाइपर-वी कंटेनर। 1960 के बाद से सामान्य रूप से वर्चुअलाइजेशन का अधिक ऐतिहासिक अवलोकन वर्चुअलाइजेशन विकास की समयरेखा में पाया जा सकता है।

ऑपरेशन
व्यक्तिगत कंप्यूटरों के लिए सामान्य ऑपरेटिंग सिस्टम पर, एक कंप्यूटर प्रोग्राम सिस्टम के सभी संसाधनों को देख सकता है (भले ही वह एक्सेस करने में सक्षम न हो)। वे सम्मिलित करते हैं: ऑपरेटिंग सिस्टम ऐसे संसाधनों तक पहुंच की अनुमति देने या अस्वीकार करने में सक्षम हो सकता है जिसके आधार पर प्रोग्राम उनसे अनुरोध करता है और उपयोगकर्ता खाता जिसके संदर्भ में यह चलता है। ऑपरेटिंग सिस्टम उन संसाधनों को छुपा भी सकता है, ताकि जब कंप्यूटर प्रोग्राम उन्हें गणना करे, तो वे गणना परिणामों में प्रकट न हों। फिर भी, प्रोग्रामिंग के दृष्टिकोण से, कंप्यूटर प्रोग्राम ने उन संसाधनों के साथ इंटरेक्शन किया है और ऑपरेटिंग सिस्टम ने इंटरेक्शन के कार्य को प्रबंधित किया है।
 * 1) हार्डवेयर क्षमताएं जिन्हें नियोजित किया जा सकता है, जैसे कि CPU और नेटवर्क कनेक्शन
 * 2) डेटा जिसे पढ़ा या लिखा जा सकता है, जैसे फाइल, फोल्डर और नेटवर्क शेयर
 * 3) कनेक्टेड कंप्यूटर परिधीय जिसके साथ यह इंटरैक्ट कर सकता है, जैसे कि वेबकैम, प्रिंटर, स्कैनर या फैक्स

ऑपरेटिंग-सिस्टम-वर्चुअलाइजेशन, या कंटेनरीकरण के साथ, कंटेनरों के भीतर प्रोग्राम चलाना संभव है, जिसके लिए इन संसाधनों के केवल हिस्से आवंटित किए जाते हैं। एक प्रोग्राम जो पूरे कंप्यूटर को देखने की उम्मीद करता है, एक बार एक कंटेनर के अंदर चला जाता है, केवल आवंटित संसाधनों को देख सकता है और मानता है कि वह सब कुछ उपलब्ध है। प्रत्येक ऑपरेटिंग सिस्टम पर कई कंटेनर बनाए जा सकते हैं, जिनमें से प्रत्येक को कंप्यूटर के संसाधनों का एक सबसेट आवंटित किया जाता है। प्रत्येक कंटेनर में कई कंप्यूटर प्रोग्राम हो सकते हैं। ये प्रोग्राम समवर्ती या अलग-अलग चल सकते हैं, और यहां तक ​​कि एक दूसरे के साथ बातचीत भी कर सकते हैं।

कंटेनरीकरण में अनुप्रयोग वर्चुअलाइजेशन की समानताएं हैं: उत्तरार्द्ध में, केवल एक कंप्यूटर प्रोग्राम को एक पृथक कंटेनर में रखा जाता है और अलगाव केवल फाइल सिस्टम पर लागू होता है।

उपयोग
ऑपरेटिंग-सिस्टम-लेवल वर्चुअलाइजेशन का उपयोग आमतौर पर वर्चुअल मशीन वातावरण में किया जाता है, जहां यह बड़ी संख्या में पारस्परिक रूप से अविश्वसनीय उपयोगकर्ताओं के बीच परिमित हार्डवेयर संसाधनों को सुरक्षित रूप से आवंटित करने के लिए उपयोगी होता है। सिस्टम प्रशासक एक सर्वर पर कंटेनरों में अलग-अलग मेजबानों पर सेवाओं को स्थानांतरित करके सर्वर हार्डवेयर को समेकित करने के लिए भी इसका उपयोग कर सकते हैं।

अन्य विशिष्ट परिदृश्यों में बेहतर सुरक्षा, हार्डवेयर स्वतंत्रता और अतिरिक्त संसाधन प्रबंधन सुविधाओं के लिए कंटेनरों को अलग करने के लिए कई कार्यक्रमों को अलग करना शामिल है। हालांकि, क्रोट तंत्र के उपयोग द्वारा प्रदान की गई बेहतर सुरक्षा आयरनक्लैड के पास कहीं नहीं है। लाइव माइग्रेशन में सक्षम ऑपरेटिंग-सिस्टम-लेवल वर्चुअलाइजेशन कार्यान्वयन का उपयोग क्लस्टर में नोड्स के बीच कंटेनरों के डायनेमिक लोड बैलेंसिंग के लिए भी किया जा सकता है।

ओवरहेड
ऑपरेटिंग-सिस्टम-लेवल वर्चुअलाइजेशन आमतौर पर पूर्ण वर्चुअलाइजेशन की तुलना में कम ओवरहेड लगाता है क्योंकि ओएस-लेवल वर्चुअल पार्टिशन में प्रोग्राम ऑपरेटिंग सिस्टम के सामान्य सिस्टम कॉल इंटरफेस का उपयोग करते हैं और उन्हें एमुलेटर के अधीन होने या इंटरमीडिएट वर्चुअल मशीन में चलाने की आवश्यकता नहीं होती है, जैसा कि है पूर्ण वर्चुअलाइजेशन (जैसे वीएमवेयर ईएसएक्सआई, क्यूईएमयू, या हाइपर-वी) और पैरावर्चुअलाइजेशन (जैसे एक्सईएन या उपयोगकर्ता-मोड लिनक्स) के मामले में। वर्चुअलाइजेशन के इस रूप को कुशल प्रदर्शन के लिए हार्डवेयर समर्थन की भी आवश्यकता नहीं होती है।

लचीलापन
ऑपरेटिंग-सिस्टम-लेवल वर्चुअलाइजेशन उतना लचीला नहीं है जितना अन्य वर्चुअलाइजेशन दृष्टिकोण है क्योंकि यह एक अतिथि ऑपरेटिंग सिस्टम को होस्ट एक से अलग, या एक अलग अतिथि कर्नेल को होस्ट नहीं कर सकता है। उदाहरण के लिए, लिनक्स के साथ, विभिन्न वितरण ठीक हैं, लेकिन अन्य ऑपरेटिंग सिस्टम जैसे कि विंडोज को होस्ट नहीं किया जा सकता है। वेरिएबल इनपुट सिस्टमैटिक्स का उपयोग करने वाले ऑपरेटिंग सिस्टम वर्चुअलाइज्ड आर्किटेक्चर के भीतर सीमाओं के अधीन हैं। क्लाउड-सर्वर रिले एनालिटिक्स सहित अनुकूलन विधियाँ इन अनुप्रयोगों के भीतर OS-स्तर के आभासी वातावरण को बनाए रखती हैं। Solaris (ऑपरेटिंग सिस्टम) अपनी ब्रांडेड ज़ोन सुविधा के साथ ऊपर वर्णित सीमा को आंशिक रूप से पार कर लेता है, जो एक कंटेनर के भीतर एक वातावरण चलाने की क्षमता प्रदान करता है जो Solaris 10 होस्ट में पुराने Solaris 8 या 9 संस्करण का अनुकरण करता है। लिनक्स ब्रांडेड जोन (एलएक्स ब्रांडेड जोन के रूप में संदर्भित) x86-आधारित सोलारिस सिस्टम पर भी उपलब्ध हैं, लिनक्स अनुप्रयोगों के निष्पादन के लिए एक पूर्ण लिनक्स उपयोक्ता स्थान और समर्थन प्रदान करते हैं; इसके अतिरिक्त, Solaris lx ज़ोन के अंदर Red Hat Enterprise Linux 3.x या CentOS 3.x Linux वितरण स्थापित करने के लिए आवश्यक उपयोगिताएँ प्रदान करता है। हालाँकि, 2010 में Linux ब्रांडेड ज़ोन Solaris से हटा दिए गए थे; 2014 में उन्हें इलुमोस में फिर से शुरू किया गया, जो ओपन सोर्स सोलारिस फोर्क है, जो 32-बिट लिनक्स कर्नेल का समर्थन करता है।

भंडारण
कुछ कार्यान्वयन फ़ाइल-स्तरीय लिखने पर नकल (CoW) तंत्र प्रदान करते हैं। (आमतौर पर, एक मानक फ़ाइल सिस्टम विभाजन के बीच साझा किया जाता है, और वे विभाजन जो फ़ाइलों को बदलते हैं, स्वचालित रूप से अपनी प्रतियां बनाते हैं।) ब्लॉक-स्तरीय कॉपी-ऑन की तुलना में बैक अप लेना आसान, अधिक स्थान-कुशल और कैश करना आसान है। पूरे-सिस्टम वर्चुअलाइज़र पर सामान्य योजनाएं लिखें। पूरे सिस्टम वर्चुअलाइज़र, हालांकि, गैर-देशी फाइल सिस्टम के साथ काम कर सकते हैं और संपूर्ण सिस्टम स्थिति के स्नैपशॉट बना सकते हैं और रोल बैक कर सकते हैं।

कार्यान्वयन
ऊपर सूचीबद्ध नहीं किए गए लिनक्स कंटेनरों में शामिल हैं: धोखे डॉकर के लिए एक ड्रॉप-इन प्रतिस्थापन
 * LXC#LXD, Canonical (कंपनी) द्वारा विकसित LXC के चारों ओर एक वैकल्पिक आवरण
 * चार्लीक्लाउड, एचपीसी सिस्टम पर उपयोग किए जाने वाले कंटेनर टूल्स का एक सेट
 * कंटेनरों ने कहा माइक्रोवीएम प्लेटफॉर्म
 * बॉटलरकेट एक लिनक्स-आधारित ओपन-सोर्स ऑपरेटिंग सिस्टम है जो अमेज़न वेब सेवाएँ द्वारा आभासी मशीनों या नंगे धातु होस्ट पर कंटेनर चलाने के उद्देश्य से बनाया गया है।
 * CBL-मेरिनर एक ओपन-सोर्स लिनक्स वितरण है जो Microsoft Azure द्वारा उद्देश्य से बनाया गया है और Fedora CoreOS के समान है

यह भी देखें

 * कंटेनर ऑर्केस्ट्रेशन
 * लिनक्स नामस्थान
 * सीग्रुप्स
 * सैंडबॉक्स (सॉफ्टवेयर विकास)
 * कंटेनर लिनक्स
 * सूत्र
 * पोर्टेबल एप्लिकेशन निर्माता
 * ओपन कंटेनर पहल
 * जुदाई गिरी
 * सर्वर रहित कंप्यूटिंग
 * स्नैप (पैकेज प्रबंधक) पैकेज मैनेजर
 * स्टोरेज हाइपरविजर
 * वर्चुअल प्राइवेट सर्वर (वीपीएस)
 * आभासी संसाधन विभाजन

बाहरी संबंध

 * An introduction to Virtualization
 * A short intro to three different virtualization techniques
 * Virtualization and Containerization of Application Infrastructure: A Comparison, June 22, 2015, by Mathijs Jeroen Scheepers
 * Containers and persistent data, LWN.net, May 28, 2015, by Josh Berkus