इस प्रोजेक्ट के बारे में

फायरक्रैकर एक ओपन-सोर्स वर्चुअलाइजेशन तकनीक है जो सुरक्षित, मल्टी-टेनेंट कंटेनर और फंक्शन-आधारित सेवाओं के निर्माण और प्रबंधन के लिए डिज़ाइन की गई है, जिसमें सर्वरलेस ऑपरेशनल मॉडल होते हैं। यह वर्कलोड्स को हल्के वर्चुअल मशीनों में चलाती है जिन्हें माइक्रोVM कहा जाता है, जो हार्डवेयर स्तर के आइसोलेशन को कंटेनर जैसी गति के साथ जोड़ने का लक्ष्य रखते हैं। कोर घटक एक वर्चुअल मशीन मॉनिटर (वीएमएम) है जो लिनक्स कर्नेल वर्चुअल मशीन (केवीएम) पर बनाया गया है। इसका डिज़ाइन जानबूझकर न्यूनतम है: यह अनावश्यक डिवाइसों और गेस्ट-फेसिंग कार्यक्षमता को बाहर करता है ताकि मेमोरी फुटप्रिंट और हमले की सतह को कम किया जा सके, जो परियोजना के अनुसार सुरक्षा में सुधार करता है, स्टार्टअप समय को छोटा करता है और हार्डवेयर उपयोगिता बढ़ाता है। फायरक्रैकर को अमेज़न वेब सर्विसेज में विकसित किया गया था ताकि एएलएस लैम्ब्डा और एएलएस फारगेट जैसी सेवाओं का समर्थन किया जा सके, और यह एपाचे 2.0 के तहत जारी किया गया है। इसे कंटेनर रनटाइम में भी एकीकृत किया गया है, जिनमें काटा कंटेनर और फ्लिंटलॉक शामिल हैं। एक बार शुरू होने के बाद, फायरक्रैकर होस्ट को एक एपीआई एंडपॉइंट प्रदर्शित करता है, जो ओपनएपीआई प्रारूप में निर्दिष्ट किया गया है। इस एपीआई के माध्यम से उपयोगकर्ता एक माइक्रोVM के vCPU गणना (डिफ़ॉल्ट 1) और मेमोरी आकार (डिफ़ॉल्ट 128 एमआईबी) को कॉन्फ़िगर कर सकते हैं, सीपीयू टेम्पलेट्स लागू कर सकते हैं, नेटवर्क इंटरफेस अटैच कर सकते हैं, रीड-राइट या रीड-ओनली फाइल-बैक्ड ब्लॉक डिवाइस जोड़ सकते हैं, ब्लॉक डिवाइस री-स्कैन को ट्रिगर कर सकते हैं जबकि गेस्ट चलता है, बूट से पहले या बाद में ब्लॉक डिवाइस के बैकिंग फाइल को स्वैप कर सकते हैं, वIRTIO डिवाइसों के लिए रेट लिमिटर कॉन्फ़िगर कर सकते हैं, लॉगिंग और मेट्रिक्स सेट कर सकते हैं, वीएसॉक, एंट्रोपी, और पीएमईएम डिवाइस जोड़ सकते हैं, मेमोरी हॉटप्लगिंग प्रबंधित कर सकते हैं, और (डेवलपर पूर्वावलोकन में) वIRTIO पीसीआई डिवाइसों को हॉट-प्लग या हॉट-अनप्लग कर सकते हैं। एक माइक्रोVM को एक कर्नेल इमेज, रूट फाइल सिस्टम, और बूट तर्कों के साथ शुरू किया जाता है; रोकने का समर्थन केवल x86_64 पर किया जाता है। निर्मित क्षमताओं में डिमांड फॉल्ट पेजिंग, सीपीयू ओवरसब्सक्रिप्शन डिफ़ॉल्ट रूप से, थ्रेड-विशिष्ट सिकॉम्प फिल्टर, और एक जेलर प्रक्रिया शामिल है जो उत्पादन वितरण के लिए सीजीआरपी/नेमस्पेस आइसोलेशन लागू करती है और विशेषाधिकारों को छोड़ देती है। शुरू करने के लिए, रिलीज़ बाइनरी डाउनलोड करना या स्रोत से निर्माण करना संभव है। निर्माण के लिए एक यूनिक्स/लिनक्स सिस्टम की आवश्यकता होती है जिसमें डॉकर और बैश होता है; परियोजना एक विकास कंटेनर और एक डेवटूल बिल्ड कमांड प्रदान करती है, जिसमें बाइनरी बिल्ड/कार्गो_टार्गेट के तहत रखी जाती है। दस्तावेज़ एक त्वरित शुरू करने वाले गाइड, उत्पादन होस्ट सेटअप, डिज़ाइन, एपीआई अनुरोध, सीपीयू टेम्पलेट, वीएसॉक, एंट्रोपी, पीएमईएम, मेमोरी हॉटप्लग, डिवाइस हॉटप्लग, और जेलर उपयोग को कवर करते हैं। रिलीज़ गिटहब पर लगभग हर दो से तीन महीने में प्रकाशित किए जाते हैं जिसमें एक चेंजलॉग और एक प्रलेखित रिलीज़ नीति होती है। परियोजना एक परीक्षण-मंच मैट्रिक्स प्रकाशित करती है जो इंटेल, एएमडी, और ग्रेविटन परिवारों में विभिन्न होस्ट कर्नेल, गेस्ट रूटफ्स, और गेस्ट कर्नेल के साथ एएलएस ईसी2 मेटल इंस्टेंस को कवर करती है। एक ज्ञात सीमा यह है कि आर्च64 पर पीएल031 आरटीसी डिवाइस इंटररप्ट का समर्थन नहीं करता है, इसलिए आरटीसी अलार्म (जैसे कि एचडब्ल्यूक्लॉक) पर निर्भर गेस्ट प्रोग्राम काम नहीं करेंगे। प्रदर्शन विशेषताओं को एक विशिष्टता फ़ाइल में प्रलेखित किया जाता है और निरंतर एकीकरण परीक्षण के माध्यम से लागू किया जाता है। सुरक्षा प्रकटीकरण निजी तौर पर परियोजना की सुरक्षा नीति के अनुसार संभाला जाता है, और समुदाय संपर्क स्लैक, गिटहब मुद्दों, और ईमेल के माध्यम से उपलब्ध है।