Membandingkan WSL 1 dan WSL 2

Alasan utama untuk memperbarui dari WSL 1 ke WSL 2 adalah untuk:

  • meningkatkan performa sistem file,
  • mendukung kompatibilitas panggilan sistem penuh.

WSL 2 menggunakan teknologi virtualisasi terbaru dan terbesar untuk menjalankan kernel Linux di dalam komputer virtual (VM) utilitas ringan. Namun, WSL 2 bukanlah pengalaman VM tradisional.

Panduan ini akan membandingkan WSL 1 dan WSL 2, termasuk pengecualian untuk menggunakan WSL 1 daripada WSL 2. Perbedaan utama antara WSL 1 dan WSL 2 adalah penggunaan kernel Linux aktual di dalam VM terkelola, dukungan untuk kompatibilitas panggilan sistem penuh, dan performa di seluruh sistem operasi Linux dan Windows.

Membandingkan fitur

Fitur WSL 1 WSL 2
Integrasi antara Windows dan Linux
Waktu boot cepat
Cetak kaki sumber daya kecil dibandingkan dengan Virtual Machines tradisional
Berjalan dengan versi VMware dan VirtualBox saat ini
VM terkelola
Kernel Linux Lengkap
Kompatibilitas panggilan sistem penuh
Performa di seluruh sistem file OS

Seperti yang Dapat Anda ketahui dari tabel perbandingan di atas, arsitektur WSL 2 mengungguli WSL 1 dalam beberapa cara, dengan pengecualian performa di seluruh sistem file OS, yang dapat diatasi dengan menyimpan file proyek Anda pada sistem operasi yang sama dengan alat yang Anda jalankan untuk mengerjakan proyek.

WSL 2 hanya tersedia di Windows 10, Versi 1903, Build 18362 atau yang lebih tinggi. Periksa versi Windows Anda dengan memilih kunci logo Windows + R, ketik winver, pilih OK. (Atau masukkan ver perintah di Windows Command Prompt). Anda mungkin perlu memperbarui ke versi Windows terbaru. Untuk build yang lebih rendah dari 18362, WSL tidak didukung sama sekali.

Catatan

WSL 2 akan berfungsi dengan VMware 15.5.5+ dan VirtualBox 6+. Pelajari lebih lanjut di FAQ kami.

Apa yang baru di WSL 2

WSL 2 adalah perombakan utama dari arsitektur yang mendasar dan menggunakan teknologi virtualisasi dan kernel Linux untuk mengaktifkan fitur baru. Tujuan utama pembaruan ini adalah untuk meningkatkan performa sistem file dan menambahkan kompatibilitas panggilan sistem penuh.

Arsitektur WSL 2

Pengalaman VM tradisional bisa lambat untuk boot up, terisolasi, mengonsumsi banyak sumber daya, dan membutuhkan waktu Anda untuk mengelolanya. WSL 2 tidak memiliki atribut ini.

WSL 2 memberikan manfaat WSL 1, termasuk integrasi yang mulus antara Windows dan Linux, waktu boot cepat, jejak sumber daya kecil, dan tidak memerlukan konfigurasi atau manajemen VM. Meskipun WSL 2 menggunakan VM, itu dikelola dan dijalankan di belakang layar, meninggalkan Anda dengan pengalaman pengguna yang sama dengan WSL 1.

Kernel Linux penuh

Kernel Linux di WSL 2 dibangun oleh Microsoft dari cabang stabil terbaru, berdasarkan sumber yang tersedia di kernel.org. Kernel ini telah disetel khusus untuk WSL 2, mengoptimalkan ukuran dan performa untuk memberikan pengalaman Linux yang luar biasa di Windows. Kernel akan dilayankan oleh pembaruan Windows, yang berarti Anda akan mendapatkan perbaikan keamanan terbaru dan peningkatan kernel tanpa perlu mengelolanya sendiri.

Kernel Linux WSL 2 sumber terbuka. Jika Anda ingin mempelajari lebih lanjut, lihat posting blog Pengiriman Kernel Linux dengan Windows ditulis oleh tim yang membuatnya.

Pelajari selengkapnya di Catatan Rilis untuk kernel Subsistem Windows untuk Linux.

Peningkatan performa IO file

Operasi intensif file seperti klon git, penginstalan npm, pembaruan apt, peningkatan apt, dan banyak lagi semuanya terlihat lebih cepat dengan WSL 2.

Peningkatan kecepatan aktual akan tergantung pada aplikasi mana yang Anda jalankan dan bagaimana hal itu berinteraksi dengan sistem file. Versi awal WSL 2 berjalan hingga 20x lebih cepat dibandingkan dengan WSL 1 saat membuka kemasan tarball zip, dan sekitar 2-5x lebih cepat saat menggunakan klon git, instal npm dan cmake pada berbagai proyek.

Kompatibilitas panggilan sistem penuh

Biner Linux menggunakan panggilan sistem untuk melakukan fungsi seperti mengakses file, meminta memori, membuat proses, dan banyak lagi. Sedangkan WSL 1 menggunakan lapisan terjemahan yang dibangun oleh tim WSL, WSL 2 menyertakan kernel Linux sendiri dengan kompatibilitas panggilan sistem penuh. Manfaatnya meliputi:

  • Serangkaian aplikasi baru yang dapat Anda jalankan di dalam WSL, seperti Docker dan banyak lagi.

  • Setiap pembaruan ke kernel Linux segera siap digunakan. (Anda tidak perlu menunggu tim WSL menerapkan pembaruan dan menambahkan perubahan).

Pengecualian untuk menggunakan WSL 1 daripada WSL 2

Kami menyarankan agar Anda menggunakan WSL 2 karena menawarkan performa yang lebih cepat dan kompatibilitas panggilan sistem 100%. Namun, ada beberapa skenario tertentu di mana Anda mungkin lebih suka menggunakan WSL 1. Pertimbangkan untuk menggunakan WSL 1 jika:

  • File proyek Anda harus disimpan dalam sistem file Windows. WSL 1 menawarkan akses yang lebih cepat ke file yang dipasang dari Windows.
    • Jika Anda akan menggunakan distribusi WSL Linux Anda untuk mengakses file proyek pada sistem file Windows, dan file-file ini tidak dapat disimpan pada sistem file Linux, Anda akan mencapai performa yang lebih cepat di seluruh sistem file OS dengan menggunakan WSL 1.
  • Proyek yang memerlukan kompilasi silang menggunakan alat Windows dan Linux pada file yang sama.
    • Performa file di seluruh sistem operasi Windows dan Linux lebih cepat di WSL 1 daripada WSL 2, jadi jika Anda menggunakan aplikasi Windows untuk mengakses file Linux, saat ini Anda akan mencapai performa yang lebih cepat dengan WSL 1.
  • Proyek Anda memerlukan akses ke port serial atau perangkat USB. Namun Dukungan perangkat USB sekarang tersedia untuk WSL 2 melalui proyek USBIPD-WIN. Lihat Koneksi perangkat USB untuk langkah-langkah pengaturan.
  • WSL 2 tidak menyertakan dukungan untuk mengakses port serial. Pelajari lebih lanjut di FAQ atau di WSL GitHub masalah repositori pada dukungan serial.
  • Anda memiliki persyaratan memori yang ketat
    • Penggunaan memori WSL 2 tumbuh dan menyusut saat Anda menggunakannya. Ketika proses membebaskan memori, ini secara otomatis dikembalikan ke Windows. Namun, pada saat ini WSL 2 belum merilis halaman yang di-cache dalam memori kembali ke Windows sampai instans WSL dimatikan. Jika Anda memiliki sesi WSL yang berjalan lama, atau mengakses sejumlah besar file, cache ini dapat memakan memori pada Windows. Kami melacak pekerjaan untuk meningkatkan pengalaman ini pada masalah repositori WSL Github 4166.
  • Bagi mereka yang menggunakan VirtualBox, Anda mungkin perlu mempertimbangkan versi yang Anda jalankan dan apakah itu kompatibel dengan WSL 2. (Lihat masalah repositori WSL Github 798 untuk diskusi lengkap. Tampaknya VirtualBox v6.1.16 berfungsi akan dengan WSL 2, tetapi versi lain mungkin mengalami masalah.)
  • Jika Anda mengandalkan distribusi Linux untuk memiliki alamat IP di jaringan yang sama dengan komputer host Anda, Anda mungkin perlu menyiapkan solusi untuk menjalankan WSL 2. WSL 2 berjalan sebagai komputer virtual hyper-v. Ini adalah perubahan dari adaptor jaringan penghubung yang digunakan dalam WSL 1, yang berarti bahwa WSL 2 menggunakan layanan Network Address Translation (NAT) untuk jaringan virtualnya, alih-alih membuatnya dijepakan ke Host Network Interface Card (NIC) yang menghasilkan alamat IP unik yang akan berubah saat restart. Untuk mempelajari selengkapnya tentang masalah dan solusi yang meneruskan port TCP layanan WSL 2 ke OS host, lihat Masalah repositori GitHub WSL 4150, mode Jembatan NIC (Solusi TCP).

Catatan

Pertimbangkan untuk mencoba Ekstensi WSL Jarak Jauh Visual Studio Code untuk memungkinkan Anda menyimpan file proyek di sistem file Linux, menggunakan alat baris perintah Linux, tetapi juga menggunakan Visual Studio Code di Windows untuk menulis, mengedit, men-debug, atau menjalankan proyek Anda di browser internet tanpa pelambatan performa apa pun yang terkait dengan bekerja di seluruh sistem file Linux dan Windows. Pelajari selengkapnya.