世界を動かす技術を、日本語で。

WinBoat: Linux上でのシームレスな統合を実現するWindowsアプリ

概要

  • WinBoat は、簡単セットアップと統合インターフェースを特徴とするオープンソースのWindows仮想化プロジェクト
  • Beta版 のためバグや問題が発生する可能性があり、一定のトラブルシューティング能力が必要
  • USBパススルーOffice 365対応 など、他ツールでは難しい機能も一部サポート
  • 開発者・デザイナーなど、幅広いコミュニティからの 貢献を歓迎
  • WinApps・CrossOver・WINE との違いや今後の対応予定も明記

WinBoatとは

  • WinBoat は、WindowsアプリをLinux環境で簡単に利用可能にする仮想化プロジェクト
  • Beta版 として公開中、短時間でセットアップ可能な設計
  • オープンソース でMITライセンス、誰でも貢献可能
  • 公式リポジトリは Browse Repository からアクセス

特徴・利点

  • 統合インターフェース による一元管理
  • 初期設定が簡単 で、複雑なCLIコマンドや設定ファイル編集が不要
  • USBパススルー (バージョン0.8.0以降で実験的サポート)
  • Office 365 やAdobe suiteなど、WINEやCrossOverで動作しないアプリも対応
  • トラブルシューティング ができるユーザー向け、Beta品質

WinAppsとの比較

  • WinApps では手動設定が多く、統合UIが存在しない
  • WinBoat は必要な設定を自動化し、見やすいインターフェースで提供
  • 設定ファイルやコマンドの暗記が不要、すぐに利用開始可能

CrossOverやWINEとの違い

  • CrossOverやWINE で動作しないアプリも利用可能
  • 完全なWindowsデスクトップ を同時に実現
  • 例:Affinity Photo、Paint Tool Sai v1.0、Adobe suite、AeroChat、Acrobat、Officeなどの動作実績

ハードウェア・周辺機器対応

  • USB接続の周辺機器 はWinBoat 0.8.0以降でパススルー対応
  • 設定不要でWindows用ソフトウェアによるデバイス管理が可能
  • 旧バージョンではdocker-compose.ymlの手動編集で一部対応可能
    • バージョン0.8.0以降にアップグレード時は編集内容の削除が必要

GPUパススルーについて

  • 現時点で GPUパススルー非対応
  • 将来的に paravirtualized drivers によるGPUアクセラレーションを検討中
  • MVisor Win VGPU DriverLooking Glass などの技術を調査
  • 実用化は未定、今後のアップデートで対応予定

ゲーム互換性

  • カーネルレベルのアンチチート を搭載したゲームは仮想化環境では動作不可
  • 仮想化の制限による非対応

Docker以外の対応予定

  • Podman対応 を計画中
    • ネットワーク関連の問題(ゲストサーバーの到達不可)が未解決
  • Flatpak化 も検討中
    • システムやアプリとの隔離性が高く、実現には工夫が必要

その他のFAQ

  • Office 365利用 :可能
  • 貢献方法 :開発・デザイン・利用者としてコミュニティ参加が可能

今後の展望

  • 安定版リリース に向けた機能改善・バグ修正
  • コミュニティ貢献 の拡大
  • 新機能(GPU/Podman/Flatpak等) の段階的実装
  • ユーザー体験向上 を目指したアップデート継続

Hackerたちの意見

これは単なるWindowsのVMに追加ツールを加えたものだね。見た目はかっこいいけど、「Linux上のWindowsアプリ」ってわけじゃない。ゲーム向けにはLooking Glassみたいな似たようなプロジェクトもあって、これもKVM上のWindows VMを使ってるし(「Docker上のWindows」ってのはちょっと嘘だよ、Windowsはコンテナ内で動いてるんじゃなくて、ホストのカーネル上のKVMで動いてる)。UX的にはRAILに似てるね。これが新しいものじゃないってわけじゃないけど、目新しさはないかな(APIシミュレーション/再実装とOSを動かすのがまだ2つの選択肢として残ってる)。もしこれが新しい第三の選択肢だったら、かなりのニュースになるだろうね(その場でABI変換とか?)。

文字通り、dockur/windows:latest + FreeRDPのルートレスモード + VM内で動いてる小さなデーモンがインストールされてるアプリをAPI経由で教えてくれるだけだよ。後者がいらないなら、dockur/windowsイメージ + FreeRDPの方がいいと思う。

「Linux Subsystem for Windows」、略してLSWって呼ぶチャンスを逃したね。

それに、MSがMSアカウントでサインインしないといけないようにしてるから、正直意味がわからないよね。

何が何だかわからなくてここに来たんだけど、プロジェクトページっていつも何をするものなのか、どうやってやるのかを教えてくれないよね。半分は「Plorglewurzleがあなたのビッグデータブロックチェーンを活用してAzure Cloudインフラにサブリニアマイクロサービスを提供します」みたいな感じ。少なくとも、これにはWindowsをインストールする必要があるって示してるね。

すごく素敵なオープンソースソフトウェアに親しみやすい顔をつけて、みんながLinuxをもっと簡単に使えるようにしてくれるプロジェクトを見るのが大好きだよ。Linux上でmacOSアプリを動かすための似たような取り組みは進んでるのかな?

macOSがLinux上でうまく動くのを見てみたいけど、それを実現するにはいろんなハードルがあるんだ。1. Appleは自社のソフトを非Macハードウェアで動かすのを違法にしてる。2. Windowsが嫌われることが多いけど、業界全体ではそれを仮想化してどこでも動かすのが普通になってる… macOSでも最近ようやくそうなりつつある。3. Appleにはこれを妨げる強い経済的利害がある。4. AppleはDockerを再発明しようとしていて、みんなが自分のMacでDockerを使うのをやめさせようとしてる。だから… macアプリとLinuxの組み合わせが一般的になるまでには時間がかかると思う。

完全に似てるわけじゃないけど、今のところCLIアプリだけをサポートしてるdarlingってのがあるよ: https://github.com/darlinghq/darling もしフルのmacOS VMが欲しいなら、dockurのプロジェクトがあるよ: https://github.com/dockur/macos でもシームレスモードのサポートはまだないね。

macOSはmacOSアプリでルートレスRDPをサポートしてないよ。フルデスクトップを使うなら、RDPを完全にスキップして、アクセラレートされたグラフィックビューを使った方がいいよ。

Office用にVirtual BoxのVMを使ってたけど、これをちょっと試してみたら感動したよ。Dockerで動かしてるVMは普通のWindowsインストールよりもずっと軽いし、ローカルのRDP接続でアプリを動かすのがVirtual Boxのグラフィックススタックよりもかなりスムーズなんだ。

パフォーマンスの面では、VirtualBoxよりもvirt-managerを使った方がずっと良い経験ができたよ。GUIでVMを管理したいならね。人それぞれだけど。

もし理解が合ってれば、WINEとは違って、実際のWindowsライセンスが必要なんだよね(少なくとも合法でいたいなら)?

そうだね、Dockerで動かしてるWindows 11は、しばらくしたらライセンスキーを求めてくるよ。古いWin10のキーを使ったら、ちゃんと動いたけど。

確かに neat だし、UXも結構スムーズだった…先週末に試してみたんだけど、残念ながら基本的な使い方でも失敗しちゃった。Edgeブラウザを立ち上げると、ウィンドウがフリーズしちゃって、回復する方法が見当たらなかった…閉じるとアウトラインだけ残って、統合自体にも問題があった。 "Desktop"オプションを接続しようとしたら、またフリーズしちゃった。統合されたウェブビューを通じてセッションには接続できたけど、RDP接続を許可するように求められてた。これ以上深く掘り下げることはできなかった…彼女の必要なユースケースには合わなかったから、結局彼女のノートパソコンはWindowsに戻さざるを得なかった。もっと良くなることを願ってる…Windows側でアプリやシステムの統合が進めばいいな。

彼女のユースケースは何なの?聞いてもいいかな?多くのWindowsアプリはWineでちゃんと動くし(いくつかは追加の調整が必要かもしれないけど)、それが選択肢になるかもしれないよ。

予想してみるよ。難しくなると失敗するんだね。USB?独自のIP?3D?Bluetooth?Linuxで幸せになるためのおすすめは、常にネイティブアプリを使うこと。WINEは使わないで。敵対的なものに互換性を持たせようとしないこと。VMも使わない。特にデュアルブートは最悪。基本的には移行してフルLinuxにするべき。振り返らないでね :) Proton(WINEの派生)はなんとか動くけど、Valveが毎日ものすごい努力を注いでるからなんだよね。でもそれが問題、ものすごい努力が必要なんだ。良いニュースは、高品質なAPI/ABIに投資した分は必ず報われるってこと。ValveがMESAやamdgpuに貢献してるのは貴重だよ。ValveはLinux向けのネイティブAAAタイトルやインディータイトルを特別なSteamアワードで評価すべきだと思う。Unrailedみたいな素晴らしい作品もあるし、ゲーム開発者に「ちゃんとしたポートを作らなきゃ」と思わせるべきだよね。Win32の開発者にやらせるんじゃなくて、Linuxの開発者に任せるべき。追伸:Counter-StrikeがLinuxでできなくて、ずっと寂しかった。そしたらValveが来て、すべてをネイティブにポートしてくれて、素晴らしいよ :) 追伸の追伸:Macを使ってるけど、互換性のないアプリ(Garmin ExpressとZwift)用だよ。Windowsよりメンテナンスが楽。Linuxよりできることは少ないけど、日常を壊さずにカバーしてくれる。Counter-Strike 2はMacでは動かないって認めざるを得ない。それはLinuxの仕事だね :)

私たちの中には、Windows専用のアプリが必要な仕事をしている人もいるよ。

よくあるのは、あなたを引き止めるのはAAAゲームみたいな大きくて複雑なものじゃなくて、もっと要求が少なくてマイナーなものだったりする。例えば、編み物のパターンをデザインするアプリとか、特別に作られたもので、大きなチームが背後にいるわけじゃない。オープンソースじゃないけどね。この場合、シームレスな互換性が素晴らしいよ。(ゲームに関してはProtonがあるけどね。)

Linuxで幸せになるためのおすすめは、常にネイティブアプリを使うこと。WINEは使わないで。敵対的なものに互換性を持たせようとしないこと。VMも使わない。特にデュアルブートは最悪。もしあなたのおすすめを聞いていたら、Linuxを試すことはなかったと思う。ごめんだけど、LinuxはPhotoshopもValorantも特定のVPNも、特定の教育ソフトも動かない。デュアルブートは、ほとんどの場合WINEを設定するよりずっと良いけど、もしLinuxでネイティブにすべてをやることができたなら、SteamOSが使えるようになるまでにそんなに時間がかからなかったはずだよ。それに、特定のプログラムやゲームを動かすためにSteam DeckにWindowsをインストールする人もいるしね。ネイティブLinuxが選択肢じゃないのと同じ理由で、最初にLinuxを試したときにはネイティブmacOSも選択肢じゃなかった。今でもPaint.NETのようなプログラムがLinuxやmacOSでは恋しいし(Pintaのことは知ってるけど)、標準のmacOSはXPを思い出させるツールやバックグラウンドプログラムなしでは使いづらい。WindowsはWindowsのツール用、Linuxはほとんどの時間、macOSはmacOSの仕事用に使ってる。どちらの非Linux OSも手放すつもりはないよ。そうしないと特定のことが単純に不可能になっちゃうから。

Protonで動いてるゲームは、多くのネイティブゲームよりも長期的な互換性があると感じてる。Steamがネイティブゲーム用に安定したランタイムを提供してるけど、10年代の最初のLinuxプッシュの時に出たタイトルの中には、今はクラッシュしやすかったり、パフォーマンスに問題があるものもある。でも、Protonを使ってWindows版を使うと、全く問題なく動くんだ。人々にお気に入りのソフトウェアを使うことを考えないように言うのは、彼らが切り替えを考えないようにする良い方法だよね。多くの人気WindowsアプリはWINEでちゃんと動くし、もう10年もfoobar2000を使ってるけど、同じ機能セットを持つネイティブの代替品にはまだ出会ってない。だから、なんでずっと使い続けないといけないの?

悪いアドバイスだね。反論すると、Wineは本当にうまく動く(特に古いアプリケーションに対して)し、使うことに何の問題もないよ。人々が恣意的なルールに自分を制限すると、多くの人がLinuxを使えなくなっちゃうよ。

USBパススルーは驚くほどうまく機能するよ。(winboatの経験はないけど。)

昨年、ゲーム用デスクトップをLinuxに切り替えたんだけど、Linuxのネイティブ版はWindows-on-Proton版ほど良くないっていうのが主な感想だね。(最近のBG3リリースについてはLarianに感謝!ネイティブ版はかなり良い。)Protonがここまでうまくいってるのは、Valveの不断の努力のおかげだと思う。ゲーム開発者にネイティブLinux版をもっと良くしろって叫んでも意味ないよ。市場のデモグラフィックが徐々にLinuxに移行しているのは、主にValve、Proton、Steam Deckのおかげだね。

このプロジェクトについてはよく知らないけど、KVM+QemuとVFIOを使うとUSBデバイス(他の物理資産もほとんど)を仮想化されたOSに割り当てられるよ。以前は、こうやってマウスをWindowsとLinuxの間で行き来させてたし、モニターも同様に使ってた(Crysisがちゃんと動くことを示すためにね)。

ゲームの大半はSteam/Proton経由で問題なく動くよ。ネイティブLinuxポートは絶対に来ないから、それぞれのOSの得意分野を理解しておくことが大事だね。若い頃は、Linuxをいじるのが私のCS教育みたいなものでした。デスクトップLinuxは、集中したいときに使ってる。自分のやりたいことをコンピュータにやらせたいからね。音楽制作にはWindowsの方が断然良いし、DAWを切り替えるつもりはないよ。主に.NET開発者だから、Visual Studioがないと本当に生産的になれない。重要な面接があるときはOSXを使うけど、最近Fedoraで面接したこともある。すごく安定したディストロだよ!ランボルギーニをオフロードに持っていかないし、ジープをレーストラックに持っていくこともないよね。

幸せにLinuxを使うためのおすすめは、ネイティブアプリを使うことだよ。WINEは使わない方がいいし、敵対的なものに合わせようとしないで。VMも使わないし、特にデュアルブートは最悪。これはひどいアドバイスだね。多くの人がLinuxを使いながらWindowsアプリを使いたいと思ってるし、Wineはそれに対してちゃんと機能するよ。それに、Wineで動かないアプリも少ないけど、デュアルブートなら問題なく動くからね。

FAQにLooking Glass Indirect Display Driver (IDD)について書いてあったね。これは楽しみだな。IDDがリリースされれば、Looking GlassはiGPUのセットアップでも動くようになるみたいだけど、3Dアクセラレーションはなし。Looking Glassが実現したのは、ゲストのWindowsコンポジタとホスト上で動いているクライアント(qemu使用)との間でビデオメモリの共有ができるようになったこと。残念ながら、kvmfrって呼ばれるカーネルドライバが必要みたい。kvmfrなしでも非ビデオメモリの共有はできるみたいで、これがうまくいけば十分なパフォーマンスが得られるかも。デモ動画はこちら: https://www.youtube.com/watch?v=cg50X9w5llI

WinAppsって、なんかおしゃれなGUIのやつ? [0] https://github.com/winapps-org/winapps

どんなアプリでも動く > Windowsで動くなら、WinBoatでも動く。ここで何か見逃してる?「GPUを必要とするアプリや、USB以外のデバイスにアクセスするアプリ、アンチチートがあるアプリは除く」みたいな注釈が必要じゃない?

これって合ってる?ExcelがほぼシームレスにネイティブLinuxプログラムみたいに動くってこと?何か裏があるのかな?それが実現できれば、Linuxに移行する人が増えるかもね。