מיקרוסופט חושפת כיצד פועלת מערכת המשנה לינוקס של Windows 10

וִידֵאוֹ: Как установить, настроить и использовать подсистему Linux в Windows 10. Обновленный Windows Terminal 2024

וִידֵאוֹ: Как установить, настроить и использовать подсистему Linux в Windows 10. Обновленный Windows Terminal 2024
Anonim

ה- Bash באובונטו ב- Windows מאפשרת לינוני Linux ELF64 מקוריים להפעלה במערכת Windows באמצעות מערכת המשנה של Windows עבור Linux (WSL). למרות שאנשים רבים נדהמו מההכרזה של באש על אובונטו, ראוי להזכיר שהיא פותחת דלתות חדשות לתאימות בין מערכות הפעלה שונות. מיקרוסופט עושה צעד נוסף קדימה ומגלה כיצד ה- WSL שלה עובד כדי שנוכל להבין טוב יותר כיצד שתי המערכות מתקשרות זו עם זו.

WSL נוצר על ידי צוות הליבה של מיקרוסופט ומכיל גם מצב משתמש וגם רכיבי מצב גרעין. ליתר דיוק, המערכת מורכבת מ:

  • שירות מנהל הפעלות במצב משתמש המטפל במחזור החיים של מופע Linux
  • מנהלי התקן של ספקי פיקו (lxss.sys, lxcore.sys) שתפקידם לחקות גרעין לינוקס על ידי תרגום syscalls לינוקס.
  • פיקו מעבד את אירוח מצב המשתמש ללא שינוי Linux (למשל / bin / bash).

החיבור בין שלושת המרכיבים מתואר כך:

זהו המרחב בין קבצי בינארי לינוקס במצב משתמש ורכיבי הגלעין של Windows שבהם הקסם קורה. על ידי הצבת קבצי בינארי לינוקס ללא שינוי בתהליכי פיקו אנו מאפשרים להפנות שיחות מערכת לינוקס אל גרעין Windows. מנהלי ההתקנים lxss.sys ו- lxcore.sys מתרגמים את שיחות מערכת הלינוקס לממשקי API של NT ומחקים את גרעין לינוקס.

האתגר העיקרי בתהליך הוא לגרום לשתי המערכות לעבוד יחד:

WSL מבצעת בינארי לינוקס ELF64 ללא שינוי על ידי וירטואליזציה של ממשק גרעין לינוקס על גבי גרעין Windows NT. אחד מממשקי הגרעין שהוא חושף הם שיחות מערכת (syscalls). תוכנת סינון היא שירות הניתן על ידי הגרעין שניתן לקרוא אליו ממצב משתמש. גם גרעין לינוקס וגם גרעין Windows NT חושפים כמה מאות תוכניות למצב משתמש, אך יש להם סמנטיקה שונה ובדרך כלל אינם תואמים ישירות. לדוגמא, גרעין לינוקס כולל דברים כמו מזלג, פתיחה והרוג בעוד שלגרעין Windows NT יש את NtCreateProcess, NtOpenFile ו- NtTerminateProcess השווים.

מערכת המשנה של Windows לינוקס כוללת מנהלי התקנים למצב ליבה (lxss.sys ו- lxcore.sys) האחראים לטיפול בבקשות שיחות מערכת לינוקס בתיאום עם גרעין Windows NT. מנהלי ההתקן אינם מכילים קוד מהליבה של לינוקס אלא במקום זאת יישום של חדר נקי של ממשקי גרעינים תואמים לינוקס. בלינוקס המקורית, כאשר נעשה שיטת זיכרון מניתן להפעלה, היא מטופלת על ידי גרעין לינוקס. ב- WSL, כאשר נעשה שיטת זיכוי מאותו הפעלה, גרעין Windows NT מעביר את הבקשה ל- lxcore.sys. במידת האפשר, lxcore.sys מתרגם את מערכת ההפעלה של לינוקס לשיחת Windows NT המקבילה אשר בתורו עושה את ההרמה הכבדה.

בהתחשב בהתעניינותה של מיקרוסופט בפלטפורמות קוד פתוח, אנשים רבים תהו האם ענקית הטכנולוגיה צריכה לרכוש חברות מרכזיות במיקוד לינוקס כמו Canonical, החברה שמאחורי מערכת ההפעלה אובונטו. למרות שמיקרוסופט ו- Canonical שיתפו פעולה על תוכנות קוד פתוח, אף אחת מהן לא פרסמה הערות על אפשרות זו.

אם אתה מעניין כיצד האינטראקציה בין לינוקס - חלונות מתפתחת, עבור לבלוג של מיקרוסופט. הצוות הבטיח כי פוסטים נוספים בבלוג בנושא זה יבואו בעקבותיו.

מיקרוסופט חושפת כיצד פועלת מערכת המשנה לינוקס של Windows 10