Програмите за Linux вече могат да работят в средата на Windows 10 и да използват хардуерно ускорение

По време на събитието  Місrоѕоft Вuіld 2020 coфтyepният гигaнт пpeдcтaви знaчитeлни пoдoбpeния в пoдcиcтeмaтa WЅL (Wіndоwѕ Ѕubѕуѕtеm fоr Lіnuх), ĸoятo вeчe пoддъpжa cтapтиpaнeтo нa изпълнимитe Lіnuх фaйлoвe в cpeдaтa нa oпepaциoннaтa cиcтeмa Wіndоwѕ 10. Haвяpнo идeятa e paзpaбoтчицитe дa мoгaт дa тecтвaт cвoитe пpoгpaми диpeĸтнo oт ĸoмпютъp пoд yпpaвлeниeтo нa Wіndоwѕ 10.  

Обновената подсистема WSL поддържа стартирането на Linux приложения с графичен интерфейс. Това е направено чрез виртуализация на достъпа до графичния процесор и чрез предоставянето на нови драйвери, чрез които могат да работят мениджърите на прозорци и графичните десктоп среди на различните Linux дистрибуции, включително и дистрибуциите базирани на Wayland. Поддържа се хардуерното ускорение на видеокартите, а графичните приложения за Linux и Windows могат да работят буквално рамо до рамо

За Linux ядрото е предложен отвореният драйвер dxgkrnl, създаващ и предоставящ устройството /dev/dxg с услуги повтарящи WDDM D3DKMT на Windows ядрото. Драйверът осигурява съединението на физическия графичен процесор с помощта на bus. Linux приложенията имат същото ниво на достъп до GPU, какъвто имат и родните приложения на Windows, при това без да има разделяне на ресурсите между Windows и Linux

Освен това, за Linux е предоставена библиотеката libd3d12.so, предоставяща пълноценен графичен API Direct3D 12. Тази библиотека използва същия код, както и родната Windows реализация Direct3D 12 и по функционалност е напълно идентична с библиотеката d3d12.dll. А в програмната библиотека DxCore (libdxcore.so) е включен опростен вариант на API DXGI (DirectX Graphics Infrastructure). Библиотеките libd3d12.so и libdxcore.so са фирмени и се предоставят само в двоичните компилации, които се монтират във WSL като /usr/lib/wsl/lib, и са съвместими с Ubuntu, Debian, Fedora, Centos, SUSE и дистрибуциите, базирани на Glibc.

Поддръжката на OpenGL в Mesa е осигурена чрез софтуерен слой, транслиращ извикванията в API DirectX 12. Планирано е реализирането на API Vulkan.

Добавена е поддръжката на компютърни изчисления с помощта на видеокарти, която дава възможност за използването на хардуерното ускорение в задачи от типа на дълбокото машинно обучение. На първия етап във WSL средата ще бъде осигурена поддръжката на CUDA и DirectML, работещи върху API D3D12 – така например, в Linux е възможно да се стартира TensorFlow с бекенд за DirectML. Поддръжката на OpenCL е възможна чрез софтуерен слой, извършващ преобразуване на извикванията към API DirectX 12

Инсталирането на WSL съвсем скоро ще става с помощта на следната опростена команда:

wsl.exe --install

Предлаганото за новата WSL2 подсистема Linux ядро се базира на оригиналното Linux Kernel 4.19 и се стартира във Windows 10 средата с помощта на виртуална машина, която вече е налична в Azure. Използваните за това ядро специфични за WSL2 пачове включват оптимизации за намаляване времето на стартиране на това ядро, намаляване на използваната памет, връщане във Windows на освободената от процесите на Linux памет и оставянето в това ядро на минимално необходимия комплект от драйвери и подсистеми.

Източник: kaldata

Видеа по темата

Facebook коментари

Коментари в сайта

Последни новини