एक साल पहले रेड हैट ने घोषणा की थीलिनक्स सिस्टम पर NVIDIA GPUs के प्रबंधन के लिए एक नए ओपन सोर्स ड्राइवर पर उनके काम के लिए,नया". अपने पूर्ववर्ती नोव्यू के विपरीत, नोवा आरंभीकरण और नियंत्रण कार्यों को ग्राफिक्स कार्ड में ही एकीकृत GSP (GPU सिस्टम प्रोसेसर) माइक्रोकंट्रोलर को सौंपने पर निर्भर करता है।
और अब, कुछ ही महीनों में (अन्य नई परियोजनाओं के विपरीत), ऐसा लगता है कि ड्राइवर ने पर्याप्त परिपक्वता प्राप्त कर ली है, तथा इसे लिनक्स 6.15 कर्नेल में एकीकृत करने के लिए पैच के एक सेट के रूप में प्रस्तावित किया जा सकता है, जो कि लिनक्स पर ड्राइवर का प्रारंभिक संस्करण है।
नोवा, यह है लिनक्स कर्नेल मॉड्यूल के रूप में डिज़ाइन किया गया, जो DRM सबसिस्टम पर निर्भर करता है उपयोगकर्ता स्थान से GPU के साथ सहभागिता प्रबंधित करने के लिए. इसके विकास को नोव्यू के विकास के रूप में देखा जाता है, जिसमें मुख्य अंतर यह है कि यह विशेष रूप से GSP फर्मवेयर वाले GPU पर लक्षित है, जो ट्यूरिंग माइक्रोआर्किटेक्चर पर आधारित NVIDIA GeForce RTX 2000 श्रृंखला के मॉडलों को कवर करता है।
नोव्यू से अंतर और नोवा के लाभ
नवतारा नोव्यू की संरचनात्मक समस्याओं को हल करने का प्रयास, जिसके लिए मेमोरी प्रबंधन (VMM/MMU) और कोड लॉक जैसे क्षेत्रों में बड़े बदलाव की आवश्यकता होती है। नोव्यू के विपरीत, नोवा GPU आरंभीकरण और नियंत्रण को सरल बनाने के लिए NVIDIA के GSP फर्मवेयर का लाभ उठाता है, जिससे कोड की जटिलता कम हो जाती है और पुराने कार्डों को संभालने की आवश्यकता समाप्त हो जाती है।
नोवा कोड यह जंग में लिखा है, एक ऐसी भाषा जो न केवल मेमोरी प्रबंधन में त्रुटियों को कम करके सुरक्षा में सुधार करती है, बल्कि अन्य ड्राइवरों के विकास के लिए पुन: प्रयोज्य परतों और अमूर्तताओं के निर्माण की भी अनुमति देती है।
अल proyecto इसे विभिन्न समानांतर पहलों द्वारा समर्थित किया जाता है, जैसे कि रस्ट-डिवाइस ड्राइवर बनाने के लिए, PCI बस और rust-drm के साथ बातचीत के लिए rust-pci DRM और GEM उपप्रणालियों के साथ एकीकरण के लिए। इन उपकरणों का उपयोग drm-asahi, Apple M1 और M2 GPU के लिए Rust ड्राइवर के विकास में भी किया जा रहा है, जो Rust में लिखे गए ग्राफिक्स ड्राइवरों के बुनियादी ढांचे में अभिसरण का सुझाव देता है।
भाषा का उपयोग इस विकास में जंग लगना कोई संयोग नहीं है, क्योंकि रस्ट ऐसे तंत्र प्रदान करता है जो समीक्षा और रिफैक्टरिंग की सुविधा प्रदान करते हैं, जो अधिक परियोजना स्थिरता में योगदान देता है। लिनक्स कर्नेल में इस भाषा को अपनाना एक व्यापक रणनीति का परिणाम है, जिसका उद्देश्य मॉड्यूल लेखन को आधुनिक बनाना तथा नए योगदानकर्ताओं के लिए विकास को अधिक सुलभ बनाना है।
यह कर्नेल में रस्ट को एकीकृत करने का एकमात्र जारी प्रयास नहीं है। वर्तमान में इस भाषा में अन्य ड्राइवर और सिस्टम विकसित किए जा रहे हैं, जैसे कि Apple AGX GPU ड्राइवर, NVMe स्टोरेज सपोर्ट, PuzzleFS फ़ाइल सिस्टम और विभिन्न सुरक्षा और डिवाइस प्रबंधन कार्यान्वयन। लिनक्स पारिस्थितिकी तंत्र में रस्ट की ओर रुझान लगातार बढ़ रहा है, जो ऑपरेटिंग सिस्टम कर्नेल विकास में सुरक्षा और स्थिरता को संबोधित करने के तरीके में एक महत्वपूर्ण बदलाव को दर्शाता है।
कार्यान्वयन चरण
वर्तमान में, नोवा अपने कार्यान्वयन के प्रथम चरण में है, ने नोवा-कोर को शामिल किया, जो लगभग 400 पंक्तियों का कोड वाला एक मॉड्यूल है जो GSP फर्मवेयर के साथ संचार करने के लिए आवश्यक अमूर्तता स्थापित करता है। नोवा-कोर के साथ, NVIDIA फर्मवेयर के साथ एकीकरण के लिए आवश्यक लिंक भी जोड़े गए हैं।
यह उल्लेखनीय है, नोवा को शुरू में लिनक्स 6.14 पर आने की योजना थी 232 लाइनों के कोड वाले नोवा-कोर मॉड्यूल के साथ, लेकिन अंत में इसे शामिल नहीं किया गया क्योंकि ग्रेग क्रोआह-हार्टमैन ने कुछ विवरणों का उल्लेख किया था जिसे चमकाने की जरूरत थी.
इस नई पुष्टि के साथ कि अब इसे शामिल किया जाएगा, अब नियंत्रक अगले चरण पर आगे बढ़ेगा जिसमें निम्नलिखित को जोड़ने की योजना है:
- नोवा-डीआरएम: उपयोगकर्ता स्थान से GPU के साथ अंतःक्रिया का प्रबंधन करने के लिए एक DRM (डायरेक्ट रेंडरिंग मैनेजर) ड्राइवर।
- vGPU प्रबंधक के साथ VFIO: वर्चुअलाइजेशन वातावरण में NVIDIA वर्चुअल GPU के उपयोग की अनुमति देगा।
अंत में, यह स्पष्ट करना महत्वपूर्ण है कि नोवा ईअपनी वर्तमान स्थिति में, यह एक कार्यात्मक नियंत्रक नहीं है और वह पैच भेजे गए वे केवल नियंत्रक के विकास को शुरू करने का आधार हैं, अर्थात यह वह कोड है जो भविष्य के विकास की नींव रखेगा।