इस प्रोजेक्ट के बारे में
smolvm आपको हार्डवेयर वर्चुअलाइज़ेशन (macOS पर Hypervisor.framework, Linux पर KVM, Windows पर Windows Hypervisor Platform) का उपयोग करके स्थानीय रूप से कस्टम Linux वर्चुअल मशीनों को प्रबंधित और चलाने देता है। यह VMM के रूप में libkrun और गेस्ट कर्नेल के लिए libkrunfw पर बनाया गया है, जिसमें प्रत्येक वर्कलोड को मजबूत आइसोलेशन के लिए अपना VM और गेस्ट कर्नेल मिलता है।
मुख्य क्षमताओं में शामिल हैं:
- तेज़, क्रॉस-प्लेटफ़ॉर्म माइक्रोVM जिनमें 200ms से कम कोल्ड स्टार्ट, virtio balloon के माध्यम से लोचदार मेमोरी, और हाइपरवाइज़र में सोने वाले निष्क्रिय vCPU थ्रेड्स शामिल हैं।
- Smolfile: एक TOML डिक्लेरेशन फ़ाइल (Dockerfile के समान लेकिन पूरे VM के लिए) जो इमेज, संसाधन, नेटवर्क नीति, माउंट, पोर्ट और सेटअप कमांड निर्दिष्ट करती है। अज्ञात कुंजियाँ क्रिएट समय पर अस्वीकार कर दी जाती हैं।
- VM ब्रांचिंग: चल रही मशीन की लाइव कॉपी-ऑन-राइट फोर्क जो स्रोत की प्रक्रियाओं, मेमोरी और डिस्क के साथ फिर से शुरू होती है। फैन-आउट के साथ बैच ब्रांचिंग, वर्कर-रेडी सिग्नलिंग, और होल्ड पूल स्लॉट का समर्थन करता है।
- पोर्टेबल आर्टिफैक्ट्स: एक बंद VM को एक ही .smolmachine फ़ाइल में पैक करें जिसे किसी भी OCI रजिस्ट्री में पुश किया जा सकता है और शून्य निर्भरता के साथ किसी भी समर्थित प्लेटफ़ॉर्म पर रिहाइड्रेट किया जा सकता है।
- सैंडबॉक्सिंग: नेटवर्क डिफ़ॉल्ट रूप से बंद है; एग्रेस को विशिष्ट अनुमत होस्ट तक सीमित किया जा सकता है। होस्ट फ़ाइलसिस्टम, नेटवर्क और क्रेडेंशियल्स एक हाइपरवाइज़र सीमा द्वारा अलग किए जाते हैं।
- SSH एजेंट फ़ॉरवर्डिंग: गेस्ट git और SSH के लिए होस्ट SSH कुंजियों का उपयोग कर सकता है, बिना निजी कुंजी सामग्री को VM में कॉपी किए।
- स्थानीय कंटेनर इमेज: Docker डेमन के बिना docker save / podman save आर्काइव, stdin पाइप, या अनपैक्ड rootfs डायरेक्टरी से बूट करें।
- पर्सिस्टेंट डेव मशीन: मशीनों को बनाएं, रोकें, शुरू करें और exec करें, जिनमें इंस्टॉल किए गए पैकेज रीस्टार्ट के बाद भी बने रहते हैं। होस्ट डायरेक्टरी माउंट हॉट रीलोड के लिए inotify इवेंट प्रसारित करते हैं।
- Kubernetes एकीकरण: एक containerd shim v2 प्रदान करता है ताकि पॉड्स RuntimeClass के माध्यम से माइक्रोVM के रूप में चलें।
- GPU एक्सेलेरेशन: macOS और Linux पर virtio-gpu / Venus (Vulkan-over-virtio) के माध्यम से होस्ट GPU को उजागर करता है। CUDA API रिमोटिंग (--cuda) GPU पासथ्रू के बिना vsock पर होस्ट NVIDIA ड्राइवर को CUDA कॉल फ़ॉरवर्ड करता है।
- चेकपॉइंटिंग: बाद में बहाली के लिए VM स्थिति को एक टिकाऊ .smolcheckpoint आर्टिफैक्ट के रूप में सहेजें। एक Rust क्रेट (smolvm-checkpoint) VM रनटाइम पर निर्भर किए बिना इंक्रीमेंटल स्टोरेज और पोर्टेबल एक्सपोर्ट प्रदान करता है।
डिफ़ॉल्ट संसाधन 4 vCPU और 8 GiB RAM हैं, जिन्हें फ़्लैग या Smolfile के माध्यम से ओवरराइड किया जा सकता है। सुरक्षा मॉडल गेस्ट root को अविश्वसनीय मानता है, जिसमें स्पष्ट रूप से फ़ॉरवर्ड की गई क्षमताएँ (माउंट, नेटवर्क, पोर्ट, SSH एजेंट) वर्कलोड के अधिकार का हिस्सा बन जाती हैं। यह प्रोजेक्ट Apache-2.0 लाइसेंस के अंतर्गत है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.