Inihayag ng Microsoft kung paano gumagana ang windows 10 linux subsystem nito

Video: Windows 10 Bash & Linux Subsystem Setup 2024

Video: Windows 10 Bash & Linux Subsystem Setup 2024
Anonim

Ang Bash sa Ubuntu sa Windows ay nagbibigay-daan sa mga katutubong binasang Linux ELF64 na tumakbo sa Windows sa pamamagitan ng Windows Subsystem para sa Linux (WSL). Bagaman maraming mga tao ang nabigla ng anunsyo ng Bash sa Ubuntu, nararapat na banggitin na nagbubukas ito ng mga bagong pintuan para sa pagiging tugma sa pagitan ng iba't ibang mga operating system. Ang Microsoft ay gumawa ng isa pang hakbang pasulong at inihayag kung paano gumagana ang WSL upang mas maiintindihan namin kung paano nakikipag-usap ang bawat system sa bawat isa.

Ang WSL ay nilikha ng koponan ng Microsoft Windows Kernel at naglalaman ng parehong mga mode ng gumagamit at mga sangkap ng kernel mode. Mas partikular, ang sistema ay binubuo ng:

  • isang serbisyo ng session ng tagapamahala ng user mode na humahawak sa cycle ng buhay ng Linux
  • Mga driver ng Pico provider (lxss.sys, lxcore.sys) na ang papel ay tularan ang isang Linux kernel sa pamamagitan ng pagsalin sa Linux syscalls
  • Ang mga proseso ng Pico na nagho-host ng hindi binagong mode ng gumagamit ng Linux (hal. / Bin / bash).

Ang koneksyon sa pagitan ng tatlong mga sangkap ay inilarawan tulad ng sumusunod:

Ito ay ang puwang sa pagitan ng mga mode ng gumagamit ng Linux binaries at ang mga bahagi ng kernel ng Windows kung saan nangyayari ang mahika. Sa pamamagitan ng paglalagay ng hindi binagong mga binaries ng Linux sa mga proseso ng Pico pinagana namin ang mga tawag sa system ng Linux na idirekta sa kernel ng Windows. Ang lxss.sys at lxcore.sys driver ay isinalin ang tawag sa sistema ng Linux sa mga NT API at tularan ang Linux kernel.

Ang pangunahing hamon sa proseso ay upang gawin ang dalawang system na magkasama:

Ginagawa ng WSL ang hindi binagong mga binaryong Linux ELF64 sa pamamagitan ng virtualizing ng isang Linux kernel interface sa tuktok ng Windows NT kernel. Ang isa sa mga interface ng kernel na inilalantad nito ay ang mga tawag sa system (syscalls). Ang syscall ay isang serbisyo na ibinigay ng kernel na maaaring tawagin mula sa mode ng gumagamit. Parehong ang Linux kernel at Windows NT kernel ay naglalantad ng ilang daang syscall sa mode ng gumagamit, ngunit mayroon silang iba't ibang mga semantika at sa pangkalahatan ay hindi direktang magkatugma. Halimbawa, ang Linux kernel ay nagsasama ng mga bagay tulad ng tinidor, bukas, at pumatay habang ang Windows NT kernel ay may maihahambing na NtCreateProcess, NtOpenFile, at NtTerminateProcess.

Kasama sa Windows Subsystem para sa Linux ang mga driver ng kernel mode (lxss.sys at lxcore.sys) na responsable sa paghawak ng mga kahilingan sa tawag sa system ng Linux sa pakikipag-ugnay sa Windows NT kernel. Ang mga driver ay hindi naglalaman ng code mula sa Linux kernel ngunit sa halip ay isang malinis na silid na pagpapatupad ng mga interface na magkatugma sa Linux. Sa katutubong Linux, kapag ang isang syscall ay ginawa mula sa isang mode ng gumagamit na maipapatupad ay hahawakan ito ng kernel ng Linux. Sa WSL, kapag ang isang syscall ay ginawa mula sa parehong maipapatupad na Windows NT kernel ay ipinapasa ang kahilingan sa lxcore.sys. Kung saan posible, isinalin ng lxcore.sys ang Linux syscall sa katumbas na tawag sa Windows NT na kung saan ay ang mabibigat na pag-angat.

Isinasaalang-alang ang interes ng Microsoft sa mga open-source platform, maraming mga tao ang nagtaka kung ang tech higante ay dapat makakuha ng mga pangunahing kumpanya na nakatuon sa Linux tulad ng Canonical, ang kumpanya sa likod ng operating system ng Ubuntu. Bagaman ang Microsoft at Canonical ay nakipagtulungan sa open-source software, ni naglabas ng anumang mga puna sa posibilidad na ito.

Kung kawili-wili ka kung paano nagbago ang pakikipag-ugnay ng Linux - Windows, pumunta sa Blog ng Microsoft. Nangako ang koponan na mas maraming mga post sa blog sa paksang ito ang susunod.

Inihayag ng Microsoft kung paano gumagana ang windows 10 linux subsystem nito