
Windows 開發者仲使唔使 dual boot?WSL、虛擬機同原生 Linux 點揀
由 terminal、GUI app 到 Docker,逐項拆解四種方案
XDA 作者 Korbin Brown 以前會分兩個 partition:Windows 負責日常軟件同遊戲,Linux 就用嚟寫 Bash、SSH 入 server、跑 grep、awk 同 container。佢而家停用 dual boot,以上任務全部搬入 Windows 11 嘅 WSL 2。呢個係作者自己嘅使用經驗,唔代表每部機效能都一樣;不過佢點出咗一個幾實際嘅轉變:對好多 Windows 開發者嚟講,重新開機已經唔再係取得 Linux 工具嘅必要步驟。
Terminal 開發正正係 WSL 最順手嗰段
WSL 2 喺 Microsoft 管理嘅輕量虛擬機入面跑完整 Linux kernel,支援完整 system call,相容 Docker 呢類依賴 Linux kernel 功能嘅工具,systemd 亦已經有正式支援。開 Windows Terminal 一個分頁就入到 Bash,VS Code 可以用 Remote WSL 連入 Linux 環境,程式、runtime 同 extension 跑喺 distro 入面,Windows 介面照常負責編輯。寫 web app、跑 Node.js、Python、Git、SSH、coding agent 或一般 CLI 工具,呢套配搭已經好成熟。
最大著數係 Windows 軟件可以繼續留喺身邊。公司機要開 Outlook、Office、VPN、設計稿或者只得 Windows 版嘅內部工具,開發環境同佢哋可以同時運作,唔使成日重開機。XDA 作者甚至會喺 WSL 寫同測試 Bash script,再搬去 VPS 跑。呢點亦解釋到 Microsoft 點解肯長期投資 WSL:Linux 嘅開發慣例保留咗,Windows 就留得住原本可能轉去 Linux 或 macOS 嘅開發者。

圖片:Microsoft
檔案擺錯位,體驗可以即刻打折
WSL 2 最常見嘅坑係跨檔案系統 I/O。Microsoft 建議用 Linux 工具處理嘅專案放喺 WSL 檔案系統,例如 ~/projects;用 Windows 工具處理嘅檔案就留喺 NTFS。若果將大型 repo、node_modules 或頻繁讀寫嘅 build 目錄放入 /mnt/c,Linux 工具每次都要跨過 Windows 同 Linux 嘅檔案邊界,速度有機會明顯慢落嚟。XDA 作者話效能同原生系統夠接近,只適用於佢嗰套任務同檔案配置,唔應該當成普遍跑分結論。
好彩 VS Code Remote WSL 正好避開呢個問題:程式碼放喺 Linux 檔案系統,Windows 版 VS Code 只負責顯示介面。若果專案必須畀大量 Windows 同 Linux 工具輪流直接讀寫,WSL 2 嘅方便就會少一截,甚至較舊嘅 WSL 1 喺跨系統檔案存取方面更合適。呢類情況亦可以考慮完整虛擬機,用網絡共享或版本控制清楚劃開兩邊資料,減少權限、大小寫同 symlink 問題。
Linux GUI app 開到,但未等於完整 Linux desktop
WSLg 支援 X11 同 Wayland app,可以由 Start menu 啟動、釘上 taskbar、用 Alt-Tab 切換,剪貼簿亦可以同 Windows 共用;配合合適 driver,OpenGL 仲有 vGPU 加速。偶爾要開 Linux 版資料庫工具、繪圖程式或者測試單一 GUI app,已經相當方便。不過 Microsoft 自己都講明,WSLg 依賴 Windows desktop,冇提供完整 Linux desktop 體驗,一啲針對 GNOME、KDE 或完整登入 session 設計嘅工具未必支援得好。
所以,如果日常要用完整 Linux desktop,或者測試 display server、桌面整合、輸入法、電源管理同 distro 專屬行為,用原生 Linux 會直接得多。完整虛擬機亦可以提供獨立桌面同 snapshot,適合測試多個 distro;代價係要自己管理虛擬硬碟、網絡、資源分配同更新,Windows 軟件之間嘅互通亦冇 WSL 咁貼手。
Docker 同 GPU 已經實用,硬件邊界仍要睇清楚
Docker Desktop 有官方 WSL 2 backend,可以直接喺 WSL distro 入面用 Docker CLI,Linux workspace 同 container 擺喺同一邊,用嚟做日常 web development 幾順手。Microsoft 亦支援喺 WSL 使用 NVIDIA CUDA、DirectML 同 GPU container。不過「支援 GPU」涵蓋唔晒每種 driver、kernel module、運算框架同硬件組合;要驗證指定 CUDA 版本、自訂 kernel、低層效能或者 production 環境行為,原生 Linux仍然穩陣啲。
網絡亦有類似情況。WSL 2 預設使用虛擬網絡架構,Windows 11 22H2 起可開 mirrored networking,改善 VPN、IPv6、localhost 同 LAN 存取,但 firewall、公司 proxy 同個別 VPN 組合仍可能要調校。USB 可以配合 usbipd-win 接入 WSL 2。涉及 embedded 裝置、特殊 PCIe 硬件、kernel module 或低層網絡測試,原生 Linux、完整虛擬機同 dual boot 都仲有清楚用途。
四種方案點揀
工作主要留喺 Windows,又要 Linux CLI、Docker、web development 或 coding agent,先試 WSL 2 通常最慳事,記得將專案放入 Linux 檔案系統,再用支援 WSL 嘅編輯器連入去。想隔離公司環境、測試成套 Linux 系統、保存 snapshot,或者唔想 Windows 同 Linux 可以互相存取檔案,就揀完整虛擬機。長期用 Linux desktop,或者要直接控制硬件同 kernel,原生 Linux 仍然最直接;同一部機又必須保留 Windows,dual boot 先值得承受 partition 同重新開機嘅麻煩。
WSL 已經令 dual boot 由開發者常見配置,慢慢變成針對硬件、完整桌面同精準環境測試嘅選項。對一般 Windows 開發者,先用 WSL 做日常開發,遇到 WSL 應付唔到嘅限制,再轉用虛擬機或原生 Linux,會較容易管理。
參考來源
- XDA Developers — I do all my Linux work inside Windows now, and I genuinely can't tell if Microsoft won or lost — original report
- Microsoft Learn:Comparing WSL Versions — 核對 WSL 2 架構、完整 Linux kernel、systemd、檔案效能同硬件限制
- Microsoft Learn:Working across Windows and Linux file systems — 核對 Windows 同 Linux 檔案系統之間嘅效能建議
- Microsoft Learn:Run Linux GUI apps with WSL — 核對 WSLg、vGPU、X11/Wayland 支援同完整 desktop 限制
- Microsoft Learn:Accessing network applications with WSL — 核對 mirrored networking、VPN、IPv6、localhost 同 firewall 行為
- Microsoft Learn:GPU accelerated ML training in WSL — 核對 CUDA、DirectML 同 GPU container 支援
- Docker Docs:Docker Desktop WSL 2 backend on Windows — 核對 Docker Desktop 嘅 WSL 2 整合、資源管理同隔離模型
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







