[WSL2] Windows 11의 WSL2에서 리눅스 X Window 응용프로그램 실행하기

언제부턴가 마이크로소프트가 오픈소스 진영에 호의적인 행동을 보이기 시작했다. 그리고 놀랄만한 툴들을 마이크로소프트에서 무료로 출시하고 있다. 대표적으로 VSCODE라고도 불리는 Visual Studio Code라는 개발자도구가 있다. 그리고 최근 또하나의 획기적인 작품(?)을 사용할 수 있으니... 바로 WSL2에서 GPU 가상화를 통한 X Window 응용프로그램 지원이다.

 

쉽게 말해 Windows 에서 지원하고 있는 WSL(Windows Subsytem for Linux)에서 리눅스의 GUI 응용프로그램들을 실행할 수 있다는 얘기다.

 

오래 전, 유닉스와 리눅스 환경에서 실행되는 X Window 프로그램들을 Windows에서 Windows 응용프로그램들과 함께 실행할 수 있었으면 좋겠다는... 당시로서는 말도 안되는 바램이 있었다. 그래서 Windows 용 X Server를 설치하고 억지로 억지로 네트워크를 통해 다른 유닉스나 리눅스에 X Window 터미널을 실행시켜 접속하고 작업을 하기도 했었다.

 

그런데... 그런 상상을 한지 20년도 더 지난 지금.. Windows 11에 포함된 WSL2에서 그 상상이 현실이 되었다. 사실 WSL을 처음 만져보면서 마이크로소프트의 개과천선에 놀랐었다. 하지만 X Window까지 지원하리라고는 생각하지 못했었는데 언제부턴가 WSL에서 X Window 지원을 위해 작업을 하고 있다는 소문이 들리더니 결국은 현실이 되었다.

 

하지만 Windows 11의 WSL2의 리눅스 커널에서 공식적으로 X Server를 지원함에도 Windows에 X Server를 설치하고 DISPLAY만 Windows로 설정하여 X Window 응용프로그램을 실행하는 편법을 소개하거나 MSTSC 클라이언트를 통해 접속하는 방법을 소개하는 블로그도 꽤나 많다. 하지만 이제 그럴 필요가 없다.

 

WSL에서 X Window 응용프로그램을 실행시키는 방법을 포스팅한다.

vGPU를 지원하는 그래픽 드라이버 설치

WSL의 가상화에서  X Window의 GUI API를 실행하기 위해서는 GPU(Graphic Process Unit)의 가상화가 이루어져야 가능한 것으로 보인다. 그래서 마이크로소프트의 WSL 관련 기술자료에서는 주요 GPU 벤더에서 제공하는 vGPU를 지원하는 드라이버 다운로드 페이지를 제공하고 있다.

 

https://docs.microsoft.com/ko-kr/windows/wsl/tutorials/gui-apps

 

위의 마이크로소프트 사이트에 가면 다음과 같이 각 GPU 벤더의 다운로드 페이지 링크를 제공한다.

 

WSL에서 Linux GUI 앱 실행
WSL에서 리눅스 GUI 앱 실행을 위한 주요 GPU 벤더의 vGPU 지원 드라이버 다운로드 페이지 링크

 

인텔의 vGPU 지원 그래픽 드라이버를 다운로드 받아 설치한다.

 

인텔의 vGPU 지원 그래픽 드라이버 다운로드 및 설치

 

WSL2 업데이트 및 버전 2 리눅스 실행

vGPU 지원 그래픽 드라이버를 설치하고 나면 Windows 11의 WSL 실행하기 위해 Windows Power Shell 또는 Command 창 또는 Windows Terminal을 관리자 권한으로 실행한다.

 

윈도 파워쉘 실행
Windows 파워쉘 실행

 

먼저 WSL 엔진을 업데이트 한다. ( wsl --update )

 

WSL 업데이트 및 셧다운
WSL 업데이트 및 셧다운

 

그리고 WSL로 실행중일 수도 있는 가상머신들을 모두 종료한다.  ( wsl --shutdown )

 

여기서 중요한 점은 wsl에 설치된 리눅스가 모두 아래와 같이 VERSION 2 로 설치되어 있어야 한다. VERSION 1에서는 X Window 응용프로그램을 실행할 수 없다.

 

wsl 리눅스 가상머신의 버전 확인
wsl 리눅스 가상머신의 버전 확인

 

WSL에 설치된 리눅스의 가상머신 버전 확인은 wsl -l -v 명령으로 수행한다.

 

버전이 2 로 확인되면 다음의 명령을 통해 리눅스를 실행한다. 이 포스트에서는 Kali Linux (칼리 리눅스)를 기준으로 설명한다. 가상 머신의 실행은 wsl - d kali-linux 로 실행한다. -d 옵션 뒤에의 리눅스는 앞에서 wsl -l -v 명령의 결과로 출력되는 리눅스 머신의 NAME의 값을 지정하면 된다.

 


wsl 의 가상머신을 명령행에서 실행하기
wsl 의 가상머신을 명령행에서 실행하기

 

만약 우분투라면 마이크로소프트의 공식 지원 페이지를 참고하는게 좋겠다. 

https://docs.microsoft.com/ko-kr/windows/wsl/tutorials/gui-apps

리눅스 업데이트 및 GUI 패키지 설치 (칼리 리눅스 - Kali Linux)

칼리 리눅스가 실행되면 먼저 리눅스를 업그레이드 한다. 우선 데비안 계열과 우분투 계열 모두 동일한 명령으로 패키지 정보를 업데이트가 가능하다.  ( sudo apt update )

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

칼리 리눅스 패키지 정보 업데이트

 

다음은 실제 업그레이드를 실행한다. ( sudo apt upgrade )

 

칼리 리눅스 업그레이드 패키지 설치

 

 

 

 

다음은 칼리 리눅스의 X Window 패키지를 새로 설치하거나 업그레이드 한다. ( sudo apt install kali-desktop-xfce )

 

칼리리눅스에 x window 패키지 설치

 

이 과정은 꽤 시간이 걸릴 수 있는데... 다음에 설치할 칼리 리눅스 앱의 설치에 비하면... 껌이다. -.-

 

X Window 패키지 설치

 

칼리 리눅스의 기본적인 도구들을 설치한다. 이 패키지들은 해킹 또는 모의해킹이나 취약점 점검에 사용되는 도구들이다. 그리고 X Window 응용프로그램으로 개발된 점검 도구들도 함께 설치된다. ( sudo apt install kali-linux-default )

 

칼리리눅스의 도구 설치를 위한 다운로드

 

이 작업은 징그럽게 오래 걸렸다. 다운로드에만 거의 14시간 이상 걸린 듯 하다. 다운로드가 끝나면 자동으로 설치가 진행된다.

 

다운로드 받은 칼리리눅스 응용프로그램 설치

 

일단 편한 X Window 터미널 응용프로그램인 gnome-terminal 을 설치해본다.

 


gnome-terminal 설치
gnome-terminal 설치

 

WSL에서 리눅스 X Window 응용프로그램 실행

여기까지 문제 없이 진행되었다면 wsl에 설치된 리눅스에서 gnome-terminal 명령을 실행해본다.

 

wsl에서 x window 터미널 실행 - gnome-terminal
wsl에서 x window 터미널 실행 - gnome-terminal

 

오옷... Windows 터미널과 x window 터미널 (gnome-terminal)이 함께 실행되었다.

만약 여기서 디스플레이할 터미널을 찾을 수 없다거나 display 라는 단어가 들어간 에러가 발생한다면 다음의 명령어를 실행한 뒤 gnome-terminal을 실행시켜 본다.

 

$ DISPLAY=:0.0;export DISPLAY

 

이제 칼리리눅스의 다른 앱 중 하나를 실행해본다. burpsuite 다.

 

윈도탐색기, 엑셀과 칼리리눅스의 버프스위트와 그놈터미널이 함께 실행된 화면

 

오래(?) 살다보니 상상만 하던 이런 세상이 오기도 한다. 

[출처] https://blogger.pe.kr/950

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
266 [C/C++ 자료구조] 아스키 코드표(ASCII Table) file 졸리운_곰 2023.08.16 8
265 [WSL2] WSL2 외부 접속 설정 file 졸리운_곰 2023.06.26 42
264 [WSL2] Mysql 자동실행 설정하기 file 졸리운_곰 2023.06.25 16
263 [visual studio] Bring Your MFC Application to the Web mfc 어플리케인 web 구동 file 졸리운_곰 2023.03.20 4
262 [C/C++][인터넷] [C++] Full-fledged client-server example with C++ REST SDK 2.10 졸리운_곰 2023.02.20 23
261 [Linux programming][turbo c] The libXbgi Library file 졸리운_곰 2023.02.05 9
260 [visual studio] [borland c] Using the WinBGIm Graphics Library with Visual Studio 2005/2008 2010 file 졸리운_곰 2023.02.05 4
259 [WSL2] 윈도우에서 linux 사용 (WSL 2), xwindows GUI 설정 file 졸리운_곰 2023.01.28 18
» [WSL2] Windows 11의 WSL2에서 리눅스 X Window 응용프로그램 실행하기 file 졸리운_곰 2023.01.28 23
257 [C/C++ 인공지능] Getting Started with mlpack 졸리운_곰 2023.01.28 12
256 [리눅스][linux] Ubuntu/Linux에서 user password를 짧거나 쉬운 password로 변경하는 방법. file 졸리운_곰 2023.01.08 6
255 [linux master][리눅스 마스터][국가기술자격] [GCP 원데이] 서버가 죽는 이유, Message Queue file 졸리운_곰 2023.01.01 12
254 [linux master][리눅스 마스터][국가기술자격] 리눅스 서버 다운 원인 5가지 졸리운_곰 2023.01.01 3
253 [WSL2] WSL에서의 Jupyter notebook 사용하기. file 졸리운_곰 2022.11.27 40
252 [docker] [Oracle] docker에 Oracle 11g 설치하기 file 졸리운_곰 2022.11.26 15
251 [linux master][리눅스 마스터][국가기술자격] Shell In A Box-원격 Linux 서버에 액세스하기위한 웹 기반 SSH 터미널 file 졸리운_곰 2022.11.17 4
250 [linux dev env] [우분투 서버] noVNC 접속 file 졸리운_곰 2022.11.16 3
249 [C/C++][인터넷] [C++] FTP Upload/Download 구현 클래스(매우 유용) file 졸리운_곰 2022.11.16 23
248 [리눅스 일반] ffmpeg에서 m4a 파일을 mp3 파일로 변환할때 생기는 오류에 관하여 file 졸리운_곰 2022.11.11 11
247 [C/C++ 언어일반] C/C++ 스마트 포인터 관련 file 졸리운_곰 2022.11.06 22
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED