Computer >> 컴퓨터 >  >> 시스템 >> Windows

Windows 10의 BASH에서 그래픽 앱을 실행하는 방법: Xming으로 GUI 구동하기

안녕하세요, 여러분. 이제는 Windows보다 Linux라고 말하고 싶어지는 순간이 찾아왔습니다. 얼마 전까지만 해도 Windows 위에서 Linux를 구동하는 일은 가상화 기술의 은혜에 의존해야만 가능했습니다. 하지만 이제 Windows 10은 Ubuntu를 네이티브 수준으로 지원합니다. 박수를 보낼 만한 일이 아닐 수 없죠.

WSL(Windows Subsystem for Linux)의 Bash를 직접 사용해 보니 정말 놀라운 경험이었습니다. 다만 한 가지 해내지 못한 것이 있었으니, 바로 그래픽 애플리케이션을 실행하는 일이었습니다. Ubuntu 이미지에는 그래픽 컴포넌트가 포함되어 있지 않기 때문입니다. X11 서버 관련 패키지를 설치할 수는 있지만, 실제로 구동할 방법은 없습니다. 그래픽 앱을 돌리려면 외부 X 서버가 필요합니다. 지금부터 그 방법을 살펴보겠습니다.

Xming 설정하기

Xming은 Windows용 X 서버입니다. 디스플레이를 내보내고(export) 그래픽 애플리케이션을 실행할 수 있게 해주는 도구로, VNC와 비슷하지만 조금은 다른 방식이라고 이해하시면 됩니다. Windows 10에서 BASH를 올바르게 설정했다면, 다음 단계는 이 프로그램을 설치하는 것입니다.

설치가 끝나면 프로그램을 실행합니다. Windows 방화벽이 활성화되어 있다면 허용 여부를 묻는 팝업이 나타날 것입니다. 당연한 일인데, Xming은 서버 역할을 하며 들어오는 연결을 수락해야 하기 때문입니다. 로컬(개인) 네트워크 주소에 대해서만 허용하도록 설정하는 것이 안전합니다. 예전의 Linux 명령어 및 설정 튜토리얼이나 Xephyr 리뷰를 읽어보신 분이라면 개념이 더욱 명확하게 잡힐 것입니다.

직접 확인해 보세요

자, 이제 Xming이 실행 중일 겁니다. 시스템 트레이에서 확인할 수 있습니다. 이제 Firefox나 VLC 같은 그래픽 애플리케이션을 실행해 볼 차례입니다. 다만, 앱에게 자신의 디스플레이가 어디에 있는지 알려줘야 합니다. 여러 가지 방법이 있지만 가장 간단한 방식은 다음과 같습니다.

DISPLAY=:0 <소프트웨어>

멋진 스크린샷들을 소개합니다! 아래 갤러리에는 Windows 드라이브에 접근해 음악 파일을 열어본 과정도 함께 담았습니다. 기본적으로는 홈 디렉터리만 보이지만, 상위 파일시스템 트리로 올라가면 /mnt 경로 아래에서 Windows 드라이브의 마운트를 찾을 수 있습니다. 마치 WINE과 비슷한 방식입니다.

완벽한가요?

전혀 그렇지 않습니다. 이 방식에는 여러 가지 문제점이 따릅니다. 우선 3D 가속을 전혀 사용할 수 없습니다. 사운드 카드나 카메라도 작동하지 않습니다. WSL은 사용자 모드(user-mode) 구현체이기 때문에, 현재 단계에서는 하드웨어에 직접 접근할 수 없으며, 성능 역시 걸림돌입니다.

그래픽 쪽에서도 여러 버그와 누락된 의존성 문제가 발생할 수 있습니다. 처음에 VLC는 PulseAudio가 제대로 설정되지 않아 실행되자마자 크래시가 발생했습니다. 의존성 패키지를 추가로 설치한 뒤에는 실행되었지만, 소리가 나지 않았습니다. Firefox 역시 네임스페이스 샌드박싱 관련 불만을 토로했지만, 다행히 정상적으로 구동되었습니다.

DISPLAY=:0 vlc
VLC media player 2.1.6 Rincewind (revision 2.1.6-0-gea01d28)
[0x1217f08] pulse audio output error: PulseAudio server connection failure: Connection refused
Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting.
Aborted (core dumped)

Sandbox: unexpected multithreading found; this prevents using namespace sandboxing.

결론

여기까지입니다. 또 하나의 주제를 정복했습니다. 정말 흥미롭지 않습니까? 이 개념은 가능성을 계속해서 넓혀가고 있으며, 아직 베타 단계라는 점을 감안하면 더욱 기대됩니다. 풀 스택이 완성되면 훨씬 매력적인 결과물이 될 것이고, 드라이버까지 지원된다면 더 나은 성능과 하드웨어의 온전한 활용도 가능해질 것입니다. 당장은 BASH를 사용하면서, Xming의 도움을 받아 무난한 수준의 안정성으로 그래픽 애플리케이션을 테스트할 수 있습니다. 물론 결과를 장담할 수는 없고, 다소 끊기는 경험이 따르긴 합니다.

저는 WSL을 Windows 10의 가장 신선한 기능 중 하나로 꼽습니다. 아직 실질적인 용도가 크지 않다 하더라도 말입니다. 하지만 곰곰이 생각해 보면, 이번 마이크로소프트 운영체제는 그 어떤 Windows 릴리스보다 Linux의 세계에 가까워졌습니다. 꽤 우아한 변화라고 해야겠죠. 확실한 것 하나는, 저는 이 기능을 앞으로도 계속 테스트하고 다듬을 것이라는 점입니다. 유연성과 보안성, 그리고 그 이상의 가능성이 저를 부르고 있으니까요. 더 재미있는 소식으로 다시 찾아오겠습니다.

그럼, 즐거운 컴퓨팅 되세요!