리눅스에서 윈도우 앱을 매끄럽게 실행하는 WinBoat
(winboat.app)- WinBoat는 설정 자동화와 직관적인 사용자 인터페이스로 기존 WinApps보다 편의성 강조
- Wine이나 CrossOver에서 호환되지 않는 Adobe 제품군, Affinity Photo 등 주요 앱 지원
- 실험적 USB 패스스루 기능을 통해 Windows 전용 하드웨어 구성 가능
- GPU 가상화 및 Flatpak, Podman 지원 예정으로 확장성 높음
- Office 365 등 대표적인 윈도우 앱 자유롭게 사용 가능
WinBoat란 무엇인가
- WinBoat는 Linux 환경에서 Windows 앱을 원활하게 실행할 수 있게 도와주는 도구임
- 유저가 번거로운 수동 설정 없이, 필수 준비물만 갖춘 뒤 한 번의 설정으로 통합 경험을 제공함
- 별도의 설정 파일 수정이나 복잡한 CLI 명령어 학습 필요 없이, 단일 인터페이스에서 바로 사용 가능함
WinApps와의 비교
- WinApps는 여러 설정 작업을 수동으로 처리하고, TUI나 작업 표시줄 위젯, CLI 명령어 활용 필요함
- WinBoat는 설치 후, 한 번에 모든 구성 자동화 및 직관적 UI 제공으로 전체적인 사용자 경험 완성
- 구성 파일 직접 관리나 CLI 암기 과정 없이 간편한 사용성 보장함
CrossOver나 WINE 대비 장점
- Wine, CrossOver에서 실행이 어려운 다양한 앱(예: Affinity Photo, Adobe 전체 스위트, Paint Tool Sai, AeroChat, Acrobat, Office 등)도 작동함
- 전체 Windows 데스크탑 환경 제공 및 다양한 소프트웨어 호환 확보
주변기기/하드웨어 및 패스스루 지원
- USB 기반 기기의 경우, WinBoat 0.8.0부터 USB 패스스루 지원(실험적), Windows용 소프트웨어로 설정 가능
- WinBoat 구버전 사용자는 직접 docker-compose.yml 수정 방식으로 USB 기기 추가 가능
- 0.8.0 이상에서는 내장 방식만 호환됨
GPU 패스스루 및 그래픽 가상화
- 현재는 GPU 패스스루 미지원
- 추후 para-virtualized 드라이버, Indirect Display Driver 등을 활용한 GPU 가속 및 Looking Glass와의 연동 계획함
- 테스트 결과 일부 드라이버는 실사용 단계에 부적합, 준비 완료 시 통합 예정임
게임 및 보안
- 커널 레벨의 안티치트가 적용된 게임은 가상화 환경 한계로 실행 불가
확장성 및 배포 계획
- Podman(Docker 대체) 지원 예정이나, 네트워킹 이슈로 기능 완성 전임
- Flatpak 패키징도 계획 중이나, 시스템·앱 인터페이스 및 도구 노출 등 기술적 과제 존재함
윈도우 SW 및 오피스 지원
- Microsoft Office 365 등 주요 Windows 앱 실행 정상 동작함
결론
- WinBoat는 사용자 친화적 자동화, 호환성, 확장성 등 다양한 강점 바탕으로, Linux 상에서 Windows 응용 SW의 매끄러운 이용을 지원하는 솔루션임
Hacker News 의견
- 이건 단순히 Windows VM에 몇 가지 툴을 더한 것으로, 꽤 멋져 보이긴 해도 진짜 '리눅스에서 윈도우 앱 실행'은 아닌 느낌임
그동안에도 게임 분야에서는 Looking Glass같은 유사 프로젝트가 존재했고, 그것 역시 KVM 위의 Windows VM을 활용함 (Docker 컨테이너에서 바로 Windows가 도는 것처럼 포장하지만 실제로는 KVM 위에서 동작하는 구조임)
사용자 경험(UX) 측면에서는 RAIL과 유사함
그렇다고 이 프로젝트가 나쁘다는 건 아니지만, 결국 기존과 마찬가지로 API 시뮬레이션/재구현과 OS 자체 실행(윈도우) 두 가지 방식 중 하나라는 점에서 완전히 새로운 것은 아님
만약 제3의 방식, 예를 들어 in-place ABI 변환이라면 정말 큰 뉴스가 될 거라 생각함- 프로젝트가 실제로 뭘 하고 어떻게 동작하는지 Hacker News에 와서 확인해야 했음
프로젝트 페이지들은 대체로 자신이 뭘 하는지 정확하게 얘기하지 않음
절반은 "Plorglewurzle이 빅데이터 블록체인을 레버리지해서 Azure Cloud 인프라에 서브리니어 마이크로서비스를 제공" 같은 식의 설명이 대부분임
그래도 이 프로젝트는 적어도 윈도우 설치가 필요하다는 건 보여주고 있음 - 진짜 이름을 "Linux Subsystem for Windows", 줄여서 LSW로 했으면 재밌었을 것 같음
- 이건 dockur/windows:latest + FreeRDP 루트리스 모드 + VM에서 설치된 앱을 API로 알려주는 작은 데몬의 조합임
마지막 부분이 필요 없다면 dockur/windows 이미지와 FreeRDP만 쓰는 게 더 나을 수 있음 - in-place ABI 변환이 바로 wine이 하는 일임. 무슨 뜻으로 말한 건지 궁금함
- 정확히 WSL2와 같은 구조임
- 프로젝트가 실제로 뭘 하고 어떻게 동작하는지 Hacker News에 와서 확인해야 했음
- 소프트웨어가 실제로 뭘 하는지 Github 저장소에서 설명을 찾음
WinBoat는 Electron 앱으로, 리눅스에서 컨테이너화된 방식으로 윈도우 앱을 실행할 수 있음
Windows가 Docker 컨테이너 내 VM에서 실행되고, 우리는 WinBoat Guest Server를 통해 Windows에서 필요한 데이터를 가져옴
윈도우 앱을 네이티브 OS 수준의 창으로 합성하기 위해 FreeRDP와 Windows RemoteApp 프로토콜을 활용함
- 도커 컨테이너와 VM이 모두 필요한 이유가 궁금함
- 리눅스에서 행복해지는 내 팁은 다음과 같음
항상 네이티브 앱을 써야 함. WINE도 쓰지 말고, 기본적으로 적대적인 것과 호환성 맞추려고 하지 말 것
VM도 쓰지 말고 특히 듀얼부팅은 절대 추천하지 않음. 정말 별로임
완전히 리눅스로 옮기고 돌아보지 않는 것이 가장 좋음
Proton은 약간 특별한 경우인데, Valve가 매일 엄청난 에너지를 투자해서 그나마 잘 돌아가는 것임
좋은 소식은 리눅스 API/ABI 고도화에 투자하는 게 반드시 결실을 맺는다는 것임
Valve가 MESA랑 amdgpu에 한 기여는 정말 대단함
Valve가 리눅스의 AAA 타이틀과 인디 작품을 Steam 독점상으로 예우해줬으면 좋겠음
게임 개발자들도 "리눅스용 포트는 반드시 리눅스 개발자에게 맡겨야겠다"는 인상을 받길 바람
PS: 정말 오랜 시간 Counter-Strike가 리눅스에서 안 돌아서 아쉽다가, Valve가 네이티브 포팅하면서 완전히 좋아짐
PPS: Garmin Express와 Zwift라는 두 개의 호환 안 되는 앱 때문에 맥도 쓰고 있는데, 윈도우보다는 유지보수 적고, 리눅스보다는 할 수 있는 게 적음
파일 브라우저 진짜 별로고 창 관리도 짜증남
그래도 하루 종일 골치 썩이지는 않음
Counter-Strike 2는 맥에선 안 돌아서, 이 부분은 리눅스가 담당해야 함- 그런 조언은 별로라고 생각함
카운터 의견: Wine은 정말 잘 돌아감 (특히 옛날 소프트웨어들에)
사람들이 스스로 이런 규칙으로 괜히 제약을 두면, 많은 사람들이 리눅스를 못 쓰게 됨 - 내 추천: "항상 네이티브 앱만 써라, WINE 쓰지 마라"
내 생각: "근본적으로 불안정한 API들과 맞추려고 하지 마라"가 맞다고 봄
관련 글: Win32 is the stable Linux userland ABI and the consequences
참고 블로그: Win32 the only stable ABI
정확하게 말하면, GNU/Linux용 네이티브 앱을 쓰는 게 좋다고 생각하지만, 첫 번째로 API를 아주 오랫동안(최소 20년) 안정적으로 유지해주는 게 필요함 - 게임용 데스크톱을 작년에 리눅스로 옮겼음
내 경험상, 리눅스 네이티브 버전이 정말 잘 된 경우가 몇 없었음
Windows-on-Proton 버전이 오히려 품질이 더 좋은 경우도 많았음
BG3를 최근에 내놓은 Larian처럼 네이티브 버전을 훌륭히 만든 업체에게는 감사함
Proton이 잘 되는 이유가 Valve의 꾸준한 노력 덕분이라는 데에는 완전 공감함
게임 개발자들에게 네이티브 포팅을 외쳐도 현실에서는 잘 안됨
결국 Steam Deck, Valve, Proton 덕분에 시장이 서서히 리눅스로 이동하는 게 가능해짐 - 보통 발목을 잡는 건 AAA급 대형 게임이 아니라, 뜬금없는 특수 소프트웨어임
예를 들면 뜨개질 패턴 설계용 앱처럼 작은 전용툴인데, 오픈소스도 아님
여기에선 무리 없이 호환되는 환경이 꼭 필요할 수 있음
(게임은 Proton 덕분에 어느정도 해결됨) - "리눅스에서 행복하려면 네이티브 앱만 써라, WINE도 VM도 듀얼부트도 쓰지 마라"
이건 별로 좋은 조언이 아니라고 봄
많은 사람들이 리눅스를 쓰면서도 윈도우 앱을 돌리고 싶어 하는데, Wine도 잘 동작함
Wine에서 안 되는 앱들은 듀얼부트로도 충분히 사용 가능함
- 그런 조언은 별로라고 생각함
- 소프트웨어 웹사이트에 실제 구동 화면 스크린샷이 없는 건 안타까움
오피스 앱 실행 가능하다고 말만 할 게 아니라, 실제로 어떻게 보이는지 보여줬으면 함
"시밀리스" 경험을 강조하는데 정작 데모는 없음
이런 점은 정말 이해할 수 없음- 이 말에 완전 공감함
개별 윈도우 창이 리눅스 데스크톱(Alt-Tab, Ubuntu Dock 등)에 어떻게 통합되는지, 아니면 그냥 하나의 거대한 VM 창만 뜨는 건지에 대한 정보가 전혀 없음
왜 이런 걸 사이트에서 보여주지 않는지 궁금함
- 이 말에 완전 공감함
- UX도 멋지고 신기해서 지난 주말에 직접 사용해 봤음
아쉽게도 기본적인 사용도 잘 작동하지 않았음
Edge 브라우저를 실행하면 창이 뜨지만 멈춘 상태이고, 복구할 방법도 없어 보였음
창을 닫아도 창 테두리가 사라지지 않고 남아 있음
"Desktop" 옵션 연결을 시도하면 프리즈가 걸림
내장 웹뷰를 통해 세션에 연결은 가능했는데, rdp 연결 허용을 요구하는 것처럼 보였음
더 깊게 파보진 않았고, 배우자가 필요한 상황에는 안 맞아서 노트북을 다시 윈도우로 돌려버렸음
앞으로 윈도우 쪽 앱/시스템 연동이 좀 더 개선되길 바람- 혹시 배우자가 어떤 용도로 필요로 했는지 궁금함
많은 윈도우 앱이 Wine에서 잘 동작하고, 약간의 트윅만 해도 되기 때문에 그 선택지도 괜찮을 수 있음
- 혹시 배우자가 어떤 용도로 필요로 했는지 궁금함
- 오픈소스 소프트웨어에 친화적인 UX를 입혀서 리눅스에서 꼭 필요한 소프트웨어를 쉽게 쓸 수 있게 해주는 프로젝트들을 정말 좋아함
이와 비슷하게 macOS 앱을 리눅스에서 돌릴 수 있게 해주는 프로젝트도 있으면 좋겠음- macOS를 리눅스에서 잘 돌릴 수 있으면 좋겠지만, 현실적으로 넘어야 할 허들이 많음
- 애플은 자사 소프트웨어를 비맥 하드웨어에서 구동하는 걸 법적으로 금지함
- 윈도우는 싸구려 욕먹더라도 가상화해서 어디서든 돌리는 게 업계 표준인데, macOS는 이제야 조금 가능해지고 있음
- 애플은 이런 흐름에 경제적인 손실이 크기 때문에 적극적으로 막으려고 함
- 애플은 Docker를 대체하는 자체 ‘Apple Containers’ 플랫폼을 도입해 맥 사용자들이 Docker 활용 못 하게 유도 중임
때문에 macOS 앱 + 리눅스의 조합이 일반적인 일이 되기까지는 시간이 더 걸릴 것 같음
- 비슷하진 않지만 CLI 앱만 지원하는 darling이 있음: darling
전체 macOS VM이 필요하면 dockur의 프로젝트를 참고할 수 있음: dockur/macos
다만 둘 다 현재는 '시밀리스' 모드는 미지원임 - macOS는 루트리스 RDP로 macOS 앱 자체를 띄워주는 기능이 없음
어차피 전체 데스크탑을 써야 한다면 RDP보다는 하드웨어 가속 그래픽 뷰를 활용하는 게 더 낫다고 봄 - WinBoat 프로젝트가 흥미로워서 계속 지켜볼 예정임
최근 몇 년 WSL을 주로 업무에 쓰면서 GUI 앱을 마치 윈도우에서 직접 작업하듯 띄워서 쓸 수 있으니 생산성이 올라감
조금 이상한 점도 있지만 꽤 괜찮은 수준임
이와 반대로 리눅스 쪽에도 비슷한 무언가가 없을지 항상 궁금했음
사실 리눅스에서 윈도우 프로그램을 사용할 일은 거의 드물었음
예전에 Wine으로 GTA:Vice City를 거의 완벽하게 돌렸던 경험 정도
최근에는 "Linux Subsystem for Windows"식 뭔가가 있어서 어떤 프로그램이든 바로 돌릴 수 있다면 좋겠다는 생각을 자주 함
딸 노트북에 Debian을 설치해줬는데, 앞으로 학교 과제로 Microsoft 제품이 꼭 필요할 때 WinBoat가 대안이 될 수 있지 않을지 기대됨 - 윈도우 앱 통합에 있어서는 WinApps 프로젝트를 추천하고 싶음 (WinApps 링크)
Wayland 지원이 아직 개발 중이긴 하지만 (Wayland 관련 이슈), 당분간은 xwayland로도 어느 정도 사용 가능함 - 프로젝트 FAQ에 등장하는 Looking Glass Indirect Display Driver(IDD)가 정말 기대됨
IDD가 나오면 Looking Glass가 iGPU 셋업에서 동작하게 돼서 (3D 가속은 없지만) 의미 있음
Looking Glass는 원래 게스트 Windows의 컴포지터와 호스트에 뜨는 클라이언트 프로그램 간에 비디오 메모리를 공유하게 만든 것이 큰 성과임 (qemu 이용)
아쉽게도 아직 커널 바깥 드라이버(kvmfr)를 별도로 설치해야 하고, 그래도 비디오 메모리 말고 일반 메모리는 공유할 수 있어서 성능이 어느정도 나아질 수 있다고 기대
데모 영상: 유튜브 링크 - 프로젝트 측에 당부하고 싶은 게 있음:
웹사이트 메인에 Discord를 너무 노출하지 않았으면 좋겠음
Discord는 C2 서버로도 자주 쓰여서 보안 강화된 환경에서는 접속 시 경고가 뜸
우리 회사에서는 경고가 바로 나한테 오기에 다행이지만, 어쨌든 불필요한 경고 유발임
최소한 링크 뒤에 숨겨두는 게 좋겠음