轉自: https://zhuanlan.zhihu.com/p/151853503
在Windows 10升級到2004版本以后,自帶的Windows subsystem for linux也可以升級至第二代也就是wsl2,它的輕量和不低的性能,使得它成為虛擬機的有力替代品,可以在不安裝linux虛擬機的情況下,也可以在Windows下享受到較完整的linux開發體驗。
但是,WSL2本身只有一個命令行界面,雖然linux大多數操作都在終端下完成,但難免會有一些程序要使用到圖形界面GUI(比如我學操作系統時會用到的qemu、bochs等硬件模擬器),所以實現WSL2的圖形顯示,有時候還是必要的。
顯示圖形界面的方法就是在Windows下安裝x-server來顯示,我之前安裝的是VcXsrv,后來了解到了MobaXterm,繼承了ssh、scp、x-server等多種功能,省了很多事,所以現在轉投MobaXterm來作為x-server了。
官方下載地址(免費的Home Edition就夠用了):
打開后默認是會自動啟動x-server的,接下來就是要配置WSL2的顯示設置了。
在一代WSL的時候,只要把環境變量DISPLAY設置為localhost:0.0即可,但WSL2改變了網絡設置,所以配置方式有所不同。
如果使用的是bash,就在.bashrc中;如果使用的是zsh,就在.zshrc中加入下面這條:
export DISPLAY=`cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`:0.0
然后
source .bashrc
或
source .zshrc
即可。
接下來打開GUI程序就能正常顯示了,比如我使用bochs打開linux-0.11就會是如下效果:
但有時會發現仍然沒有絲毫動靜,那有可能是因為防火牆的原因,阻斷了和x-server的通信,打開防火牆設置,把涉及xwin_mobax.exe的選項全勾上即可。
Firewall 設置