تكشف Microsoft عن كيفية عمل نظام windows 10 linux الفرعي الخاص بها

فيديو: من زينو نهار اليوم ØµØ Ø¹ÙŠØ¯ÙƒÙ… انشر الفيديو Øتى يراه كل Ø§Ù„Ø 2024

فيديو: من زينو نهار اليوم ØµØ Ø¹ÙŠØ¯ÙƒÙ… انشر الفيديو Øتى يراه كل Ø§Ù„Ø 2024
Anonim

يُمكّن Bash on Ubuntu على نظام Windows ثنائيات Linux ELF64 الأصلية من العمل على Windows عبر نظام Windows الفرعي لنظام Linux (WSL). على الرغم من أن العديد من الأشخاص صُدموا من إعلان Bash on Ubuntu ، إلا أنه يجدر بالذكر أنه يفتح أبوابًا جديدة للتوافق بين أنظمة التشغيل المختلفة. تتخذ Microsoft خطوة أخرى إلى الأمام وتكشف عن كيفية عمل WSL الخاص بها حتى نتمكن من فهم كيفية تواصل النظامين مع بعضهما البعض بشكل أفضل.

تم إنشاء WSL بواسطة فريق Microsoft Windows Kernel ويحتوي على مكونات وضع المستخدم ووضع kernel. بشكل أكثر تحديدا ، يتكون النظام من:

  • خدمة مدير جلسة وضع المستخدم تتعامل مع دورة حياة نسخة Linux
  • برامج تشغيل موفر Pico (lxss.sys، lxcore.sys) الذي يتمثل دوره في محاكاة kernel Linux من خلال ترجمة syscalls Linux
  • تقوم بيكو بمعالجة نظام Linux المستخدم غير المعدل (مثل / bin / bash).

يوصف الاتصال بين المكونات الثلاثة على النحو التالي:

إنها المسافة بين ثنائيات Linux في وضع المستخدم ومكونات Windows kernel حيث يحدث السحر. من خلال وضع ثنائيات Linux غير المعدلة في عمليات Pico ، يمكننا تمكين مكالمات نظام Linux من توجيهها إلى kernel Windows. تقوم برامج التشغيل lxss.sys و lxcore.sys بترجمة مكالمات نظام Linux إلى واجهات برمجة تطبيقات NT ومحاكاة نواة Linux.

التحدي الرئيسي في العملية هو جعل النظامين يعملان معًا:

تنفذ WSL ثنائيات Linux ELF64 غير المعدلة عن طريق محاكاة واجهة Linux kernel أعلى نواة Windows NT. إحدى واجهات kernel التي يعرضها هي مكالمات النظام (syscalls). Syscall هي خدمة تقدمها kernel والتي يمكن استدعاؤها من وضع المستخدم. يعرض كل من kernel Linux و kernel Windows NT عدة مئات من syscalls إلى وضع المستخدم ، لكن لديهم دلالات مختلفة وليست عمومًا متوافقة. على سبيل المثال ، يتضمن kernel Linux أشياء مثل fork و open و kill بينما يحتوي kernel Windows NT على NtCreateProcess قابلة للمقارنة و NtOpenFile و NtTerminateProcess.

يتضمن نظام Windows الفرعي لنظام التشغيل Linux برامج تشغيل وضع kernel (lxss.sys و lxcore.sys) المسؤولة عن معالجة طلبات استدعاء نظام Linux بالتنسيق مع kernel Windows NT. لا تحتوي برامج التشغيل على تعليمات برمجية من Linux kernel ، ولكنها بدلاً من ذلك عبارة عن تطبيق غرفة نظيفة لواجهات kernel المتوافقة مع Linux. على نظام Linux الأصلي ، عندما يتم إجراء syscall من وضع المستخدم القابل للتنفيذ ، تتم معالجته بواسطة Linux kernel. في WSL ، عندما يتم إجراء syscall من نفس الملف القابل للتنفيذ ، يقوم kernel Windows NT بإعادة توجيه الطلب إلى lxcore.sys. حيثما كان ذلك ممكنًا ، تقوم lxcore.sys بترجمة syscall Linux إلى استدعاء Windows NT المكافئ الذي يقوم بدوره بالرفع الثقيل.

عند أخذ مصلحة Microsoft في المنصات مفتوحة المصدر بعين الاعتبار ، تساءل العديد من الناس عما إذا كان يجب على العملاق التكنولوجي أن يستحوذ على شركات كبرى تركز على نظام Linux مثل Canonical ، الشركة التي تعمل بنظام التشغيل Ubuntu. على الرغم من تعاون Microsoft و Canonical في برنامج مفتوح المصدر ، لم يصدر أي تعليق على هذا الاحتمال.

إذا كنت مهتمًا بكيفية تطور تفاعل Linux - Windows ، فانتقل إلى مدونة Microsoft. وعد الفريق بمتابعة المزيد من مشاركات المدونة حول هذا الموضوع.

تكشف Microsoft عن كيفية عمل نظام windows 10 linux الفرعي الخاص بها