Tanya Jawab Umum tentang Subsistem Windows untuk Linux

Umum

Apa itu Subsistem Windows untuk Linux (WSL)?

Subsistem Windows untuk Linux (WSL) adalah fitur sistem operasi Windows yang memungkinkan Anda menjalankan sistem file Linux, bersama dengan alat baris perintah Linux dan aplikasi GUI, langsung di Windows, bersama desktop dan aplikasi Windows tradisional Anda.

Lihat halaman tentang untuk detail selengkapnya.

Untuk siapa WSL?

Ini terutama merupakan alat untuk pengembang, terutama pengembang web, yang mengerjakan proyek sumber terbuka, atau menyebarkan ke lingkungan server Linux. WSL adalah untuk siapa saja yang suka menggunakan Bash, alat Linux umum (sed, awk, dll.) dan kerangka kerja Linux-first (Ruby, Python, dll.) tetapi juga menikmati menggunakan alat produktivitas Windows

Apa yang bisa saya lakukan dengan WSL?

WSL memungkinkan Anda menjalankan Linux dalam shell Bash dengan pilihan distribusi Anda (Ubuntu, Debian, OpenSUSE, Kali, Alpine, dll). Dengan menggunakan Bash, Anda dapat menjalankan alat dan aplikasi Linux baris perintah. Misalnya, ketik lsb_release -a dan tekan enter; Anda akan melihat detail distro Linux yang saat ini berjalan:

Cuplikan layar detail distro

Anda juga dapat mengakses sistem file komputer lokal Anda dari dalam shell Linux Bash - Anda akan menemukan drive lokal yang dipasang di /mnt bawah folder . Misalnya, drive Anda C: dipasang di bawah /mnt/c:

Cuplikan layar drive C yang dipasang

Bisakah Anda menjelaskan alur kerja pengembangan umum yang menggabungkan WSL?

WSL menargetkan audiens pengembang dengan niat untuk digunakan sebagai bagian dari perulangan pengembangan dalam. Katakanlah Sam membuat alur CI/CD (Continuous Integration & Continuous Delivery) dan ingin mengujinya terlebih dahulu pada komputer lokal (laptop) sebelum menyebarkannya ke cloud. Sam dapat mengaktifkan WSL (& WSL 2 untuk meningkatkan kecepatan dan performa), dan kemudian menggunakan instans Linux Ubuntu asli secara lokal (pada laptop) dengan perintah dan alat Bash apa pun yang mereka sukai. Setelah alur pengembangan diverifikasi secara lokal, Sam kemudian dapat mendorong alur CI/CD tersebut ke cloud (yaitu Azure) dengan membuatnya menjadi kontainer Docker dan mendorong kontainer ke instans cloud tempat alur berjalan pada VM Ubuntu siap produksi.

Apa itu Bash?

Bash adalah shell berbasis teks dan bahasa perintah yang populer. Ini adalah shell default yang disertakan dalam Ubuntu dan distro Linux lainnya. Pengguna mengetik perintah ke dalam shell untuk menjalankan skrip dan/atau menjalankan perintah dan alat untuk menyelesaikan banyak tugas.

Bagaimana cara kerjanya?

Lihat artikel ini di blog Baris Perintah Windows: Penyelaman Mendalam Tentang Bagaimana WSL Memungkinkan Windows mengakses File Linux yang menjelaskan secara rinci tentang teknologi yang mendasar.

Mengapa saya menggunakan WSL daripada Linux dalam VM?

WSL membutuhkan lebih sedikit sumber daya (CPU, memori, dan penyimpanan) daripada komputer virtual penuh. WSL juga memungkinkan Anda menjalankan alat dan aplikasi baris perintah Linux bersama baris perintah Windows, desktop, dan aplikasi penyimpanan Anda, dan untuk mengakses file Windows Anda dari dalam Linux. Ini memungkinkan Anda untuk menggunakan aplikasi Windows dan alat baris perintah Linux pada kumpulan file yang sama jika Anda mau.

Mengapa saya harus menggunakan, misalnya, Ruby di Linux alih-alih di Windows?

Beberapa alat lintas platform dibangun dengan asumsi bahwa lingkungan tempat mereka berjalan berperilaku seperti Linux. Misalnya, beberapa alat mengasumsikan bahwa mereka dapat mengakses jalur file yang sangat panjang atau file/folder tertentu ada. Hal ini sering menyebabkan masalah pada Windows yang sering berakibat berbeda dari Linux.

Banyak bahasa seperti Ruby dan Node.js sering di-port, dan berjalan dengan baik, di Windows. Namun, tidak semua pemilik pustaka Ruby Gem atau node/NPM memindahkan pustaka mereka untuk mendukung Windows, dan banyak yang memiliki dependensi khusus Linux. Ini sering dapat mengakibatkan sistem yang dibangun menggunakan alat dan pustaka tersebut menderita kesalahan build dan terkadang runtime atau perilaku yang tidak diinginkan di Windows.

Ini hanyalah beberapa masalah yang menyebabkan banyak orang meminta Microsoft untuk meningkatkan alat baris perintah Windows dan apa yang mendorong kami bermitra dengan Canonical untuk memungkinkan alat baris perintah Bash dan Linux asli berjalan di Windows.

Apa artinya ini untuk PowerShell?

Saat bekerja dengan proyek OSS, ada banyak skenario di mana sangat berguna untuk masuk ke Bash dari prompt PowerShell. Dukungan Bash melengkapi dan memperkuat nilai baris perintah di Windows, memungkinkan PowerShell dan komunitas PowerShell memanfaatkan teknologi populer lainnya.

Baca selengkapnya di blog tim PowerShell -- Bash untuk Windows: Mengapa itu luar biasa dan apa artinya bagi PowerShell

Prosesor apa yang didukung WSL?

WSL mendukung CPU x64 dan Arm.

Bagaimana cara mengakses drive C: saya?

Titik pemasangan untuk hard drive pada komputer lokal secara otomatis dibuat dan memberikan akses mudah ke sistem file Windows.

/mnt/<drive letter>/

Contoh penggunaan adalah cd /mnt/c mengakses c:\

Bagaimana cara menyiapkan Git Credential Manager? (Bagaimana cara menggunakan izin Windows Git saya di WSL?)

Lihat tutorial Mulai menggunakan Git di Subsistem Windows untuk Linux, yang menampilkan bagian tentang menyiapkan Git Credential Manager dan menyimpan token autentikasi di Windows Credential Manager.

Bagaimana cara menggunakan file Windows dengan aplikasi Linux?

Salah satu manfaat WSL adalah dapat mengakses file Anda melalui aplikasi atau alat Windows dan Linux.

WSL memasang drive tetap komputer Anda di bawah /mnt/<drive> folder di distro Linux Anda. Misalnya, drive Anda C: dipasang di bawah /mnt/c/

Dengan menggunakan drive yang dipasang, Anda dapat mengedit kode, misalnya, C:\dev\myproj\ menggunakan Visual Studio / atau VS Code, dan membangun/menguji kode tersebut di Linux dengan mengakses file yang sama melalui /mnt/c/dev/myproj.

Pelajari selengkapnya di Artikel bekerja di seluruh sistem file Windows dan Linux .

Apakah file di drive Linux berbeda dari drive Windows yang dipasang?

  1. File di bawah root Linux (yaitu /) dikendalikan oleh WSL yang selaras dengan perilaku Linux, termasuk tetapi tidak terbatas pada:

    • File yang berisi karakter nama file Windows tidak valid
    • Symlink dibuat untuk pengguna non-admin
    • Mengubah atribut file melalui chmod dan chown
    • Sensitivitas huruf besar/kecil file/folder
  2. File di drive yang dipasang dikontrol oleh Windows dan memiliki perilaku berikut:

    • Sensitivitas kasus dukungan
    • Semua izin diatur agar paling mencerminkan izin Windows

Bagaimana cara menghapus instalasi Distribusi WSL?

Untuk menghapus distribusi dari WSL dan menghapus semua data yang terkait dengan distribusi Linux tersebut, jalankan wsl --unregister <distroName> di mana <distroName> adalah nama distro Linux Anda, yang dapat dilihat dari daftar dalam wsl -l perintah.

Selain itu, Anda kemudian dapat menghapus instalan aplikasi distro Linux di komputer Anda sama seperti aplikasi toko lainnya.

Untuk mempelajari selengkapnya tentang perintah wsl, lihat artikel, Perintah dasar untuk WSL.

Bagaimana cara menjalankan server OpenSSH?

OpenSSH dikirim dengan Windows sebagai fitur opsional. Lihat dokumen Instal OpenSSH . Hak istimewa administrator di Windows diperlukan untuk menjalankan OpenSSH di WSL. Untuk menjalankan server OpenSSH, jalankan distribusi WSL Anda (yaitu Ubuntu) atau Terminal Windows sebagai administrator. Ada beberapa sumber daya di luar sana yang mencakup skenario SSH dengan WSL. Lihat artikel blog Scott Hanselman: Cara SSH ke komputer Windows 10 dari Linux ATAU Windows ATAU di mana saja, Cara SSH ke WSL2 di Windows 10 dari komputer eksternal, CARA MUDAH SSH ke Bash dan WSL2 di Windows 10 dari komputer eksternal, dan Cara menggunakan Windows 10OpenSSH bawaan untuk secara otomatis SSH ke dalam komputer Linux jarak jauh.

Bagaimana cara mengubah bahasa tampilan WSL?

Penginstalan WSL akan mencoba mengubah lokal Ubuntu secara otomatis agar sesuai dengan lokal penginstalan Windows Anda. Jika Anda tidak ingin perilaku ini, Anda dapat menjalankan perintah ini untuk mengubah lokal Ubuntu setelah penginstalan selesai. Anda harus mengumumkan kembali distribusi WSL Anda agar perubahan ini berlaku.

Contoh di bawah ini berubah menjadi lokal menjadi en-US:

sudo update-locale LANG=en_US.UTF8

Mengapa saya tidak memiliki akses internet dari WSL?

Beberapa pengguna telah melaporkan masalah dengan aplikasi firewall tertentu yang memblokir akses internet di WSL. Firewall yang dilaporkan adalah:

  1. Kaspersky
  2. AVG
  3. Avast
  4. Perlindungan Titik Akhir Symantec
  5. F-Secure

Dalam beberapa kasus, menonaktifkan firewall memungkinkan akses. Dalam beberapa kasus, hanya menginstal firewall untuk memblokir akses.

Bagaimana cara mengakses port dari WSL di Windows?

WSL berbagi alamat IP Windows, karena berjalan di Windows. Dengan demikian Anda dapat mengakses port apa pun di localhost misalnya jika Anda memiliki konten web di port 1234, Anda bisa https://localhost:1234 masuk ke browser Windows Anda. Untuk informasi selengkapnya, lihat Mengakses aplikasi jaringan.

Bagaimana cara mencadangkan distribusi WSL saya, atau memindahkannya dari satu drive ke drive lainnya?

Cara terbaik untuk mencadangkan atau memindahkan distribusi Anda adalah melalui perintah ekspor/impor yang tersedia di Windows Versi 1809 dan yang lebih baru. Anda dapat mengekspor seluruh distribusi Anda ke tarball menggunakan wsl --export perintah . Anda kemudian dapat mengimpor distribusi ini kembali ke WSL menggunakan wsl --import perintah , yang dapat memberi nama lokasi drive baru untuk impor, memungkinkan Anda untuk mencadangkan dan menyimpan status (atau memindahkan) distribusi WSL Anda.

Harap dicatat bahwa layanan cadangan tradisional yang mencadangkan file di folder AppData Anda (seperti cadangan Windows) tidak akan merusak file Linux Anda.

Dapatkah saya menggunakan WSL untuk skenario produksi?

WSL telah dirancang dan dibangun untuk digunakan dengan alur kerja pengembangan perulangan dalam. Ada fitur desain di WSL yang membuatnya bagus untuk tujuan ini tetapi mungkin membuatnya menantang untuk skenario terkait produksi dibandingkan dengan produk lain. Tujuan kami adalah untuk menjelaskan bagaimana WSL berbeda dari lingkungan VM biasa, sehingga Anda dapat membuat keputusan tentang apakah itu sesuai dengan kebutuhan bisnis Anda.

Perbedaan utama antara WSL dan lingkungan produksi tradisional adalah:

  • WSL memiliki VM utilitas ringan yang memulai, menghentikan, dan mengelola sumber daya secara otomatis.
  • Jika Anda tidak memiliki handel file terbuka untuk proses Windows, VM WSL akan secara otomatis dimatikan. Ini berarti jika Anda menggunakannya sebagai server web, SSH ke dalamnya untuk menjalankan server Anda dan kemudian keluar, VM dapat dimatikan karena mendeteksi bahwa pengguna selesai menggunakannya dan akan membersihkan sumber dayanya.
  • Pengguna WSL memiliki akses penuh ke instans Linux mereka. Masa pakai VM, distribusi WSL terdaftar, dll., semuanya dapat diakses oleh pengguna dan dapat dimodifikasi oleh pengguna.
  • WSL secara otomatis memberikan akses file ke file Windows.
  • Jalur Windows ditambahkan ke jalur Anda secara default, yang dapat menyebabkan perilaku tak terduga untuk aplikasi Linux tertentu dibandingkan dengan lingkungan Linux tradisional.
  • WSL dapat menjalankan executable Windows dari Linux, yang juga dapat menyebabkan lingkungan yang berbeda dari VM Linux tradisional.
  • Kernel Linux yang digunakan oleh WSL diperbarui secara otomatis.
  • Akses GPU di WSL terjadi melalui /dev/dxg perangkat, yang merutekan panggilan GPU ke GPU Windows. Penyiapan ini berbeda dari penyiapan Linux tradisional.
  • Ada perbedaan lain yang lebih kecil dibandingkan dengan Linux bare metal dan lebih banyak perbedaan diharapkan muncul di masa depan karena alur kerja pengembangan perulangan dalam diprioritaskan.

Bagaimana cara mentransfer file WSL saya dari satu komputer ke komputer lain?

Ada beberapa cara untuk menyelesaikan tugas ini:

  • Cara termampu adalah dengan menggunakan wsl --export --vhd perintah untuk mengekspor distribusi WSL Anda ke file VHD. Anda kemudian dapat menyalin file ini ke komputer lain, dan mengimpornya menggunakan wsl --import --vhd. Silakan lihat dokumen perintah untuk informasi lebih lanjut.
  • Implementasi di atas membutuhkan banyak ruang disk. Jika Anda tidak memiliki banyak ruang disk, Anda dapat menggunakan teknik Linux untuk memindahkan file Anda:
    • Gunakan tar -czf <tarballName> <directory> untuk membuat tarball file Anda. Anda kemudian dapat menyalin file-file khusus ini ke komputer baru Anda dan menjalankan tar -xzf <tarballName> untuk mengekstraknya.
    • Anda juga dapat mengekspor daftar paket yang diinstal melalui apt dengan perintah seperti itu: dpkg --get-selections | grep -v deinstall | awk '{print $1}' > package_list.txt dan kemudian menginstal ulang paket yang sama pada komputer lain dengan perintah seperti sudo apt install -y $(cat package_list.txt) setelah mentransfer file.

WSL 2

Apakah WSL 2 menggunakan Hyper-V? Apakah tersedia di Windows 10 Home dan Windows 11 Home?

WSL 2 tersedia di semua SKU Desktop tempat WSL tersedia, termasuk Windows 10 Home dan Windows 11 Home.

Versi terbaru WSL menggunakan arsitektur Hyper-V untuk mengaktifkan virtualisasinya. Arsitektur ini akan tersedia di komponen opsional 'Platform Komputer Virtual'. Komponen opsional ini akan tersedia di semua SKU. Anda dapat mengharapkan untuk melihat detail lebih lanjut tentang pengalaman ini segera setelah kita lebih dekat dengan rilis WSL 2.

Apa yang akan terjadi pada WSL 1? Apakah itu akan ditinggalkan?

Saat ini kami tidak memiliki rencana untuk menghentikan WSL 1. Anda dapat menjalankan distro WSL 1 dan WSL 2 secara berdampingan, dan dapat meningkatkan dan menurunkan tingkat distro apa pun kapan saja. Menambahkan WSL 2 sebagai arsitektur baru menghadirkan platform yang lebih baik bagi tim WSL untuk memberikan fitur yang menjadikan WSL cara luar biasa untuk menjalankan lingkungan Linux di Windows.

Apakah saya dapat menjalankan WSL 2 dan alat virtualisasi pihak ke-3 lainnya seperti VMware, atau VirtualBox?

Beberapa aplikasi pihak ke-3 tidak dapat berfungsi ketika Hyper-V sedang digunakan, yang berarti aplikasi tersebut tidak akan dapat berjalan ketika WSL 2 diaktifkan, seperti VMware dan VirtualBox. Namun, baru-baru ini VirtualBox dan VMware telah merilis versi yang mendukung Hyper-V dan WSL2. Pelajari selengkapnya tentang perubahan VirtualBox di sini dan perubahan VMware di sini. Untuk memecahkan masalah, lihat diskusi masalah VirtualBox di repositori WSL di GitHub.

Kami secara konsisten mengerjakan solusi untuk mendukung integrasi pihak ketiga Hyper-V. Misalnya, kami mengekspos sekumpulan API yang disebut Hypervisor Platform yang dapat digunakan penyedia virtualisasi pihak ketiga untuk membuat perangkat lunak mereka kompatibel dengan Hyper-V. Ini memungkinkan aplikasi menggunakan arsitektur Hyper-V untuk emulasinya seperti Google Android Emulator, dan VirtualBox 6 ke atas yang sekarang kompatibel dengan Hyper-V.

Lihat repositori masalah WSL untuk latar belakang dan diskusi selengkapnya tentang masalah WSL 2 dengan VirtualBox 6.1.

*Jika Anda mencari unduhan komputer virtual Windows, VMWare, Hyper-V, VirtualBox, dan Parallels tersedia di Windows Dev Center.

Dapatkah saya mengakses GPU di WSL 2? Apakah ada rencana untuk meningkatkan dukungan perangkat keras?

Kami telah merilis dukungan untuk mengakses GPU di dalam distribusi WSL 2! Ini berarti Anda sekarang dapat menggunakan WSL untuk pembelajaran mesin, kecerdasan buatan, dan skenario ilmu data dengan lebih mudah ketika big data set terlibat. Lihat tutorial mulai menggunakan dukungan GPU . Pada saat ini WSL 2 tidak menyertakan dukungan serial, atau dukungan perangkat USB. Kami sedang menyelidiki cara terbaik untuk menambahkan fitur-fitur ini. Namun, dukungan USB sekarang tersedia melalui proyek USBIPD-WIN. Lihat Menyambungkan perangkat USB untuk langkah-langkah menyiapkan dukungan perangkat USB.

Dapatkah WSL 2 menggunakan aplikasi jaringan?

Ya, secara umum aplikasi jaringan akan bekerja lebih baik dan lebih cepat dengan WSL 2 karena menawarkan kompatibilitas panggilan sistem penuh. Namun, arsitektur WSL 2 menggunakan komponen jaringan virtual, yang berarti bahwa WSL 2 akan berprilaku mirip dengan komputer virtual -- Distribusi WSL 2 akan memiliki alamat IP yang berbeda dari komputer host (OS Windows). Untuk informasi selengkapnya, lihat Mengakses aplikasi jaringan dengan WSL.

Dapatkah saya menjalankan WSL 2 di komputer virtual?

Ya! Anda perlu memastikan bahwa komputer virtual telah mengaktifkan virtualisasi berlapis. Ini dapat diaktifkan di host Hyper-V induk Anda dengan menjalankan perintah berikut di jendela PowerShell dengan hak istimewa Administrator:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

Pastikan untuk mengganti '<VMName>' dengan nama komputer virtual Anda.

Dapatkah saya menggunakan wsl.conf di WSL 2?

WSL 2 mendukung file wsl.conf yang sama dengan yang digunakan WSL 1. Ini berarti bahwa setiap opsi konfigurasi yang telah Anda tetapkan dalam distro WSL 1, seperti memasang otomatis drive Windows, mengaktifkan atau menonaktifkan interop, mengubah direktori tempat drive Windows akan dipasang, dll. semua akan bekerja di dalam WSL 2. Anda dapat mempelajari selengkapnya tentang opsi konfigurasi di WSL di halaman Manajemen Distribusi . Pelajari selengkapnya tentang dukungan untuk memasang drive, disk, perangkat, atau hard disk virtual (VHD) di artikel Memasang disk Linux di WSL 2 .

Di mana saya dapat memberikan umpan balik?

Masalah repositori produk WSL memungkinkan Anda untuk:

  • Cari masalah yang ada untuk melihat apakah ada masalah yang terkait dengan masalah yang Anda alami. Perhatikan bahwa di bilah pencarian, Anda dapat menghapus "is:open" untuk menyertakan masalah yang telah diselesaikan dalam pencarian Anda. Harap pertimbangkan untuk berkomentar atau memberikan jempol untuk setiap masalah terbuka yang ingin Anda ungkapkan minat Anda untuk maju sebagai prioritas.
  • Ajukan masalah baru. Jika Anda telah menemukan masalah dengan WSL dan tampaknya tidak ada masalah, Anda dapat memilih tombol Masalah baru hijau lalu pilih WSL - Laporan Bug. Anda harus menyertakan judul untuk masalah ini, nomor build Windows Anda (jalankan cmd.exe /c ver untuk melihat build Anda saat ini #), baik Anda menjalankan WSL 1 atau 2, versi Kernel Linux Anda saat ini # (jalankan wsl.exe --status atau cat /proc/version), versi # distribusi Anda (jalankan lsb_release -r), versi perangkat lunak lain yang terlibat, langkah-langkah repro, perilaku yang diharapkan, perilaku aktual, dan log diagnostik jika tersedia dan sesuai. Untuk informasi selengkapnya, lihat berkontribusi pada WSL.
  • Ajukan permintaan fitur dengan memilih tombol Masalah baru berwarna hijau lalu pilih Permintaan fitur. Anda harus menjawab beberapa pertanyaan yang menjelaskan permintaan Anda.

Anda juga dapat:

Jika Anda ingin tetap mendapatkan informasi terbaru tentang berita WSL, Anda dapat melakukannya dengan: