„Microsoft“ atskleidžia, kaip veikia jos „Windows 10“ linux posistemis

Video: Week 1, continued 2024

Video: Week 1, continued 2024
Anonim

„Bash on Ubuntu“, „Windows“, leidžia „Linux ELF64“ dvejetainius failus „Windows“ paleisti naudojant „Windows“ posistemį „Linux“ (WSL). Nors daugelį žmonių sukrėtė „Bash on Ubuntu“ pranešimas, verta paminėti, kad jis atveria naujas duris skirtingų operacinių sistemų suderinamumui. „Microsoft“ žengia dar vieną žingsnį į priekį ir atskleidžia, kaip veikia jos WSL, kad galėtume geriau suprasti, kaip abi sistemos bendrauja viena su kita.

WSL sukūrė „Microsoft Windows“ branduolio komanda ir joje yra vartotojo režimo ir branduolio režimo komponentai. Tiksliau, sistemą sudaro:

  • vartotojo režimo sesijos tvarkyklės paslauga, tvarkanti „Linux“ egzempliorių gyvavimo ciklą
  • „Pico“ teikėjų tvarkyklės (lxss.sys, lxcore.sys), kurių vaidmuo yra mėgdžioti „Linux“ branduolį verčiant „Linux“ rinkmenas
  • „Pico“ procesai priima nepakeistą vartotojo režimą „Linux“ (pvz., / Bin / bash).

Trijų komponentų ryšys apibūdinamas taip:

Tarpas tarp vartotojo režimo „Linux“ dvejetainių failų ir „Windows“ branduolio komponentų yra ta vieta, kur vyksta magija. Įdėdami nemodifikuotus „Linux“ dvejetainius failus į „Pico“ procesus, mes įgaliname „Linux“ sistemos skambučius nukreipti į „Windows“ branduolį. „Lxss.sys“ ir „lxcore.sys“ tvarkyklės verčia „Linux“ sistemos kvietimus į NT API ir mėgdžioja „Linux“ branduolį.

Pagrindinis proceso uždavinys yra priversti abi sistemas veikti kartu:

WSL vykdo nemodifikuotus „Linux ELF64“ dvejetainius failus virtualizuodamas „Linux“ branduolio sąsają „Windows NT“ branduolio viršuje. Viena iš branduolio sąsajų, kurią jis atskleidžia, yra sistemos kvietimai (syscalls). „Syscall“ yra branduolio teikiama paslauga, kuriai galima paskambinti iš vartotojo režimo. Tiek „Linux“, tiek „Windows NT“ branduolys gali parodyti kelis šimtus sistemos modulių vartotojo režimui, tačiau jie turi skirtingą semantiką ir paprastai nėra tiesiogiai suderinami. Pvz., Į „Linux“ branduolį įeina tokie dalykai kaip „šakutė“, „atidaryti“ ir „nužudyti“, o „Windows NT“ branduolys turi panašius „NtCreateProcess“, „NtOpenFile“ ir „NtTerminateProcess“.

„Linux“ „Windows“ posistemyje yra branduolio režimo tvarkyklės (lxss.sys ir lxcore.sys), atsakingos už Linux sistemos skambučių užklausų tvarkymą derinant su „Windows NT“ branduoliu. Tvarkyklėse nėra „Linux“ branduolio kodo, jie yra švarios patalpos, suderinamos su „Linux“ suderinamomis branduolio sąsajomis. Natūralioje „Linux“ sistemoje, kai sisteminis skambutis yra pagamintas iš vykdomojo vartotojo režimo, jį tvarko „Linux“ branduolys. WSL, kai iš to paties vykdomojo vykdomojo failo sukuriamas iškvietimas, „Windows NT“ branduolys persiunčia užklausą į lxcore.sys. Jei įmanoma, „lxcore.sys“ išverčia „Linux syscall“ į lygiavertį „Windows NT“ iškvietimą, kuris savo ruožtu daro sunkų kėlimą.

Atsižvelgę ​​į „Microsoft“ susidomėjimą atvirojo kodo platformomis, daugelis žmonių svarstė, ar technologijų gigantas turėtų įsigyti didelių „Linux“ kompanijų, tokių kaip „Canonical“, už „Ubuntu“ operacinės sistemos. Nors „Microsoft“ ir „Canonical“ bendradarbiavo kurdamos atvirojo kodo programinę įrangą, nė viena iš nuomonių apie šią galimybę nepateikė.

Jei įdomu, kaip vystosi „Linux“ ir „Windows“ sąveika, eikite į „Microsoft“ tinklaraštį. Komanda pažadėjo, kad bus daugiau tinklaraščių įrašų šia tema.

„Microsoft“ atskleidžia, kaip veikia jos „Windows 10“ linux posistemis