Windows Subsystem for Linux (WSL) memungkinkan developer menjalankan distribusi Linux sungguhan seperti Ubuntu langsung di Windows, tanpa dual boot dan tanpa repot mengelola virtual machine sendiri. Untuk tim yang aplikasinya berjalan di server Linux, artinya Anda bisa development di environment yang sama dengan production, sambil tetap memakai Windows untuk pekerjaan lain. Instalasinya cukup satu perintah, tapi beberapa pilihan di jam pertama, terutama di mana file proyek disimpan dan berapa banyak memori yang boleh dipakai WSL, menentukan apakah setup-nya terasa cepat atau malah bikin frustrasi.
WSL 1 dan WSL 2
WSL 2 menjalankan kernel Linux asli di dalam virtual machine ringan yang dikelola otomatis oleh Windows. WSL 1 bekerja dengan cara menerjemahkan system call Linux ke Windows. Instalasi baru otomatis memakai WSL 2, dan untuk development, hampir selalu ini pilihan yang tepat.
| Aspek | WSL 1 | WSL 2 |
|---|---|---|
| Cara kerja | Menerjemahkan system call Linux ke Windows | Menjalankan kernel Linux asli di VM ringan |
| Kompatibilitas | Sebagian tool dan system call tidak jalan | Kompatibel penuh dengan system call Linux |
| Kecepatan di filesystem Linux | Lebih lambat untuk operasi file yang berat | Cepat, mendekati Linux asli |
| Kecepatan di drive Windows (/mnt/c) | Relatif baik | Jauh lebih lambat |
| Docker dan container | Tidak didukung langsung | Didukung |
Cara Install WSL
WSL membutuhkan Windows 10 versi 2004 (build 19041) ke atas, atau Windows 11. Buka PowerShell sebagai administrator, jalankan wsl --install, lalu restart komputer. Perintah ini mengaktifkan fitur Windows yang dibutuhkan dan meng-install Ubuntu. Saat pertama kali dibuka, Ubuntu akan meminta username dan password Linux, yang terpisah dari akun Windows Anda.
- wsl --list --online menampilkan distribusi yang bisa di-install, dan wsl --install -d Debian meng-install distribusi tertentu.
- wsl --list --verbose (atau wsl -l -v) menampilkan distribusi yang sudah ter-install dan apakah masing-masing jalan di WSL 1 atau WSL 2.
- wsl --set-version Ubuntu 2 mengubah distribusi WSL 1 yang lama menjadi WSL 2.
- wsl --update meng-update WSL-nya sendiri, sedangkan sudo apt update lalu sudo apt upgrade meng-update paket di dalam Ubuntu.
Simpan File Proyek di Filesystem Linux
Ini penyebab paling umum WSL terasa lambat. Drive Windows bisa diakses dari dalam WSL lewat /mnt/c, tapi setiap operasi file di sana harus menyeberang antara dua sistem. Perintah seperti npm install, composer install, git status, atau build yang besar bisa jauh lebih lambat dibanding perintah yang sama di file yang disimpan di dalam Linux. Microsoft sendiri menyarankan file disimpan di filesystem Linux kalau Anda bekerja dari command line Linux.
Clone repository ke home directory Linux, misalnya /home/username/projects. File-file ini tetap bisa dibuka dari Windows: jalankan explorer.exe . di terminal WSL untuk membuka folder saat ini di File Explorer, atau ketik \\wsl$ di address bar Explorer untuk melihat semua distribusi yang ter-install. File watcher untuk hot reload di tool seperti Vite, Next.js, dan Laravel Mix juga biasanya jauh lebih stabil kalau file-nya ada di sisi Linux.
Cek cepat: jalankan pwd di terminal tempat Anda mengerjakan proyek. Kalau path-nya diawali /mnt/c, pindahkan dulu proyeknya ke home directory Linux sebelum mengutak-atik pengaturan lain.
Editor dan Git
Dengan extension WSL untuk Visual Studio Code, menjalankan code . di terminal WSL akan membuka folder tersebut di VS Code di Windows, sementara extension, terminal, dan debugger-nya berjalan di dalam Linux. Language server dan linter pun melihat path dan versi tool yang sama dengan proses build. IDE JetBrains juga sudah mendukung proyek dan toolchain di dalam WSL.
- Install dan jalankan Git di dalam WSL untuk proyek yang disimpan di Linux. Hindari memakai Git for Windows dan Git Linux bergantian di repository yang sama.
- Atur ulang nama dan email di dalam WSL, karena Git di Linux punya konfigurasi sendiri.
- Tambahkan file .gitattributes dengan aturan line ending yang konsisten, misalnya * text=auto eol=lf, supaya file tidak dianggap berubah hanya karena pernah diedit di Windows.
- Buat SSH key di dalam WSL untuk GitHub atau GitLab, atau atur Git supaya memakai Git Credential Manager dari Git for Windows agar kredensialnya bisa dipakai bersama.
Batasi Memori dan CPU dengan .wslconfig
Secara default, virtual machine WSL 2 boleh memakai sampai setengah dari RAM komputer, ditambah swap sebesar seperempatnya. Di laptop dengan RAM 16 GB, Docker yang sibuk di dalam WSL bisa membuat Windows kekurangan memori untuk browser dan IDE. Buat file bernama .wslconfig di folder user Windows (C:\Users\username) dengan section [wsl2] dan baris seperti memory=6GB, processors=4, dan swap=4GB, disesuaikan dengan spesifikasi laptop Anda. Versi WSL terbaru juga menyediakan aplikasi WSL Settings di Start menu untuk mengatur hal yang sama.
Perubahan baru berlaku setelah virtual machine WSL benar-benar berhenti. Jalankan wsl --shutdown dari PowerShell, tunggu beberapa detik, lalu buka lagi terminalnya.
Docker dan systemd
Ada dua cara umum menjalankan container. Docker Desktop dengan backend WSL 2 paling mudah dan terintegrasi dengan Windows, tapi lisensinya mewajibkan langganan berbayar untuk perusahaan yang lebih besar, saat ini yang karyawannya lebih dari 250 orang atau pendapatan tahunannya di atas 10 juta dolar AS. Alternatifnya, install Docker Engine langsung di dalam distribusi Linux, yang cara kerjanya sama seperti di server Linux.
Docker Engine dan banyak service lain membutuhkan systemd. Image Ubuntu versi baru di WSL biasanya sudah mengaktifkannya. Kalau belum, tambahkan section [boot] berisi systemd=true di file /etc/wsl.conf di dalam distribusi, lalu jalankan wsl --shutdown dan buka lagi.
Networking dan Mengakses Aplikasi
Development server yang dijalankan di dalam WSL, misalnya di port 3000, bisa dibuka dari browser di Windows lewat localhost:3000 karena WSL meneruskan localhost secara default. Masalah biasanya muncul kalau memakai VPN kantor, proxy, atau ketika perangkat lain di jaringan perlu mengakses aplikasinya. Di Windows 11 versi 22H2 ke atas, mengatur networkingMode=mirrored di .wslconfig membuat WSL memakai antarmuka jaringan yang sama dengan Windows, dan ini menyelesaikan banyak kasus tersebut.
Backup dan Ruang Disk
- File Linux Anda tersimpan di dalam sebuah file virtual disk. Kalau distribusinya di-unregister, disk itu ikut terhapus, jadi simpan pekerjaan di Git dan backup file lain yang penting.
- wsl --export Ubuntu D:\backup\ubuntu.tar menyimpan seluruh distribusi ke satu file, dan wsl --import mengembalikannya. Ini juga cara mudah memindahkan setup ke laptop baru.
- Virtual disk membesar saat file bertambah, tapi tidak selalu mengecil otomatis setelah file dihapus. Bersihkan image Docker dan cache lama secara rutin.
Masalah yang Sering Muncul dan Solusinya
| Masalah | Kemungkinan penyebab | Solusi |
|---|---|---|
| npm install atau git status sangat lambat | Proyek disimpan di /mnt/c | Pindahkan proyek ke home directory Linux |
| Windows jadi lambat saat Docker jalan | WSL memakai memori terlalu banyak | Atur memory dan processors di .wslconfig, lalu jalankan wsl --shutdown |
| Hot reload tidak mendeteksi perubahan | File watching antara Windows dan Linux | Simpan file di Linux dan edit lewat extension WSL di VS Code |
| Tidak ada internet atau DNS error saat pakai VPN | VPN mengubah route atau DNS yang tidak terbaca oleh WSL | Update WSL, dan coba mirrored networking di Windows 11 |
| Perubahan di .wslconfig tidak berpengaruh | Virtual machine WSL masih berjalan | Jalankan wsl --shutdown dan tunggu beberapa detik sebelum membuka lagi |
Checklist Setup Laptop Developer Baru
- 1Jalankan wsl --install sebagai administrator, restart, lalu buat user Linux.
- 2Update WSL dan paket di distribusinya, lalu aktifkan systemd kalau belum aktif.
- 3Buat .wslconfig dengan batas memori dan CPU yang masih menyisakan cukup ruang untuk Windows.
- 4Install Git, atur nama dan email, tambahkan SSH key, lalu clone proyek ke home directory Linux.
- 5Install VS Code dengan extension WSL, lalu buka proyek dengan code . dari terminal WSL.
- 6Install runtime bahasa pemrograman dan Docker yang dibutuhkan proyek di dalam Linux, lalu export distribusinya setelah semuanya jalan sebagai backup siap pakai.
Poin penting
- Pakai WSL 2 dan install dengan wsl --install di Windows 10 build 19041 ke atas, atau Windows 11.
- Simpan proyek di filesystem Linux, jangan di /mnt/c. Satu keputusan ini paling berpengaruh ke kecepatan dan hot reload.
- Development lewat extension WSL di VS Code, jalankan Git di dalam Linux, dan atur line ending yang konsisten di .gitattributes.
- Batasi memori dan CPU di .wslconfig, dan ingat perubahannya butuh wsl --shutdown supaya berlaku.
- Pilih antara Docker Desktop dan Docker Engine di dalam WSL dengan memperhatikan lisensinya, dan backup distribusi dengan wsl --export.


