마이크로소프트가 리눅스데스크톱 대중화 시대를 열었다. 오픈소스 진영의 오랜 숙제였던 데스크톱용 리눅스가 마이크로소프트 윈도10을 통해 일반인에게 다가갈 수 있게 됐다.
마이크로소프트는 19일 온라인으로 개최한 연례 개발자 컨퍼런스 '빌드2020'에서 윈도10의 '리눅스용윈도시스템(WSL) 2.0'에서 리눅스 GUI 앱을 실행할 수 있다고 발표했다. 또한, 윈도 상에서 실행하는 리눅스 앱이 컴퓨터의 GPU에 접근해 하드웨어 가속을 활용할 수 있게 됐다.
그래픽 기반 앱까지 WSL2에서 지원함에 따라 리눅스의 웨이랜드와 RDP 페인팅 앱 등을 윈도 데스크톱에서 실행할 수 있다.
■ 윈도10에 담긴 진짜 리눅스, GPU와 GUI 지원
첫 WSL은 2016년 윈도10 업데이트에서 등장한 윈도의 서브시스템이다. 기존 WSL 즉 'WSL1'은, 윈도 OS에서 일부 리눅스 바이너리 상호작용을 지원하는 호환 레이어로 에뮬레이션 아키텍처 기반이었다. 때문에 터미널 환경에서만 명령어 기반 리눅스 기능을 쓸 수 있었다.
작년 빌드2019 행사에서 첫 공개된 WSL2는 리눅스 바이너리의 전체 시스템 콜을 처리할 수 있도록 바뀌었다. 마이크로소프트는 WSL2에 직접 리눅스 커널을 포함시킴으로써 윈도 속 리눅스 환경 구동의 장벽을 없애버렸다. 도커 컨테이너의 리눅스 버전이라든지 여기에 마운트되는 사용자영역내 파일시스템(FUSE)같은 기술을 사용하는 리눅스 애플리케이션을 WSL2에서 구동할 수 있다.
마이크로소프트는 리눅스 GUI 앱을 X서버 없이 WSL 인스턴스를 열어 사용할 수 있다고 설명했다.
WSL2의 리눅스 커널과 GUI 및 GPU 지원은 곧 배포될 윈도10 2004 업데이트에 포함된다.
■ 다이렉트3D 12 API도 리눅스 전용 드라이버로 제공
게임 등 고성능 그래픽 처리를 리눅스 환경에서 제공하기 위한 작업도 진행되고 있다.
마이크로소프트는 윈도의 고성능 그래픽 API인 다이렉트X(다이렉트3D 12:D3D12)를 WSL2에서 돌아가는 리눅스기반 머신러닝 워크로드에서 GPU 기반으로 돌릴 수 있도록 했다.
마이크로소프트는 다이렉트X 기반의 리눅스 GPU 커널 드라이버를 개발해 공개했다. 이 드라이버는 WSL2에 포함된 실제 리눅스 커널에서 구동된다.
리눅스용 다이렉트X 드라이버는 WSL2의 리눅스커널을 통해 GPU 하드웨어 접근경로를 생성한다. 마이크로소프트 하이퍼V에서 작업할 때에만 가상화된 형태의 GPU 드라이버를 쓸 수 있다는 한계를 갖긴 했다.
마이크로소프트는 "GPU 가상화는 리눅스 게스트가 아니라 VM이나 컨테이너 내부에서 운영되는 윈도에서 사용가능하다"며 "리눅스 게스트의 GPU 가속은 윈도디스플레이드라이버모델(WDDM) 2.9 버전에서 쓸 수 있다"고 설명했다.
개발자는 WSL2를 활용해 자신의 윈도10 PC에서 리눅스 컨테이너 기반 워크로드를 생성, 테스트하고, 클라우드 서비스의 리눅스 환경으로 배포할 수 있게 된다.
스티브 프로노보스트 마이크로소프트 파트너개발 리드는 "리눅스 환경 안에서 돌아가는 애플리케이션은 윈도의 네이티브 애플리케이션으로서 GPU에 동일한 접속 경로를 갖는다"며 "리눅스와 윈도, 혹은 리눅스 애플리케이션에서 이용된 제한 등의 사이에 리소스 분리는 없다"고 설명했다.
그는 "공유는 필요로 하는 것에 기반해 완전히 동적으로 이뤄진다"며 "기본적으로 리눅스와 윈도 애플리케이션은 동일한 GPU를 공유하며 차이가 없다"고 강조했다.
그에 의하면, 윈도 PC 내부 GPU 가속을 리눅스 애플리케이션만 사용하는 경우, 해당 앱은 GPU 자원 전체를 소비할 수 있다.
마이크로소프트는 새 리눅스용 GPU 개선 작업 성과를 다가오는 윈도 인사이더 패스트링 업데이트에 포함시킬 것이라고 밝혔다. 또한 리눅스 커널을 위한 새 리눅스용 드라이버를 다수 개발중이며 오픈소스로 공유할 계획이라고 강조했다.
프로노보스트는 "완전한 D3D12 API는 모방도, 모조품도, 재실행도 아닌 실제"라며 "libd3d12.so는 윈도의 d3d12 dll 파일과 동일한 소스코드로 컴파일되지만, 리눅스를 타깃으로 한다"고 말했다.
그는 "이는 기능적으로 동일하고, 성능도 동일하다"고 덧붙였다.
윈도10의 WSL2가 GUI와 GPU 가속을 지원하게 됨에 따라, 리눅스 데스크톱 시대가 갑자기 열리게 됐다.
리눅스는 서버와 임베디드 영역에서 주류로 자리잡았지만, 데스크톱 영역에선 많이 쓰이지 못했다. 캐노니컬을 비롯한 리눅스업체가 우분투를 데스크톱용 리눅스로 밀고 있지만, 널리 보급되지 못했다. 소프트웨어 품질을 차치하고, 꾸준하고 안정적인 유지보수 서비스를 받을 수 없다는 점, OEM PC 파트너를 확보하지 못했다는 점, 일반인이 쓰기 어렵다는 점 등이 실패 이유로 꼽힌다.
때문에 한때 리눅스와 오픈소스를 암적 존재라며 비난했던 마이크로소프트가 리눅스 데스크톱을 윈도로 제공한다는 점은 흥미롭다. 이미 10억대 이상의 윈도10 기기가 보급된 만큼 리눅스 데스크톱 이용이 확산될 기본적 토대가 마련된 셈이다.
당초 마이크로소프트의 WSL 첫버전 개발에 힘을 보탰던 캐노니컬은 WSL2에 이르러 협력하지 않고 있다. 현재 WSL2와 윈도 속 리눅스 커널은 마이크로소프트 독자적으로 개발되고 있으며, 향후 업데이트 및 관리도 윈도10 업데이트 프로세스에서 독립적으로 이뤄진다.
■ 윈도 터미널 1.0 출시, 탭과 페인으로 멀티 모드 가능
마이크로소프트는 이와 함께 윈도의 새 명령어도구 창인 '윈도 터미널'을 1.0 버전으로 정식 공개했다. 작년 0.1 버전으로 공개됐었다. 윈도 터미널 1.0은 MS스토어와 깃허브에서 다운로드 받을 수 있다.
윈도터미널은 윈도10과 WSL 환경을 모두 제어할 수 있다. 리눅스 배시셸이나 윈도 명령어 환경으로 쉽게 전환 가능하다. 마우스 이용이 지원된다.
페인 복사 기능인 '듀플리케이트 페인(duplicate pane)'도 제공한다. 페인은 윈도 탭 화면 단위로, 개발자들은 이 기능으로 사용 중인 페인의 프로필을 복사해 새로운 창을 만들 수 있다. 이 기능은 스플릿페인(splitPane) 내 스플릿모드(splitMode)라는 새 옵션에서 키 바인딩 듀플리케이트를 설정해 활성화시킬 수 있다.
탭과 페인 모두에서 어떤 명령어 애플리케이션도 실행할 수 있다. 워크플로우를 리눅스와 윈도 모두 띄워 함께 쓰는 것도 가능하다. 터미널은 WSL이나 파워셸 설치 시 자동으로 프로필을 생성한다.
관련기사
- MS, 헬스케어 특화 클라우드 공개2020.05.21
- MS, 개발자행사 '빌드2020' 온라인 개최2020.05.21
- 사티아 나델라 "코로나 2개월에 디지털혁신 2년치 가치 목격"2020.05.21
- MS, 윈도 터미널 업데이트...WSL에 마우스 입력 지원2020.05.21
텍스트를 렌더링하기 위해 GPU를 활용할 수도 있다. 명령어 실행 시 더 빠른 경험을 누릴 수 있다. 렌더링은 유니코드와 UTF-8 문자를 지원한다. 이모지도 명령어 창에서 쓸 수 있다는 의미다.
터미널창의 배경화면을 마음대로 바꿀 수 있다. 단축키도 원하는대로 설정할 수 있다.