WinBoat は、Windows アプリケーションを Linux 上で統合して実行するための最良のツールです。

  • WinBoat は Docker と KVM を使用して実際の Windows を実行し、FreeRDP 経由で Wi​​ndows を統合します。
  • 主要なアプリに対する Wine の制限を克服し、オンデマンドで完全なデスクトップを提供します。
  • クリアな要件: KVM、Docker、Compose v2、オーディオ付き FreeRDP 3。
  • GPU パススルーはまだありませんが、Podman と Flatpak は技術的な課題を伴いながら進行中です。

ウィンボート

Linux で作業していて、Windows 専用アプリケーションをときどき実行する必要がある場合、板挟み状態に陥ってしまうのは当然です。 WinBoatが新たな選択肢として浮上: 互換性レイヤーの代わりに、実際の Windows インスタンスを実行し、デスクトップにシームレスに統合します。

このアイデアはシンプルでありながら強力です。 DockerとKVMで本物のWindowsを構築するFreeRDP を使って Linux セッション内でウィンドウをネイティブウィンドウのように表示できます。奇妙な依存関係や予測不能なパッチに悩まされることはもうありません。Windows で動作するプログラムは、強力なグラフィックアクセラレーションやカーネルレベルのアンチチート対策が必要な場合を除き、Windows でも動作するはずです。

WinBoat とは何ですか? なぜ興味深いのですか?

WinBoatは、Windows for Penguinsの精神にもあるように、 WindowsアプリはLinux上で共存します 摩擦を最小限に抑えます。API変換の代わりに、KVMとDockerコンテナによる仮想化を利用してWindows環境をカプセル化し、環境内で独立したウィンドウとして表示します。

これまでのアプローチと比較して、 Winアプリ重要な違いはエクスペリエンスにあります。WinAppsでは、設定の大部分はユーザー次第です。 多くの手作業による組み立て、基本的なTUI、タスクバーにいくつかのウィジェット、そして点在するいくつかのコンソールコマンド。一方、WinBoatは、いくつかの前提条件を満たすだけで面倒な作業をすべて引き受け、関連情報をすっきりとしたインターフェースに表示し、設定ファイルの操作や一連のコマンドの暗記に煩わされることなく、より包括的なエクスペリエンスを提供します。

なぜWINEやCrossOverを使わないのかと疑問に思うなら、答えは境界線上のケースにあります。 スムーズに進まなかったり、WINEが全く起動しなかったりします。まさにそのためにWinBoatが誕生しました。これらのギャップを埋め、必要な時に完全なWindowsデスクトップを提供するためです。実際のテストでは、Affinity Photo、ペイントツールSAI v1.0、Adobeスイート、AeroChat、Acrobat、そしてもちろんOfficeが例として挙げられています。Office 365でも動作が確認されています。

WinBoatの仕組み:ウィンドウ統合による仮想化

内部的には、WinBoat は Docker をオーケストレーターとして使用し、KVM を展開テクノロジーとして使用して Windows マシンを立ち上げます。 ハードウェア支援仮想化Windows は FreeRDP 経由で Linux 上でレンダリングされるため、他のシステム アプリと同じように使用でき、デスクトップ間でドラッグしたり、タスクバーにピン留めしたり、Alt + Tab で切り替えたりすることができます。

この発明の優れた点は、ユーザーが連続した流れを認識できることです。 エレガントなインターフェース自動インストールプロセス、そしてタスクの必要に応じてWindowsデスクトップ全体を起動するオプションなど、様々な機能を備えています。タスクが必要ない場合は、特定のアプリケーションのみを開き、ネイティブアプリケーションのように統合することで、セッション全体を通して一貫したルック&フィールを維持できます。

優れた機能

  • すっきりしたインターフェース 視覚的な統合により、Windows ウィンドウが Linux 自体のウィンドウのように見えます。
  • 自動インストール: 好みとリソースを選択すると、システムが調理を担当します。
  • ほぼすべてのアプリを実行 Windows 上で実行され、デスクトップ上のシステム レベル ウィンドウとして表示されます。
  • フルデスクトップ 必要なときに Windows を利用できるだけでなく、個々のアプリを統合された方法で起動することもできます。
  • ファイル統合: Windows のホーム ディレクトリをマウントして、ドキュメントを直接共有します。
  • 便利な追加機能 スマートカード パススルー、リソース監視などの機能が現在進行中およびすでに導入されています。

システムの前提条件

始める前に、機器がこれらの最小要件を満たしていることを確認してください。そうでない場合、最初からエラーが発生します。 各ポイントを冷静に確認する そして恐怖を避けます。

  • RAM:少なくとも4 GB。
  • CPU: 最低 2 つのスレッド。
  • ストレージ: /var に 32 GB の空き容量があります。
  • 仮想化: BIOS または UEFI で KVM が有効になっています。
  • デッカー: コンテナ化に必要です。
  • Docker Compose v2: docker-compose.yml ファイルとの互換性に不可欠です。
  • Dockerグループ: ユーザーを docker グループに追加します。
  • 無料RDP: サウンドサポート付きバージョン 3.xx。
  • カーネルモジュール: iptables と iptable_nat をロードします。

ソフトウェア要件に加えて、KVM がディストリビューション上で実際に動作していることを確認する必要があります。 無効化されたKVM BIOS でエラーが発生したり、カーネルによってブロックされたりすると、他のすべてが正常であっても何も起動しなくなります。

ダウンロードとインストール: 利用可能なバージョン

Linuxビルドはプロジェクトのリリースセクションからダウンロードできます。現在、ほとんどのケースに対応できる2つのバージョンがあり、導入も比較的簡単です。 あなたのディストリビューションに最適なものを選択してください そしてあなたの働き方。

  • AppImage: 複雑なインストールなしでほとんどのディストリビューションで動作するポータブル形式。
  • アンパック: 解凍されたファイル。linux-unpacked/winboat 内のバイナリを実行するだけです。

開発者によって報告された非互換性に注意してください。 現時点では Podman はサポートされていません。Docker Desktop、Podmanソケットを使ってDockerをエミュレートするディストリビューション、そしてルートレスコンテナ構成には対応していません。これらの環境に依存している場合は、今後のリリースを待つ必要があります。

最も大きな欠点は、 さまざまな追加機能を手動でインストールする 完全なエクスペリエンスを楽しむには、Docker、Compose v2、オーディオ対応のFreeRDP 3、iptablesモジュール、そしてDockerグループへのメンバーシップが必要です。これらさえ済めば、あとはほぼ準備完了です。

ソースコードからコンパイルして実行する

自分のマシン上でアプリケーションをビルドする場合、必要な依存関係がある限り、プロセスは簡単です。 NodeJSとGoが必要です 開始する前にインストールしてください。

  • リポジトリをクローンします。 git clone https://github.com/TibixDev/WinBoat
  • 依存関係をインストールします: npm i
  • アプリとゲスト サーバーをコンパイルします。 npm run build:linux-gs
  • 結果のバイナリは次のようになります。 dist、AppImageとUnpackedバリアント付き

開発の場合、フローが若干変更され、ローカルでより快適に反復できるようになります。 NodeJSとGoに対応、次の手順に従います。

  • リポジトリをクローンします。 git clone https://github.com/TibixDev/WinBoat
  • 依存関係をインストールします: npm i
  • ゲスト サーバーを構築します。 npm run build-guest-server
  • 開発モードでアプリを起動します。 npm run dev

デバイスとハードウェア構成

Windowsからハードウェアを変更する必要がある場合、サポートはデバイスの種類によって異なります。USBの場合は既にオプションが用意されていますが、現在は設定が手動になっています。 USBパススルーがアプリに届いたらこれはインターフェースから実行できますが、その間にファイルを編集する必要があります。

WinBoatがインストールされたら、フォルダに移動します ~/.winboat ファイルを開く docker-compose.ymlここで、ゲストに表示したい USB デバイスを追加できます。 修正後、変更を適用するには docker-compose down y docker-compose up -d 同じディレクトリ内にあります。

グラフィックスとアクセラレーション: WinBoat の現状

現在、GPUパススルーは動作していません。今後、以下の方法でアクセラレーションを実装する予定です。 準仮想化ドライバーしかし、まだやるべきことはあります。MVisor Win VGPU Driver for OpenGL は調査済みで、結果は有望ですが、別のハイパーバイザー向けに設計されており、WinBoat が使用する QEMU とは互換性がありません。

DirectX ドライバーに取り組んでいるチームもありますが、現時点では確実にテストできるものはありません。 目標はこれらの部分を統合することだ 安定性を損なうことなく、一般的な使用に十分成熟したとき。

綿密に調査されたプロジェクトの 1 つが Looking Glass であり、特にその間接ディスプレイ ドライバーは、2 番目の GPU の使用を回避できるようになるため注目されています。 ドライバーは正常にコンパイルされ、起動されました。 少し調整を加えても、黒い画面しか表示されません。作者自身もまだ一般公開には至っていないと述べているため、統合は成熟するまで待つ必要があるようです。

アンチチートやその他のWinBoat制限のあるゲーム

カーネルレベルのアンチチートを備えたゲームがターゲットの場合、良いニュースはありません。 これらのシステムは仮想化を検出してブロックします。なので、WinBoatでは実行できません。これらの制限がないゲームや、それほど邪魔にならない保護機能を備えたゲームの場合は状況が異なる可能性がありますが、それはこのプロジェクトの主な目的ではありません。

Flatpak での Podman のステータスとパッケージング

Podmanのサポートはチームと協力者によって計画されており、すでに作業も進められています。しかし、 ネットワークの問題によりゲストサーバーにアクセスできない、これはユーザー体験を損ないます。解決されるまで、ToDoリストに残ります。

WinBoat を Flatpak に変換することもロードマップに含まれていますが、Flatpak ではアプリがシステムから大きく分離されるため、労力がかかります。 インストールされたアプリケーションは公開される必要がある、Dockerバイナリ、そのソケット、そしてその他のユーティリティをすべて、サンドボックスのセキュリティを損なうことなく実行できます。簡単ではありませんが、不可能ではありません。

ファイル統合とワークフロー

生活を楽にする実用的な詳細は、Linux のホーム ディレクトリが Windows 内にマウントされることです。 これにより、ファイルの共有が可能になります。 追加のリソースを設定したり、特殊な場所から手動でコピーしたりすることなく、ある場所から別の場所へファイルを移動できます。オフィス、編集、CAD などの作業では、非常に便利なショートカットです。

うまく機能するアプリと使用例

WinBoat の本当の価値は、Wine がまだカバーしていないプログラムを使用しなければならないときに発揮されます。 アフィニティフォトなどの例が強調されているペイントツールSAI v1.0、Adobeスイートの一部、AeroChatやAcrobatなどのツールが含まれています。特にOfficeは目立っており、Office 365は問題なく使用できることが確認されています。

このアプローチは、いくつかの重要な Windows ユーティリティを必要とし、その他すべてについては Linux 環境を維持することを好むプロフェッショナルに適しています。 設計、高度なオフィスオートメーション または、特定の企業アプリがこの混合使用に特に適しています。

WinBoatプロジェクトとライセンスに協力する

バグの修正、機能の改良、ドキュメントの改善など、貢献はオープンかつ常に歓迎されます。 チームは技術的な貢献に重点を置くよう求めている 開発に貢献しない政治的、性的、またはセンシティブな内容を含むプルリクエストは破棄してください。ご協力いただける場合は、問題セクションを確認し、改善を提案し、限定的なプルリクエストをオープンすることをお勧めします。

バグを報告したり機能を提案したりするだけでなく、実際の使用状況に関するフィードバックを共有したり、マニュアルのポイントを明確にしたりすることもできます。 このプロジェクトはMITライセンスの下で運営されていますは、様々なシナリオでのコラボレーションと導入を促進します。また、同様のアイデアを持つ他のプロジェクトからもインスピレーションを得ているとのことです。ぜひチェックしてみてください。

プライバシーに関する注意事項、通知、ソースコンテキスト

アクセスする情報の一部は、プライバシーに関する通知が表示されるプラットフォーム上のスレッドから取得されます。Redditの場合、RedditとそのパートナーがCookieや類似の技術を使用して、より良い体験を提供し、サービスを維持し、 コンテンツと広告の品質を向上させ、パーソナライズする広告効果の測定に加え、すべてのCookieを許可する場合は続行してください。必須ではないCookieを拒否する場合は、プラットフォームの機能に必要な特定のCookieが使用される場合があります。また、Cookieに関する通知とプライバシーポリシーも参照してください。

一部の X 埋め込みでは、ブラウザで JavaScript が無効になっている場合、JavaScript を有効にするか、サポートされているブラウザを使用して続行するように求めるプロンプトが表示されます。 ヘルプセンターへのリンクがリストされています および利用規約、プライバシーポリシー、Cookie ポリシー、インプリント、広告データ、および X の企業署名が含まれます。これらは標準のプラットフォーム メッセージであり、WinBoat の動作には影響しません。

最後に、一部の記事には、コンテンツを追加しない空のテーブルとプレースホルダーを含むレイアウトが含まれています。 これらの視覚的要素 これらは元の設計の一部であり、WinBoat に関する関連する技術情報は含まれていません。

良い顔でテストを受けるための実践的なヒント

このプロジェクトでは多くの作業が自動化されていますが、事前に準備しておくと便利です。ユーザーがDockerグループに属していること、そしてsudoなしでコンテナを実行できることを確認してください。 FreeRDPのバージョンが3.xxであることを確認する サウンド付きでインストールしてください。古いバージョンでは音声の問題が発生する可能性があります。また、デプロイ中に容量不足にならないように、/var の空き容量も確認してください。

Windows 内で特定の USB 周辺機器を使用する予定の場合は、それらの識別子を用意し、docker-compose.yml に加えた変更を文書化しておきます。 簡単なチェックリスト コンテナを上げ下げする前に、特にチームを交代したり、プロジェクトを複数の人と共有したりする場合に、時間を節約できます。

ウィンボート オファー Linux を放棄せずに Windows を便利に使いたい人のための実用的な方法: 適切にオーケストレーションされた仮想化、FreeRDP と統合された Windows明確な要件と、グラフィックアクセラレーション、Podmanサポート、Flatpakパッケージの改善を目指すロードマップを備えています。ベータ版でも本格的な作業が可能で、WineやProtonでは物足りない場合、特にLinuxではまだ苦戦している重要なデザイン、オフィス、ビジネスワークフロープログラムにとって魅力的な代替手段となります。