मेस्ट्रो, एक कर्नेल और एक यूनिक्स जैसा ओएस जो रस्ट में शुरू से लिखा गया है

शिक्षक

मेस्ट्रो स्क्रीनशॉट

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

जंग यह एक मजबूत भाषा साबित हुई है और इसने ऐसा विश्वास पैदा किया है कुछ ऑपरेटिंग सिस्टम इस प्रोग्रामिंग भाषा के साथ भी बनाए गए हैं और कुछ का उल्लेख करने के लिए हमारे पास: रिडॉक्स, हमारे पास स्क्रैच से लिखे गए कर्नेल भी हैं जैसे कि केरल या में प्रयुक्त कर्नेल चीन ने हाल ही में जो सैटेलाइट लॉन्च किया है.

इसका जिक्र करने का कारण यह है कि हाल ही में मुझे एक खबर मिली जिसने मेरा ध्यान खींचा और वह है एक परियोजना प्रस्तुत की गई जिसमें रस्ट में लिखा एक कर्नेल विकसित किया गया है और जो आंशिक रूप से लिनक्स के साथ संगत है।

इस परियोजना का नाम है "शिक्षक" और जैसा कि बताया गया है, एक यूनिक्स जैसा कर्नेल है जो रस्ट में लिखा गया है और लिनक्स कर्नेल से सिस्टम कॉल के सबसेट को लागू करता है मानक कार्य वातावरण बनाने के लिए पर्याप्त है। जैसे, "मेस्ट्रो" परियोजना कोई नई बात नहीं है, क्योंकि डेवलपर का उल्लेख है कि परियोजना का जन्म 2018 में हुआ था, लेकिन उस समय इसे सी में लिखा गया था और रस्ट के विभिन्न लाभों और विशेषताओं के कारण, परियोजना को फिर से लिखा गया था शून्य।

प्रोजेक्ट पेज पर परिवर्तन के कारणों का वर्णन किया गया है:

उस पल मैंने रस्ट (इस भाषा में मेरा पहला प्रोजेक्ट) पर स्विच करने का फैसला किया, जिसने कई फायदे पेश किए:

  • पिछली गलतियों से सीखे गए सबक का उपयोग करते हुए, प्रोजेक्ट को शुरुआत से पुनः आरंभ करें।
  • सी में लिनक्स जैसा कर्नेल लिखने की तुलना में थोड़ा अधिक नवीन बनें। आखिरकार, उस समय केवल लिनक्स का उपयोग करें।
  • कुछ कर्नेल प्रोग्रामिंग कठिनाइयों का लाभ उठाने के लिए रस्ट भाषा की सुरक्षा का उपयोग करें। रस्ट राइटिंग सिस्टम का उपयोग करने से आप मेमोरी सुरक्षा की कुछ ज़िम्मेदारी प्रोग्रामर से कंपाइलर को स्थानांतरित कर सकते हैं।

कर्नेल विकास में, डिबगिंग कई कारणों से बहुत कठिन है:

  • दस्तावेज़ीकरण ढूँढना अक्सर कठिन होता है और BIOS कार्यान्वयन ख़राब हो सकता है (जितना आप सोचते हैं उससे अधिक)।
  • बूट पर, कर्नेल के पास मेमोरी तक पूर्ण पहुंच होती है और वह वहां लिख सकता है जहां उसे नहीं लिखना चाहिए (उदाहरण के लिए, उसका अपना कोड)।
  • मेमोरी लीक की समस्या निवारण करना आसान नहीं है. वेलग्रिंड जैसे उपकरण का उपयोग नहीं किया जा सकता.
  • gdb का उपयोग QEMU और VMWare के साथ किया जा सकता है, लेकिन किसी भिन्न एमुलेटर या वर्चुअल मशीन पर चलने पर कर्नेल अलग-अलग व्यवहार कर सकता है। साथ ही, वे एमुलेटर जीडीबी (जैसे वर्चुअलबॉक्स) का समर्थन नहीं कर सकते हैं।
  • QEMU या VMWare में gdb सपोर्ट में कुछ सुविधाएँ गायब हैं और gdb कभी-कभी क्रैश भी हो सकता है

के संदर्भ में परियोजना की विशेषताओं से पता चलता है कि कर्नेल अखंड है और वर्तमान में यह केवल 86-बिट मोड में x32 सिस्टम पर समर्थित है। कर्नेल कोड बेस लगभग 49 हजार लाइनों को कवर करता है, जो वास्तविक हार्डवेयर और क्यूईएमयू या वर्चुअलबॉक्स जैसे वर्चुअलाइज्ड वातावरण दोनों में निष्पादन योग्य है।

"मेस्ट्रो" के वर्तमान विकास में, 31% लागू हो चुका है (135 का 437) Linux सिस्टम कॉल की। यह है बैश और मसल मानक सी लाइब्रेरी पर आधारित कंसोल वातावरण को लोड करने के लिए पर्याप्त है। इसके अतिरिक्त, मेस्ट्रो-आधारित वातावरण जीएनयू कोरुटिल्स सूट से कुछ उपयोगिताओं और किसी भी यूनिक्स सिस्टम से बुनियादी पैकेजिंग चला सकता है। वर्तमान में, नेटवर्किंग स्टैक को लागू करने पर काम किया जा रहा है और इसे विकसित करने पर भी काम किया जा रहा है

के बीच में मेस्ट्रो की उपलब्ध सुविधाएँ विशिष्ट हैं निम्नलिखित::

  • टेक्स्ट मोड और एएनएसआई अनुक्रमों के लिए आंशिक समर्थन के साथ पीएस/2 कीबोर्ड और टर्मिनल के लिए नियंत्रक।
  • वर्चुअल मेमोरी के समर्थन के साथ मेमोरी आवंटन प्रणाली।
  • POSIX सिग्नल के समर्थन के साथ राउंड-रॉबिन एल्गोरिदम पर आधारित कार्य अनुसूचक।
  • पीसीआई उपकरणों की परिभाषा.
  • आईडीई/पाटा नियंत्रक।
  • Ext2 फ़ाइल सिस्टम.
  • /tmp और /proc वर्चुअल फ़ाइल सिस्टम के लिए समर्थन।
  • एफएस, एमबीआर और जीपीटी डिस्क विभाजन को माउंट करने की क्षमता।
  • initramfs समर्थन।
  • टाइमर और सटीक समय के लिए आरटीसी नियंत्रक।
  • कर्नेल मॉड्यूल लोड करने के लिए समर्थन।
  • निष्पादन योग्य फ़ाइलों को ईएलएफ प्रारूप में चलाने की क्षमता।

के लिए परियोजना के बारे में थोड़ा और जानने में रुचि है, आप विवरण की जांच कर सकते हैं निम्नलिखित लिंक में  जहां तक ​​प्रोजेक्ट कोड में रुचि रखने वालों की बात है, तो उन्हें पता होना चाहिए कि यह है एमआईटी लाइसेंस के तहत वितरित। 


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।