Microsoft odhaluje, jak funguje jeho podsystém Windows 10 Linux

The Bash na Ubuntu ve Windows umožňuje spuštění nativních binárních souborů Linux ELF64 v systému Windows prostřednictvím subsystému Windows pro Linux (WSL). Ačkoli mnoho lidí bylo šokováno oznámením Bash na Ubuntu, stojí za zmínku, že otevírá nové dveře pro kompatibilitu mezi různými operačními systémy. Společnost Microsoft učinila další krok vpřed a odhalila, jak její WSL funguje, abychom mohli lépe porozumět tomu, jak tyto dva systémy vzájemně komunikují.

WSL byl vytvořen týmem Microsoft Windows Kernel a obsahuje komponenty uživatelského režimu i režimu jádra. Přesněji řečeno, systém se skládá z:

  • služba správce relací v uživatelském režimu zpracovávající životní cyklus instance systému Linux
  • Ovladače poskytovatele Pico (lxss.sys, lxcore.sys), jejichž úlohou je emulovat linuxové jádro překladem linuxových syscallů
  • Pico zpracovává hostování nemodifikovaného uživatelského režimu Linux (např. / Bin / bash).

Spojení mezi třemi komponenty je popsáno následovně:

Jedná se o prostor mezi binárními soubory systému Linux v uživatelském režimu a součástmi jádra Windows, kde se kouzlo odehrává. Umístěním nemodifikovaných binárních souborů Linuxu do procesů Pico umožňujeme směrování systémových volání systému Linux do jádra systému Windows. Ovladače lxss.sys a lxcore.sys překládají systémová volání systému Linux do rozhraní NT API a emulují linuxové jádro.

Hlavní výzvou v procesu je zajistit, aby tyto dva systémy fungovaly společně:

WSL provádí nemodifikované binární soubory Linux ELF64 virtualizací rozhraní jádra Linuxu nad jádrem Windows NT. Jedním z rozhraní jádra, která zveřejňuje, jsou systémová volání (syscalls). Syscall je služba poskytovaná jádrem, kterou lze volat z uživatelského režimu. Jádro Linuxu i Windows NT vystavuje několik stovek syscallů do uživatelského režimu, ale mají odlišnou sémantiku a obecně nejsou přímo kompatibilní. Například linuxové jádro obsahuje věci jako fork, open a kill, zatímco jádro Windows NT má srovnatelné NtCreateProcess, NtOpenFile a NtTerminateProcess.

Subsystém Windows pro Linux obsahuje ovladače režimu jádra (lxss.sys a lxcore.sys), které jsou odpovědné za zpracování požadavků na volání systému Linux v koordinaci s jádrem Windows NT. Ovladače neobsahují kód z linuxového jádra, ale místo toho jsou implementací čistého prostoru pro rozhraní jádra kompatibilní s Linuxem. V nativním systému Linux, je-li systémový hovor vytvořen ze spustitelného uživatelského režimu, je zpracován jádrem systému Linux. Na WSL, když je syscall vytvořen ze stejného spustitelného souboru, jádro Windows NT předá požadavek lxcore.sys. Kde je to možné, lxcore.sys překládá linuxový syscall na ekvivalentní volání Windows NT, což zase dělá těžké zvedání.

Když vezmeme v úvahu zájem Microsoftu o platformy s otevřeným zdrojovým kódem, mnoho lidí si kládlo otázku, zda technologický gigant by měl získat významné společnosti zaměřené na Linux, jako je Canonical, společnost stojící za operačním systémem Ubuntu. Ačkoli Microsoft a Canonical spolupracovali na open-source softwaru, ani jeden nevydal žádné komentáře k této možnosti.

Pokud vás zajímá, jak se vyvíjí interakce Linux - Windows, přejděte na blog společnosti Microsoft. Tým slíbil, že bude následovat více blogových příspěvků na toto téma.

SOUVISEJÍCÍ PŘÍBĚHY, KTERÉ POTŘEBUJETE KONTROLA:

  • Uživatelé systému Linux hlásí problémy „Sluchátka přestala fungovat v systému Windows 8.1“
  • Microsoft a Canonical přináší Bash do Windows 10 na Build 2016
  • Mnichov začíná distribuovat bezplatné disky CD se systémem Ubuntu uživatelům systému Windows XP
Jak připojit, číst nebo formátovat EXT4 ve Windows 11

Jak připojit, číst nebo formátovat EXT4 ve Windows 11LinuxWindows Linuxový Subsystém

Nejprve se ujistěte, že je nainstalován a aktualizován WSL2WSL2 vám umožňuje připojit a číst EXT4 ve Windows 11 pomocí několika příkazových řádků v PowerShellu.Než cokoliv spustíte, ujistěte se, že...

Přečtěte si více