Microsoft यह बताता है कि इसकी विंडोज़ 10 लिनक्स सबसिस्टम कैसे काम करती है

वीडियो: Faith Evans feat. Stevie J – "A Minute" [Official Music Video] 2024

वीडियो: Faith Evans feat. Stevie J – "A Minute" [Official Music Video] 2024
Anonim

विंडोज पर उबंटू पर बैश देशी लिनक्स ELF64 बायनेरिज़ को लिनक्स (WSL) के लिए विंडोज सबसिस्टम के माध्यम से विंडोज पर चलने में सक्षम बनाता है। हालांकि कई लोग उबंटू घोषणा पर बैश से चौंक गए थे, यह ध्यान देने योग्य है कि यह विभिन्न ऑपरेटिंग सिस्टम के बीच संगतता के लिए नए दरवाजे खोलता है। Microsoft एक और कदम आगे बढ़ाता है और बताता है कि इसका WSL ​​कैसे काम करता है इसलिए हम बेहतर तरीके से समझ सकते हैं कि दोनों सिस्टम एक दूसरे के साथ कैसे संवाद करते हैं।

WSL Microsoft Windows कर्नेल टीम द्वारा बनाया गया था और इसमें उपयोगकर्ता मोड और कर्नेल मोड दोनों घटक शामिल हैं। विशेष रूप से, इस प्रणाली से बना है:

  • लिनक्स उदाहरण जीवन चक्र को संभालने वाला एक उपयोगकर्ता मोड सत्र प्रबंधक सेवा
  • पिको प्रदाता ड्राइवर (lxss.sys, lxcore.sys) जिनकी भूमिका लिनक्स syscalls का अनुवाद करके लिनक्स कर्नेल का अनुकरण करना है
  • पिको अनमॉडिफाइड यूजर मोड लिनक्स (जैसे / बिन / बैश) को होस्ट करने की प्रक्रिया करता है।

तीन घटकों के बीच संबंध निम्नानुसार है:

यह उपयोगकर्ता मोड लिनक्स बायनेरिज़ और विंडोज कर्नेल घटकों के बीच का स्थान है जहाँ जादू होता है। पिको प्रक्रियाओं में असम्बद्ध लिनक्स बायनेरिज़ रखकर हम लिनक्स सिस्टम कॉल को विंडोज कर्नेल में निर्देशित करने में सक्षम बनाते हैं। Lxss.sys और lxcore.sys ड्राइवर एनटी एपीआई में लिनक्स सिस्टम कॉल का अनुवाद करते हैं और लिनक्स कर्नेल का अनुकरण करते हैं।

इस प्रक्रिया में मुख्य चुनौती दो प्रणालियों को एक साथ काम करना है:

डब्लूएसएल विंडोज एनटी कर्नेल के शीर्ष पर लिनक्स कर्नेल इंटरफ़ेस को वर्चुअलाइज करके WSL अनमॉडिफाइड लिनक्स ELF64 बायनेरिज़ को निष्पादित करता है। कर्नेल इंटरफ़ेस जो इसे उजागर करता है उनमें से एक सिस्टम कॉल (syscalls) है। एक syscall कर्नेल द्वारा प्रदान की जाने वाली एक सेवा है जिसे उपयोगकर्ता मोड से कॉल किया जा सकता है। दोनों लिनक्स कर्नेल और विंडोज एनटी कर्नेल उपयोगकर्ता मोड में कई सौ syscalls को उजागर करते हैं, लेकिन उनके अलग-अलग शब्दार्थ हैं और आमतौर पर सीधे संगत नहीं होते हैं। उदाहरण के लिए, लिनक्स कर्नेल में कांटा, खुला और मारने जैसी चीजें शामिल हैं, जबकि Windows NT कर्नेल में तुलनीय NtCreateProcess, NtOpenFile और NtTerminateProcess शामिल हैं।

लिनक्स के लिए विंडोज सबसिस्टम में कर्नेल मोड ड्राइवर (lxss.sys और lxcore.sys) शामिल हैं जो Windows NT कर्नेल के साथ समन्वय में लिनक्स सिस्टम कॉल अनुरोधों को संभालने के लिए जिम्मेदार हैं। ड्राइवरों में लिनक्स कर्नेल से कोड नहीं होता है, बल्कि वे लिनक्स-संगत कर्नेल इंटरफेस के एक साफ कमरे के कार्यान्वयन के होते हैं। देशी लिनक्स पर, जब एक syscall उपयोगकर्ता मोड निष्पादन योग्य से बनाया जाता है तो इसे लिनक्स कर्नेल द्वारा नियंत्रित किया जाता है। डब्लूएसएल पर, जब एक syscall उसी निष्पादन योग्य विंडोज एनटी कर्नेल से बनाया जाता है, तो lxcore.sys के लिए अनुरोध करता है। जहां संभव हो, lxcore.sys लिनक्स syscall को बराबर विंडोज NT कॉल में बदल देता है जो बदले में भारी लिफ्टिंग करता है।

खुले-स्रोत प्लेटफार्मों में Microsoft की रुचि को ध्यान में रखते हुए, कई लोगों ने सोचा कि क्या तकनीकी दिग्गज को उबंटू ऑपरेटिंग सिस्टम के पीछे प्रमुख कंपनी जैसे कि Canonical, जैसी प्रमुख लिनक्स का अधिग्रहण करना चाहिए। हालाँकि Microsoft और Canonical ने ओपन-सोर्स सॉफ़्टवेयर पर सहयोग किया, न ही इस संभावना पर कोई टिप्पणी जारी की।

यदि आप दिलचस्प हैं कि लिनक्स - विंडोज इंटरैक्शन कैसे विकसित होता है, तो Microsoft के ब्लॉग पर जाएं। टीम ने वादा किया कि इस विषय पर अधिक ब्लॉग पोस्ट का अनुसरण करेंगे।

Microsoft यह बताता है कि इसकी विंडोज़ 10 लिनक्स सबसिस्टम कैसे काम करती है