9 poin oleh GN⁺ 2025-12-02 | 3 komentar | Bagikan ke WhatsApp
  • Arsitektur subsistem Windows NT selama ini dibangun sebagai lapisan penerjemah pemanggilan API untuk menjalankan program dari sistem operasi lain
  • WSL1 melanjutkan tradisi ini sebagai lapisan translasi ringan yang menerjemahkan pemanggilan Linux menjadi pemanggilan kernel Windows
  • WSL2 beralih menjadi VM Linux penuh berbasis Hyper-V untuk mengatasi masalah performa, dan menjalankan kernel Linux yang sesungguhnya
  • WSL2 menawarkan integrasi yang lebih tinggi dibanding VM biasa lewat manajemen memori dinamis, mount drive Windows, dan integrasi GUI melalui WSLg
  • Meski ada keterbatasan seperti pengelolaan file yang kurang praktis dan ketergantungan pada image disk, yang penting adalah fleksibilitas untuk memanfaatkan kelebihan dan kekurangan WSL1 dan WSL2 secara selektif

Konsep subsistem di Windows NT

  • Subsistem (subsystem) di Windows NT mengacu pada sekumpulan API dan lapisan penerjemah pemanggilan untuk menjalankan program dari sistem operasi lain
    • Di masa lalu, NT memiliki subsistem OS/2 (OS2SS.EXE) dan subsistem POSIX (PSXSS.EXE), dan lain-lain
    • CSRSS.EXE adalah lapisan penerjemah Win32 API, dan sebagian fungsinya kemudian dipindahkan ke mode kernel (WIN32K.SYS)
  • Subsistem POSIX hanya merupakan implementasi minimal untuk memenuhi sertifikasi pemerintah, lalu kemudian digantikan oleh Windows Services for Unix berbasis Interix

WSL1: lapisan Linux berbasis translasi

  • WSL1 (Windows Subsystem for Linux) adalah lapisan translasi tipis yang menerjemahkan system call Linux menjadi pemanggilan Windows
    • Saat dijalankan, hanya proses bash yang memakai beberapa MB memori, dan muncul sebagai proses biasa di Task Manager
    • Root filesystem disimpan sebagai struktur file individual di atas NTFS, sehingga nyaris tidak ada overhead ruang penyimpanan
  • Keterbatasan
    • Penurunan performa I/O: ada biaya translasi akibat perbedaan antara API filesystem Linux dan Win32
    • Perlu X server eksternal untuk menjalankan GUI (misalnya X410)
    • Tidak mendukung raw socket, sehingga traceroute, nmap, tcpdump, dan sejenisnya tidak bisa dijalankan

WSL2: VM Linux berbasis Hyper-V

  • Sesuai kebutuhan pengguna, Microsoft memperkenalkan VM Linux penuh yang berjalan di atas Hyper-V
    • Root filesystem dikelola sebagai satu file VHDX tunggal
    • Perintah wsl --set-version "Ubuntu" 2 memungkinkan konversi antara WSL1↔WSL2
  • Karakteristik performa
    • Boot awal lebih lambat, tetapi menjalankan kernel Linux native
    • Penggunaan memori bersifat dinamis, dan dapat meluas hingga setengah dari memori fisik maksimum
    • Hasil uji stress menunjukkan penggunaan memori meningkat sesuai beban lalu menyusut kembali secara otomatis
    • Jika perlu, VM dapat dimatikan dengan perintah wsl --shutdown

Fitur integrasi dan batasan WSL2

  • Berbeda dari VM tradisional, WSL2 memperkuat integrasi dengan Windows
    • Drive Windows di-mount otomatis, drive Linux dapat diakses melalui path \\wsl$\, dan aplikasi GUI dapat dijalankan lewat WSLg
    • Aplikasi GUI di-stream melalui protokol Remote Desktop, sedangkan DPI atau text scaling perlu diatur terpisah
  • Masalah pengelolaan file
    • Data kerja Linux disimpan di dalam image ext4.vhdx, sehingga ada risiko terhadap portabilitas dan pemulihan
    • Saat menjalankan wsl --unregister Distro, semua data langsung terhapus
    • Saat memakai drive Windows (/mnt/c), performa menurun karena overhead NTFS + VM
  • Protokol filesystem
    • WSL1 memakai drvfs, sedangkan WSL2 memakai protokol 9p dari Plan9
    • Disebutkan ada kasus bug di mana drvfs masih tertinggal dalam proses konversi
  • Alternatif
    • Disarankan memisahkan data kerja dengan membuat image VHDX terpisah lalu me-mount-nya lewat wsl --mount --vhd
    • Pengaturan otomatis dari .wslconfig tidak dimungkinkan, sehingga perlu ditangani dengan skrip

Kesimpulan

  • Desain modular Windows NT dan ABI kernel yang stabil menjaga kompatibilitas driver lama
  • WSL1 unggul dalam penggunaan memori yang ringan, sedangkan WSL2 menghadirkan kompatibilitas dan performa yang lebih tinggi lewat kernel Linux asli
  • WSL2 adalah struktur yang meminimalkan kelemahan VM sambil memperkuat integrasi dengan OS host
  • Dalam definisi tradisional, ia memang dekat dengan VM, tetapi sebagai lingkungan terintegrasi yang ringan, ia tetap layak disebut “subsistem”

3 komentar

 
crawler 2025-12-02

Wah, ada Sseuk si pengembang di sini

 
GN⁺ 2025-12-02
Komentar Hacker News
  • WSL2 berjalan di atas subset dari Hyper-V, dan pada dasarnya adalah VM di atas hypervisor
    Namun ada perbedaan dibanding VM Hyper-V biasa. Misalnya, distro Linux di WSL2 bisa memakai akselerasi GPU bahkan di lingkungan X atau Wayland melalui partisi GPU (yakni PCI/GPU passthrough) dan implementasi khusus DirectX
    Fitur seperti ini juga bisa dilakukan di Hyper-V biasa lewat berbagai hack dengan PowerShell dan sejenisnya, tetapi secara resmi hanya didukung di Windows Server

    • Saya kira GPU passthrough juga bisa di Windows 11 biasa, tapi saya belum melihat detailnya. Tetap saja, ini fitur yang cukup mengesankan
    • Pada akhirnya itu tetap VM biasa, tetapi otomatisasinya bagus
      Hanya saja, anggapan bahwa “X atau Wayland menangani rendering” itu kurang tepat. Yang benar-benar memakai GPU adalah aplikasinya sendiri, sedangkan X/Wayland hanya menangani komposisi jendela setelah rendering selesai
      Ada juga pekerjaan rumit seperti konversi warna, tetapi beban komputasinya kecil
    • Bukankah WSL2 dan kernel WinNT sama-sama berjalan di atas Hyper-V pada level yang hampir setara? Tentu saja kernel NT punya lebih banyak hak akses ke perangkat keras
    • Lucu kalau dibayangkan harus membeli dan memasang lisensi Windows Server hanya untuk menjalankan Linux
    • Integrasi grafis WSL2 ternyata lebih mengecewakan dari yang saya harapkan. Konfigurasi X-server lama rasanya lebih baik. Tapi X tidak mendukung API modern, jadi para pengembang makin kehilangan minat. Semoga dukungan WSL2 yang makin luas bisa memperbaiki ini
  • WSL1 berbasis pico process, teknologi turunan dari riset Drawbridge
    Lihat video terkait The Linux Kernel Hidden Inside Windows 10 dan WSL Pico Process Overview
    Teknologi Drawbridge yang sama juga dipakai saat menjalankan SQL Server di Linux
    Dijelaskan lebih rinci dalam artikel Ars Technica

  • Saya paham alasan berpindah ke WSL2, tetapi sayang sekali pengembangan WSL1 dihentikan sepenuhnya
    Lingkungan CI kami sebagian besar berbasis Linux, tetapi beberapa toolchain tidak berjalan baik di Wine (misalnya MSVC)
    Karena itu kami butuh lingkungan yang bisa menjalankan build Linux dengan lancar di Windows. WSL1 bisa melakukan ini, tetapi WSL2 tidak berbagi namespace proses maupun file descriptor, sehingga perlu banyak solusi akal-akalan
    Kecepatan IO memang meningkat, tetapi berbagi file lambat, jadi kurang cocok untuk penggunaan nyata

    • Di WSL2, akses ke file Windows tetap bisa lewat /mnt/c
    • Alternatifnya, coba kombinasikan clang-cl dan xwin sebagai pengganti MSVC.
      Saya pernah membangun modul ekstensi C Python dengan cara ini
  • WSL2 adalah VM yang sangat terintegrasi erat dengan lingkungan Windows
    Karena kebijakan perusahaan mengharuskan memakai Windows, saya memakainya setiap hari untuk pengembangan, dan untuk sebagian besar kasus pengalamannya cukup nyaman

    • Saya sedang bekerja di VM yang disediakan perusahaan, dan performanya makin terasa lambat. Saya sedang mempertimbangkan pindah ke WSL2.
      Tapi basisnya RHEL8, jadi agak merepotkan kalau hanya distro turunan Debian yang didukung. Saya juga penasaran bagaimana dukungan aplikasi grafisnya sekarang
    • Katanya “terintegrasi erat”, tetapi sebenarnya di ps atau top yang terlihat hanya proses VM.
      Fitur serupa juga bisa didapat dengan docker run -it ubuntu, jadi saya penasaran apa bedanya.
      Secara pribadi, ruang kerja yang terpisah terasa sangat tidak nyaman
  • WSL2 pada akhirnya adalah VM ringan. Konsepnya mirip Firecracker, dengan target boot cepat dan penggunaan memori rendah
    Tetapi kalau menjalankan banyak Docker, kebutuhan memorinya membengkak. Minimal perlu lebih dari 20GB agar tetap nyaman

    • Untungnya sekarang laptop dengan RAM 32GB tidak semahal dulu
    • Boot WSL2 sangat cepat, sekitar 1–2 detik, jadi saya penasaran bagaimana implementasinya. Saya paham bahwa layar BIOS dilewati, tetapi sepertinya ada optimasi lain juga
  • Secara pribadi WSL1 jauh lebih berguna. Sebagian besar alat CLI seperti toolchain C++ dan .NET, ssh/scp, dan lainnya berjalan baik
    Sebaliknya, WSL2 hampir tidak berguna. Kalau butuh Linux VM, saya pakai VMware
    VMware punya fitur yang jauh lebih kaya seperti pohon snapshot, akselerasi 3D, koneksi perangkat USB, konfigurasi jaringan virtual, dan GUI yang nyaman

  • Disk VM di dalam WSL bisa diakses melalui path \\wsl$
    Jika perangkat lunak lama tidak mendukung path UNC, itu bisa diatasi dengan memetakkannya ke huruf drive

  • Ada masalah file VHDX yang terus membesar. Harus di-compact secara manual

    • Mengaktifkan sparse VHD bisa membantu. Tidak sempurna, tetapi sebagian bisa diatasi dengan layanan systemd-trim
      Lihat isu terkait di GitHub WSL #12103
      Jika masih tidak berhasil, bisa memakai metode optimasi manual
    • Memang ada fitur penyusutan otomatis, tetapi kadang justru menimbulkan masalah
  • Sebagai catatan, secara default WSL melewati aturan firewall Windows. Saya heran kenapa Microsoft merancangnya seperti ini

    • Benarkah begitu? Saya selalu kesulitan dengan koneksi ssh dari WSL
  • Saya penasaran apakah memasang partisi ext4 sungguhan bisa mengurangi penurunan performa akibat simulasi perangkat blok berbasis file image

 
tangokorea 2026-04-23

Saat saya jadi makin sering menggunakan WSL2 dan perlahan makin jarang memakai Linux secara langsung, saya jadi berpikir: apakah ini juga EEE?
EEE - merangkul, memperluas, lalu mematikan (Embrace, Extend, and Extinguish)