A Microsoft feltárja a Windows 10 Linux alrendszer működését

Videó: Will Microsoft turn Windows 10 into a yet another Linux distro? 2024

Videó: Will Microsoft turn Windows 10 into a yet another Linux distro? 2024
Anonim

A Bash on Ubuntu Windowson lehetővé teszi a natív Linux ELF64 bináris fájlok futtatását Windows rendszeren a Windows alrendszer Linux alatt (WSL). Bár sok embert sokkolta a Bash az Ubuntu bejelentése, érdemes megemlíteni, hogy ez új ajtókat nyit a különféle operációs rendszerek kompatibilitására. A Microsoft újabb lépést tesz előre, és felfedi, hogy működik-e a WSL, hogy jobban megértsük, hogy a két rendszer hogyan kommunikál egymással.

A WSL-t a Microsoft Windows Kernel csapata hozta létre, és a felhasználói mód és a kernel mód összetevőit is tartalmazza. Pontosabban, a rendszer a következőkből áll:

  • felhasználói módú munkamenet-kezelő szolgáltatás, amely a Linux példányok életciklusát kezeli
  • A Pico szolgáltató illesztőprogramjai (lxss.sys, lxcore.sys), akiknek szerepe egy Linux kernel emulálása a Linux rendszerhívások fordításával
  • A Pico feldolgozza a módosítatlan felhasználói mód Linuxot (pl. / Bin / bash).

A három elem közötti kapcsolatot a következőképpen írjuk le:

A varázslat történik a felhasználói módú Linux bináris fájlok és a Windows kernel összetevői között. Ha módosítatlan Linux bináris fájlokat helyezünk el a Pico folyamatokba, lehetővé teszjük a Linux rendszerhívások irányítását a Windows kernelbe. Az lxss.sys és lxcore.sys illesztőprogramok lefordítják a Linux rendszerhívásokat NT API-kba és emulálják a Linux kernelt.

A folyamat fő kihívása az, hogy a két rendszer együtt működjön:

A WSL módosítatlan Linux ELF64 bináris fájlokat hajt végre egy Linux kernel felület virtualizálásával a Windows NT kernel tetején. Az egyik kernel interfész, amelyet felfed, a rendszerhívások (syscalls). A syscall egy olyan rendszermag által nyújtott szolgáltatás, amelyet felhasználói módból lehet meghívni. Mind a Linux, mind a Windows NT kernel több száz rendszerhívást tesz ki felhasználói módra, ám ezek eltérő szemantikájúak és általában nem közvetlenül kompatibilisek. Például a Linux kernel magában foglalja a villát, a nyitást és a megölést, míg a Windows NT kernelében található az összehasonlítható NtCreateProcess, NtOpenFile és NtTerminateProcess.

A Windows alrendszere Linuxhoz tartalmaz rendszermag-illesztőprogramokat (lxss.sys és lxcore.sys), amelyek felelősek a Linux rendszerhívási kérelmek kezeléséért, összehangolva a Windows NT kerneltel. Az illesztőprogramok nem tartalmaznak a Linux kernelből származó kódot, hanem a Linux-kompatibilis kernel interfészek tiszta helyiségének megvalósítását szolgálják. Natív Linux rendszeren, amikor a syscall felhasználói módból végrehajtható, a Linux kernel kezeli. A WSL rendszeren, amikor ugyanabból a végrehajtható fájlból készül egy syscall, a Windows NT kernel továbbítja a kérelmet az lxcore.sys fájlhoz. Ahol lehetséges, az lxcore.sys lefordítja a Linux syscall-ot egyenértékű Windows NT hívásra, amely viszont nehéz feladatokat jelent.

Figyelembe véve a Microsoft érdeklődését a nyílt forráskódú platformok iránt, sokan azon gondolkodtak, vajon a technológiai óriásnak meg kellene-e szereznie olyan nagy Linux-központú vállalatokat, mint például a Canonical, az Ubuntu operációs rendszer mögött álló cég. Noha a Microsoft és a Canonical együttműködtek a nyílt forrású szoftverek területén, egyikük sem tett észrevételt erről a lehetőségről.

Ha érdekli a Linux - Windows interakció fejlődése, keresse fel a Microsoft Blogját. A csapat megígérte, hogy további blogbejegyzések jelennek meg a témáról.

A Microsoft feltárja a Windows 10 Linux alrendszer működését