Keserasian Windows

Linux Kernel pada Windows 10

Linux Kernel pada Windows 10
Bagaimana Subsistem Windows baru untuk Linux (v2) berfungsi?

Microsoft baru-baru ini mengumumkan bahawa mereka akan segera menghantar Kernel Linux yang disepadukan langsung ke Windows 10. Ini akan membolehkan pembangun memanfaatkan platform Windows 10 ketika mengembangkan aplikasi untuk Linux. Sebenarnya, ini adalah langkah seterusnya dalam evolusi Subsistem Windows untuk Linux (WSL). Mari kita tinjau WSL versi 1 sebelum masuk ke intergasi kernel Linux yang terperinci dan apa maksudnya.

Sekiranya anda ingin memulakan dengan WSL (v1) berikut adalah panduan untuk itu.

1.  Versi WSL1

Subsistem Windows untuk Linux semestinya disebut subsistem Linux untuk Windows. Ia menawarkan pemacu (subsistem) untuk OS Windows, yang menerjemahkan panggilan sistem Linux menjadi panggilan sistem Windows 10 asli yang difahami oleh kernel NT.

Ini menimbulkan ilusi yang agak boleh dipercayai untuk binari Linux yang sebenarnya berjalan di atas kernel Linux! Ini berfungsi dengan baik sehingga anda bukan sahaja dapat menjalankan binari 64-bit sederhana yang disusun untuk Linux, tetapi anda juga dapat menjalankan keseluruhan Userland (.k.pengedaran Linux seperti Debian atau Ubuntu) di atas WSL v1. Oleh itu, apabila anda memasang Ubuntu dari kedai Microsoft, ia hanya mengambil binari wilayah pengguna Ubuntu yang dihantar oleh Canonical untuk persekitaran WSL v1 Microsoft.

Walau bagaimanapun, WSL v1 masih jauh dari sempurna. Semantik tertentu yang diharapkan oleh sistem Linux sama sekali tidak dapat diterima pada Windows. Contohnya, anda tidak boleh menukar nama fail dari fail terbuka di Windows, tetapi anda boleh melakukannya di Linux.

Contoh lain yang jelas termasuk prestasi sistem fail WSL v1 yang buruk dan ketidakmampuannya untuk menjalankan Docker.

2.  WSL v2 Kernel Linux

Versi baru WSL ini menyelesaikan semua masalah ini dengan memasukkan kernel Linux yang berjalan di hypervisor Hyper-V. Sepanjang pengumuman dan demo mereka, Craig Loewen dan rakannya dari Microsoft menekankan bahawa, pada masa yang akan datang, Microsoft akan membuat pelaburan besar dalam teknologi virtualisasi.

Menggunakan Kernel Linux menyelesaikan semua masalah semantik yang tidak dapat diselesaikan dengan hanya menggunakan lapisan terjemahan panggilan sistem. Kernel Linux ini akan sangat ringan dan akan dikekalkan oleh Microsoft dengan semua perubahan pada Linux Kernel dibuat sebagai sumber terbuka. Dalam demo mereka, mereka menunjukkan bagaimana anda boleh memindahkan aplikasi WSL v1 yang ada untuk berjalan tanpa dimodifikasi ke persekitaran WSL v2. Prestasi sistem fail telah meningkat sebanyak 3-4 kali dan keseluruhan sistem terasa lebih responsif.

3.  Bagaimanakah ia berfungsi?

Jadi pada dasarnya, kami mempunyai VM Linux dengan banyak aplikasi pengguna, e.g, OpenSUSE atau Debian atau kawasan pengguna Ubuntu. Anda mendapat lebih daripada satu distro pada mesin Windows anda, dengan satu VM Linux, jadi itu kemas. Tetapi ini juga menunjukkan bahawa setiap kali anda membuka terminal WSL Ubuntu, anda menjalankan VM lengkap! Itu akan mengambil sedikit masa, betul?

Sebenarnya tidak. Kernel Linux sebenarnya cukup kecil dan cukup ringan sehingga Microsoft dapat memperoleh masa boot yang gila dengannya (~ 1second). Mereka mencapainya dengan membuang semua kod bootloader dan kerana ini adalah VM, mereka langsung memuatkan kernel Linux ke ruang alamatnya dalam memori dan mengatur beberapa keadaan VM yang diharapkan kernel. Ini adalah mekanisme yang sama yang menggerakkan ciri Windows 10 baru iaitu Windows Sandbox.

Memiliki jejak memori yang sangat kecil, memuat dalam sekejap dan format sistem fail ext4 asli memungkinkan untuk memberikan pengalaman pengguna yang sangat lancar. VM hanya berfungsi apabila anda memerlukannya.

Lebih-lebih lagi, ia tidak sepenuhnya terpencil seperti VM tradisional. Anda boleh berinteraksi dengan sistem Windows yang lain dengan mudah, termasuk fail dalam pemacu Windows anda menggunakan WSL v2. Ia bukan VM yang terpencil tetapi merupakan bahagian bersepadu Windows 10. Bagaimana ia dapat mencapainya?

4.  Hayatilah Rancangan 9

Dengan WSL v1, mengakses fail dan direktori pada tetamu Windows anda adalah perkara biasa. Kawasan pengguna Linux anda hanyalah aplikasi di Windows, jadi ia dapat membaca dan menulis fail yang awalnya menjadi milik OS asli dengan mudah.

Dengan WSL v2, anda mempunyai VM yang berjalan dengan cakera keras maya (tentu saja diformat dengan ext4) dan jika kami mahukan pengalaman serupa seperti WSL v1, kami memerlukan beberapa mekanisme tambahan. Masukkan Pelan 9.

Plan 9, juga ditulis sebagai, 9P adalah OS yang pada mulanya dibangunkan di Bell Labs. Walaupun tidak mungkin anda akan menjalankannya dalam pengeluaran, ia masih berjalan kerana pelbagai sistem operasi lain menggunakan idea menarik yang diinkubasi di dalamnya, termasuk Protokol 9P untuk pelayan fail.

5.  Sistem fail

WSL v2 akan mempunyai pelayan protokol 9P yang berjalan di hos Windows 10 anda, dan klien 9P berjalan di dalam aplikasi WSL anda. Ini membolehkan anda mengakses fail Windows 10 secara asli di dalam persekitaran WSL anda. Pemacu C: akan dipasang di / mnt / c, sama seperti WSL v1, dan setiap fail di dalam host Windows 10 dapat dicapai oleh lingkungan WSL.

Kebalikannya juga akan berlaku. Akan ada pelayan protokol 9P yang berjalan di persekitaran Linux anda dengan klien yang sesuai pada hos Windows 10. Ini akan membolehkan pengguna mengakses sistem fail Linux (ext4) mereka dari persekitaran Windows 10. Membolehkan anda mengedit kod sumber atau fail konfigurasi menggunakan IDE kegemaran anda yang dipasang di Windows, menyenaraikan semua direktori menggunakan penjelajah fail Windows 10, dan banyak lagi. Pada dasarnya, anda akan menjalankan distro Linux kegemaran anda dengan Windows 10 UI.

6.  Docker

Dalam pengumuman mereka, Microsoft juga mengisyaratkan bahawa persekitaran baru ini juga akan digunakan oleh Docker untuk menghantar aplikasi Docker untuk Windows masa depan mereka. Oleh kerana terdapat kernel Linux, menjalankan Docker di atasnya, akan menjadi sangat mudah. Dalam demo, mereka menjalankan Docker di atas Ubuntu yang menjalankan WSL v2 dan ia berfungsi seolah-olah berjalan pada pemasangan Ubuntu asli.

Untuk memberikan contoh yang sangat dangkal, jika anda pernah bekerjasama dengan Dockerfiles pada sistem Windows, anda pasti menyedari masalah keselamatan yang disebabkan kerana kurangnya kebenaran fail seperti Unix. Itu tidak lagi menjadi masalah. Docker pada Windows sudah menggunakan VM khusus untuk menyediakan wadah Linux, mungkin, sekarang ia akan menggunakan WSL v2 untuk menggunakan Kernel Linux yang dihantar oleh microsoft.

Kesimpulannya

Secara keseluruhan, saya sangat kagum dengan apa yang dilakukan oleh Microsoft untuk menyediakan tempat perlindungan bagi pembangun Linux yang juga ingin menggunakan Windows. Mudah-mudahan, dalam jangka masa panjang, ini akan mendorong banyak penyebaran silang antara dua ekosistem yang berbeza.

Sekiranya anda menjalankan edisi Windows 10 Home, Pro atau perusahaan, anda dapat menikmati WSL v2 dengan memilih versi Pratonton Windows 10. Berikut adalah panduan bagaimana melakukannya.

Tutorial OpenTTD
OpenTTD adalah salah satu permainan simulasi perniagaan yang paling popular di luar sana. Dalam permainan ini, anda perlu membuat perniagaan pengangku...
SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...
Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...