
ओपन-सोर्स टाइप-1 हाइपरवाइज़र और वर्चुअल मशीन मॉनिटर जो x86, ARM और RISC-V के लिए सुरक्षित आइसोलेशन प्रदान करता है, साथ में Dom0/DomU आर्किटेक्चर, xenstore और Intel TXT ट्रस्टेड बूट सपोर्ट।
############################################################
\ / /___ _ __ _ _ _ __ | | __ | | | | ___
\ // _ \ ' \ | | | | ' / __| / ` | ' | |/ _
/ \ / | | || || | | | _ \ || (| | |) | | __/
//__|| || _,|| ||/__,|.__/||___|
############################################################
Xen एक वर्चुअल मशीन मॉनिटर (VMM) है जिसे मूल रूप से कैम्ब्रिज विश्वविद्यालय कंप्यूटर प्रयोगशाला के सिस्टम्स रिसर्च ग्रुप द्वारा UK-EPSRC द्वारा वित्त पोषित XenoServers परियोजना के हिस्से के रूप में विकसित किया गया था। Xen स्वतंत्र रूप से वितरित किया जा सकने वाला ओपन सोर्स सॉफ़्टवेयर है, जिसे GNU GPL के अंतर्गत जारी किया गया है। अपनी प्रारंभिक सार्वजनिक रिलीज़ के बाद से, Xen ने एक बड़ा विकास समुदाय विकसित किया है, जिसका नेतृत्व xen.org (https://www.xen.org) कर रहा है।
इस फ़ाइल में आपके सिस्टम पर Xen स्थापित करने के लिए कुछ त्वरित-प्रारंभ निर्देश दिए गए हैं। अधिक जानकारी के लिए https://www.xen.org/ और https://wiki.xen.org/ देखें।
पहला, यह केवल एक त्वरित-प्रारंभ मार्गदर्शिका है। अधिक व्यापक जानकारी के लिए INSTALL फ़ाइल और Xen विकी https://wiki.xenproject.org पर देखें, और विशेष रूप से https://wiki.xenproject.org/wiki/Getting_Started पर।
दूसरा, Xen स्रोत रिलीज़ बनाने के लिए कई पूर्वापेक्षाएँ हैं। सुनिश्चित करें कि आपके पास निम्नलिखित सभी स्थापित हैं, या तो प्रोजेक्ट वेबपेज पर जाकर या अपने OS वितरक द्वारा प्रदान किया गया पूर्व-निर्मित पैकेज स्थापित करके: * GNU Make v3.80 या बाद का * C कंपाइलर और लिंकर: - x86 के लिए: - GCC 5.1 या बाद का - GNU Binutils 2.25 या बाद का या - Clang/LLVM 11 या बाद का - ARM के लिए: - GCC 5.1 या बाद का - GNU Binutils 2.25 या बाद का - RISC-V 64-bit के लिए: - GCC 12.2 या बाद का - GNU Binutils 2.39 या बाद का * POSIX संगत awk * zlib का विकास संस्करण (जैसे, zlib-dev) * Python 2.7 या बाद का विकास संस्करण (जैसे, python-dev) * curses का विकास संस्करण (जैसे, libncurses-dev) * uuid का विकास संस्करण (जैसे, uuid-dev) * json-c 0.15 या बाद का विकास संस्करण (जैसे, libjson-c-dev) या yajl (जैसे, libyajl-dev) * libaio का विकास संस्करण (जैसे, libaio-dev) संस्करण 0.3.107 या उससे अधिक। * GLib v2.0 का विकास संस्करण (जैसे, libglib2.0-dev) * Pixman का विकास संस्करण (जैसे, libpixman-1-dev) * pkg-config * bridge-utils पैकेज (/sbin/brctl) * iproute पैकेज (/sbin/ip) * GNU bison और GNU flex * ACPI ASL कंपाइलर (iasl)
उपरोक्त के अतिरिक्त कई वैकल्पिक बिल्ड पूर्वापेक्षाएँ हैं। इन्हें छोड़ने पर संबंधित सुविधाएँ कंपाइल समय पर अक्षम हो जाएँगी: * बाइनरी-सर्च सक्षम grep (यदि Xen को CET समर्थन के साथ बनाया जा रहा है) * Ocaml का विकास संस्करण (जैसे, ocaml-nox और ocaml-findlib)। ocaml घटकों को बनाने के लिए आवश्यक है जिसमें वैकल्पिक ocaml xenstored शामिल है। * cmake (यदि vtpm स्टब डोमेन बनाए जा रहे हैं) * विभिन्न दस्तावेज़ों को वैकल्पिक प्रारूपों में प्रस्तुत करने के लिए pandoc, transfig, pod2{man,html,text} * figlet (पारंपरिक Xen स्टार्ट ऑफ़ डे बैनर उत्पन्न करने के लिए) * systemd डेमॉन विकास फ़ाइलें * libnl3 का विकास संस्करण (जैसे, libnl-3-200, libnl-3-dev, आदि)। यदि libxl के साथ Remus का उपयोग करते समय नेटवर्क बफ़रिंग वांछित है तो आवश्यक है। विस्तृत जानकारी के लिए docs/README.remus देखें। * rombios के लिए 16-bit x86 असेंबलर, लोडर और कंपाइलर (dev86 rpm या bin86 और bcc debs) * rombios के लिए liblzma का विकास संस्करण * DomU कर्नेल डीकंप्रेशन के लिए libbz2, liblzma, liblzo2, और libzstd का विकास संस्करण।
दूसरा, आपको डोमेन 0 में उपयोग के लिए एक उपयुक्त कर्नेल प्राप्त करना होगा। यदि संभव हो तो आपको अपने OS वितरक द्वारा प्रदान किया गया कर्नेल उपयोग करना चाहिए। यदि आपके OS वितरक से कोई उपयुक्त कर्नेल उपलब्ध नहीं है तो उपयुक्त कर्नेल के सुझावों के लिए https://wiki.xen.org/wiki/XenDom0Kernels देखें। यदि आप स्रोत से Dom0 कर्नेल संकलित करना चाहते हैं, तो कृपया https://wiki.xen.org/wiki/XenParavirtOps देखें।
[नोट: जब तक अन्यथा उल्लेख न हो, निम्नलिखित सभी चरण root विशेषाधिकारों के साथ किए जाने चाहिए।]
स्रोत टारबॉल फ़ाइल डाउनलोड करें और अनटार करें। यह xen-unstable-src.tgz, या xen-$version-src.tgz नाम की फ़ाइल होगी। आप https://xenbits.xen.org/ पर git या mercurial रिपॉज़िटरी से वर्तमान संस्करण भी प्राप्त कर सकते हैं।
यह मानते हुए कि आप unstable ट्री का उपयोग कर रहे हैं, यह xen-unstable में अनटार होगा। शेष निर्देश unstable ट्री को उदाहरण के रूप में उपयोग करते हैं, unstable के स्थान पर संस्करण लगाएं।
xen-unstable में cd करें (या जो भी आपने उचित रूप से इसका नाम बदला है)।
बहुत पहले बिल्ड के लिए, या यदि आप बिल्ड ट्री नष्ट करना चाहते हैं, निम्नलिखित चरण करें:
अधिक जानकारी के लिए INSTALL फ़ाइल में दस्तावेज़ देखें।
यह स्थानीय मशीन पर निर्माण और इंस्टॉल करेगा। यह xen बाइनरी (xen.gz), टूल्स और दस्तावेज़ बनाएगा।
आप DESTDIR को किसी मान पर सेट करके make install के गंतव्य को ओवरराइड कर सकते हैं।
कॉन्फ़िग को संशोधित किए बिना मौजूदा ट्री को पुनः बिल्ड करने के लिए:
यह स्थानीय dist/ निर्देशिका में xen, टूल्स और दस्तावेज़ों का निर्माण और इंस्टॉल करेगा।
आप DISTDIR को किसी मान पर सेट करके make install के गंतव्य को ओवरराइड कर सकते हैं।
make install और make dist में अंतर यह है कि make install आपकी स्थानीय मशीन के लिए सही कार्य करता है (उदाहरण के लिए, udev स्क्रिप्ट का उपयुक्त संस्करण इंस्टॉल करना), लेकिन make dist उन स्क्रिप्ट के सभी संस्करणों को शामिल करता है, ताकि आप dist निर्देशिका को किसी अन्य मशीन पर कॉपी कर सकें और उस वितरण से इंस्टॉल कर सकें।
Xen डोमेन के बीच साझा कॉन्फ़िगरेशन और स्थिति जानकारी बनाए रखने के लिए xenstore [0] नामक एक कॉन्फ़िगरेशन डेटाबेस का उपयोग करता है। dom0 और गेस्ट के लिए डेटाबेस तक पहुँच के इंटरफ़ेस के रूप में कार्य करने के लिए xenstore के भाग के रूप में एक डेमॉन लागू किया गया है। दो xenstored डेमॉन समर्थित हैं, एक C में लिखा गया जिसे हम xenstored (कभी-कभी cxenstored भी कहा जाता है) कहते हैं, और दूसरा Ocaml में लिखा गया जिसे oxenstored कहा जाता है। xenstore और विभिन्न कार्यान्वयनों का विवरण विकी के xenstore संदर्भ गाइड [1] और xenstored [2] पृष्ठ पर पाया जा सकता है। आप configure के माध्यम से चुन सकते हैं कि किस xenstore को सिस्टम पर डिफ़ॉल्ट रूप में सक्षम करना है:
./configure --with-xenstored=xenstored
./configure --with-xenstored=oxenstored
यदि ocaml विकास उपकरण पाए जाते हैं तो डिफ़ॉल्ट रूप से oxenstored का उपयोग किया जाएगा। यदि आप oxenstored सक्षम करते हैं तो भी xenstored का निर्माण और इंस्टॉल किया जाएगा, उपयोग किए जाने वाले xenstored को कॉन्फ़िगरेशन फ़ाइल के माध्यम से बदला जा सकता है:
/etc/sysconfig/xencommons या /etc/default/xencommons
आप कॉन्फ़िगरेशन में अपने पसंदीदा xenstored को बदल सकते हैं लेकिन चूंकि हम डेमॉन को रोक नहीं सकते, परिवर्तन को प्रभावी होने के लिए रीबूट की आवश्यकता होगी।
[0] https://wiki.xen.org/wiki/XenStore [1] https://wiki.xen.org/wiki/XenStoreReference [2] https://wiki.xen.org/wiki/Xenstored
विभिन्न टूल्स, जैसे pygrub, की निम्नलिखित रनटाइम निर्भरताएँ हैं:
* Python 2.7 या बाद का संस्करण।
URL: https://www.python.org/
Debian: python
Intel की सुरक्षित कंप्यूटिंग के लिए तकनीक, Intel(R) Trusted Execution Technology (Intel(R) TXT), प्लेटफ़ॉर्म-स्तरीय संवर्द्धन परिभाषित करती है जो विश्वसनीय प्लेटफ़ॉर्म बनाने के लिए आधारशिला प्रदान करते हैं। अधिक जानकारी के लिए देखें https://www.intel.com/technology/security/।
Intel(R) TXT समर्थन Trusted Boot (tboot) मॉड्यूल द्वारा Xen हाइपरवाइज़र में न्यूनतम लॉजिक के साथ प्रदान किया जाता है।