Microsoft, windows 10 linux alt sisteminin nasıl çalıştığını açıklıyor

Video: installing Ubuntu Bash on windows 10 2024

Video: installing Ubuntu Bash on windows 10 2024
Anonim

Windows'taki Ubuntu'daki Bash, yerel Linux ELF64 ikili dosyalarının Windows için Windows Alt Sistemi (WSL) üzerinden Windows'ta çalışmasını sağlar. Her ne kadar Bash Ubuntu'nun duyurusu karşısında şok olsa da, farklı işletim sistemleri arasındaki uyumluluk için yeni kapılar açtığını belirtmekte fayda var. Microsoft bir adım daha ileri gidiyor ve WSL'nin nasıl çalıştığını ortaya koyuyor, böylece iki sistemin birbiriyle nasıl iletişim kurduğunu daha iyi anlayabiliyoruz.

WSL, Microsoft Windows Çekirdek ekibi tarafından oluşturuldu ve hem kullanıcı modu hem de çekirdek modu bileşenleri içeriyor. Daha spesifik olarak, sistem şunlardan oluşur:

  • Linux örneği yaşam döngüsünü ele alan bir kullanıcı modu oturum yöneticisi hizmeti
  • Pico sağlayıcı sürücüleri (lxss.sys, lxcore.sys) rolü Linux sistemlerini çevirerek Linux çekirdeğini taklit etmektir.
  • Pico, değiştirilmemiş kullanıcı modu Linux'u (örneğin / bin / bash) barındıran işlemleri işler.

Üç bileşen arasındaki bağlantı aşağıda açıklanmıştır:

Kullanıcı modu Linux ikili dosyaları ve sihrin gerçekleştiği Windows çekirdeği bileşenleri arasındaki boşluktur. Değiştirilmemiş Linux ikili dosyalarını Pico işlemlerine yerleştirerek Linux sistem çağrılarının Windows çekirdeğine yönlendirilmesini sağlıyoruz. Lxss.sys ve lxcore.sys sürücüleri Linux sistem çağrılarını NT API'lerine çevirir ve Linux çekirdeğini taklit eder.

Süreçteki en büyük zorluk iki sistemin birlikte çalışmasını sağlamak:

WSL, Windows NT çekirdeğinin üzerindeki bir Linux çekirdek arabirimini sanallaştırarak değiştirilmemiş Linux ELF64 ikili dosyalarını çalıştırır. Gösterdiği çekirdek arayüzlerinden biri sistem çağrılarıdır (sistem çağrıları). Sistem çağrısı, çekirdek tarafından kullanıcı modundan çağrılabilen bir hizmettir. Hem Linux çekirdeği hem de Windows NT çekirdeği, birkaç yüz sistem çağrısı kullanıcı moduna maruz bırakıyor, ancak farklı anlambilimlere sahipler ve genellikle doğrudan uyumlu değiller. Örneğin, Linux çekirdeği, Windows NT çekirdeğinde karşılaştırılabilir NtCreateProcess, NtOpenFile ve NtTerminateProcess varken çatal, açık ve öldürme gibi şeyler içerir.

Linux için Windows Alt Sistemi, Windows NT çekirdeği ile koordineli olarak Linux sistem çağrısı isteklerini yerine getirmekten sorumlu olan çekirdek modu sürücüleri (lxss.sys ve lxcore.sys) içerir. Sürücüler, Linux çekirdeğinden kod içermez, bunun yerine Linux uyumlu çekirdek arabirimlerinin temiz bir oda uygulamasıdır. Yerel Linux'ta, bir sistem çalıştırılabilir bir kullanıcı modundan bir çağrı yapıldığında, Linux çekirdeği tarafından idare edilir. WSL'de, bir sistem aynı yürütülebilir dosyadan yapıldığında, Windows NT çekirdeği isteği lxcore.sys'ye iletir. Mümkünse, lxcore.sys, Linux sistem çağrısını, ağır kaldırma işlemini yapan eşdeğer Windows NT çağrısına çevirir.

Microsoft'un açık kaynaklı platformlara ilgisi dikkate alındığında, birçok kişi teknoloji devinin Ubuntu işletim sisteminin arkasındaki şirket olan Canonical gibi büyük Linux odaklı şirketleri edinmesi gerekip gerekmediğini merak etti. Her ne kadar Microsoft ve Canonical açık kaynaklı yazılımlar üzerinde işbirliği yapmış olsalar da, bu olasılık hakkında herhangi bir yorumda bulunmadılar.

Linux - Windows etkileşiminin nasıl geliştiğini merak ediyorsanız, Microsoft'un Blog'una gidin. Ekip bu konuda daha fazla blog yazısı izleyeceğine söz verdi.

Microsoft, windows 10 linux alt sisteminin nasıl çalıştığını açıklıyor