Microsoft разкрива как работи нейната подсистема Windows 10 Linux

The Баш на Ubuntu под Windows дава възможност на родните двоични файлове на ELF64 на Linux да работят на Windows чрез подсистемата на Windows за Linux (WSL). Въпреки че много хора бяха шокирани от съобщението Bash on Ubuntu, заслужава да се спомене, че това отваря нови врати за съвместимостта между различните операционни системи. Microsoft прави още една крачка напред и разкрива как работи нейният WSL, за да можем по-добре да разберем как двете системи комуникират помежду си.

WSL е създаден от екипа на ядрото на Microsoft Windows и съдържа компоненти както в потребителски режим, така и в режим на ядро. По-конкретно, системата се състои от:

  • услуга за управление на сесии в потребителски режим, обработваща жизнения цикъл на инстанцията на Linux
  • Драйвери за доставчици на Pico (lxss.sys, lxcore.sys), чиято роля е да емулират ядро ​​на Linux чрез превод на Linux syscalls
  • Pico обработва хостинг на немодифициран потребителски режим Linux (напр. / Bin / bash).

Връзката между трите компонента е описана по следния начин:

Това е пространството между бинарните файлове на потребителския режим на Linux и компонентите на ядрото на Windows, където се случва магията. Поставяйки немодифицирани двоични файлове на Linux в процесите на Pico, ние позволяваме на системните повиквания на Linux да бъдат насочени в ядрото на Windows. Драйверите lxss.sys и lxcore.sys превеждат системните повиквания на Linux в NT API и емулират ядрото на Linux.

Основното предизвикателство в процеса е да накараме двете системи да работят заедно:

WSL изпълнява немодифицирани двоични файлове на ELF64 на Linux, като виртуализира интерфейс на ядрото на Linux върху ядрото на Windows NT. Един от интерфейсите на ядрото, които той излага, са системни повиквания (syscalls). Syscall е услуга, предоставена от ядрото, която може да бъде извикана от потребителски режим. Както ядрото на Linux, така и ядрото на Windows NT излагат няколкостотин syscalls на потребителски режим, но те имат различна семантика и обикновено не са пряко съвместими. Например ядрото на Linux включва неща като fork, open и kill, докато ядрото на Windows NT има сравними NtCreateProcess, NtOpenFile и NtTerminateProcess.

Подсистемата на Windows за Linux включва драйвери за режим на ядрото (lxss.sys и lxcore.sys), които отговарят за обработката на заявките за системни повиквания на Linux в координация с ядрото на Windows NT. Драйверите не съдържат код от ядрото на Linux, а вместо това са реализация на чиста стая на интерфейси на ядро, съвместими с Linux. В родния Linux, когато syscall е направен от изпълним файл в потребителски режим, той се обработва от ядрото на Linux. На WSL, когато syscall е направен от същия изпълним файл, ядрото на Windows NT препраща заявката към lxcore.sys. Където е възможно, lxcore.sys превежда системния извикване на Linux в еквивалентното повикване на Windows NT, което от своя страна прави тежката работа.

Вземайки предвид интереса на Microsoft към платформите с отворен код, много хора се чудеха дали технологичният гигант трябва да придобие големи компании, фокусирани върху Linux, като Canonical, компанията, стояща зад операционната система Ubuntu. Въпреки че Microsoft и Canonical си сътрудничиха по софтуера с отворен код, нито един от двамата не даде коментари по тази възможност.

Ако ви интересува как се развива взаимодействието Linux - Windows, отидете в блога на Microsoft. Екипът обеща, че ще последват още публикации в блога по тази тема.

СВЪРЗАНИ ИСТОРИИ, КОИТО ТРЯБВА ДА ПРОВЕРИТЕ:

  • Потребителите на Linux съобщават за проблеми „Слушалките спряха да работят в Windows 8.1“
  • Microsoft и Canonical предлагат Bash за Windows 10 на Build 2016
  • Мюнхен започва да разпространява безплатни компактдискове с Ubuntu за потребители на Windows XP
Microsoft носи много подобрения в Bash на Ubuntu в Windows 10

Microsoft носи много подобрения в Bash на Ubuntu в Windows 10Windows 10Windows Linux подсистема

Microsoft представи много подобрения в Windows 10 Preview с най-новата компилация 14361. Функция, която вероятно е получила най-голям брой промени, е Баш на Ubuntu на Windows 10. Microsoft разкри о...

Прочетете още
Вече можете да намерите Linux Oracle в Microsoft Store

Вече можете да намерите Linux Oracle в Microsoft StoreLinuxOracleWindows Linux подсистема

Интересувахте ли се да изтеглите най-новата версия на Oracle Linux?Не търсете повече от Microsoft Store, тъй като там ще го намерите.Приложението ще изтегли и инсталира Oracle Linux 8 Update 5 за W...

Прочетете още
Как да монтирате, четете или форматирате EXT4 на Windows 11

Как да монтирате, четете или форматирате EXT4 на Windows 11LinuxWindows Linux подсистема

Първо се уверете, че WSL2 е инсталиран и актуализиранWSL2 ви позволява да монтирате и четете EXT4 на Windows 11 само с няколко командни реда в PowerShell.Преди да започнете нещо, уверете се, че WSL...

Прочетете още