8 ポイント 投稿者 GN⁺ 2025-03-31 | 10件のコメント | WhatsAppで共有

> 「LinuxディストリビューションをWindowsのようにしなければなりません。」

  • この記事は、既存のLinuxの移植性と配布方式の問題を解決するために、基本的にWineを通じてWindows実行ファイルを動かせるLinuxディストリビューションを作ろうという提案である
  • これにより、Windowsユーザーはほとんど訓練なしでLinuxへ簡単に移行でき、Linuxの長年の互換性問題もあわせて解決できる

Linux環境の不安定性

  • Windowsでは20年前の.exeファイルも実行できる一方、Linuxでは1年前のバイナリですら動かないことがある
  • これは、Linuxのライブラリのバージョン差異や更新によって、同じ実行ファイルがさまざまなディストリビューションで動作しなくなるためである
  • Linuxのシステムコールは安定しているが、その上に載るCライブラリ(libc)は不安定であり、ユーザー空間の大半がこれに依存している

Linuxにおけるバイナリ配布の問題

  • Linuxでは実行ファイルを配布する主な方法が実に4種類も存在し、それぞれ問題を抱えている
    • 生バイナリ: ほとんどの環境で動作しない
    • AppImage: すべての依存関係を含むが、完全な保存性は未知数
    • Flatpak: アプリごとにサンドボックスを提供する
    • Snap: 別のサンドボックス型パッケージマネージャー
  • これらはすべて、インストール、更新、削除の方式が互いに異なり、同時に共存も可能である
  • 長期的なアプリ保存と再実行には大半が適しておらず、20年後に実行できる可能性はほとんどない

Win32が解決策である理由

  • WindowsのWin32 APIは、Linux上で唯一安定したABI(Application Binary Interface)だと評価される
  • Windowsは直接システムコールを行わず、動的ライブラリを通じて呼び出すことでAPIの安定性を維持している
  • この構造のおかげで、Microsoftは内部的にカーネルを変更しながらも、ユーザーには同じインターフェースを提供できる
  • 一方Linuxはシステムコールを直接呼び出し、ライブラリも不安定なため、互換性の問題が続いている
  • WineはこのWin32構造を実装しており、1990年代のWindows 95時代のアプリまで実行可能にしている
  • 特にWin32ベースのアプリだけを使うなら、WineとWindowsの間の互換性の差はほとんどない

新しいLinuxディストリビューション構想

  • Windowsに似たデスクトップ環境を持つLinuxディストリビューションを作ろうという提案
  • このディストリビューションには標準でWineがインストールされており、小さなカーネルパッチによってWindows実行ファイルを自動認識して実行できるようにする
  • ユーザーごとにWine環境(prefix)を設定し、WindowsスタイルのファイルシステムとGUIを提供する
  • 従来のLinux環境もバックグラウンドに維持され、上級ユーザーはそれにアクセスできる

真のマルチプラットフォーム対応

  • WineはLinuxだけでなく、FreeBSD、macOS、AndroidなどさまざまなOSで動作する
  • すべてのアプリをWin32アプリとしてのみ配布すれば、別途ポーティングせずに複数のプラットフォームで実行できる
  • 1つのアプリで複数のOS互換性を確保できる構造である

将来の脅威

  • macOSとWindowsはますます閉鎖的な方向へ進んでおり、ユーザーの統制権を奪っている
    • Windowsは自動スクリーンショットとAI分析機能を追加しつつある
    • macOSはGatekeeperを通じて、承認されたアプリだけが実行できるよう制限している
  • 両OSともユーザーの活動を監視し、違法ファイルの探索や通報機能まで準備している
  • MicrosoftはオンラインアカウントなしでWindowsを使うことをますます難しくしている
  • その結果、アカウント停止時にはコンピューター自体を使えなくなる状況が起こりうる

> この流れは悪意というより、経済的・政治的圧力によって生じる問題だと解釈している

LinuxをWindowsとして包む理由

  • 新しいLinuxディストリビューションは移植性の問題を解決し、Windowsユーザーに親しみやすい移行環境を提供する
  • Windows 11へのアップグレードが強制される時点で、簡単に移行できる代替案を提供できる
  • 今こそ、ユーザー主権を回復できるLinuxディストリビューションを構想する絶好の時期だという主張である

10件のコメント

 
roxie 2025-04-02

20年持ちこたえるエコシステムにはうなずかされますが、その行き着く先がなぜ wine なのか…。

 
yfkim97 2025-04-02

macOSはもう使えなさそう

 
labeldock 2025-04-01

批判的に見たいわけではないのですが、いくつかのOSを使ってきた者としては、あまり共感できません。今はたいていのGUIツールはWebで使えますし、優れたデスクトップが必要ならUIの美しいWindowsでやるほうがよいでしょうし、ドライバーの対応もWindowsのほうがはるかに良いですから。

 
alucardkang 2025-03-31

Steamになるべきなのにね…。

 
prunusnira 2025-03-31

Tmax Window... Lindows/Linspire... ReactOS... うっ、頭が...
Valve の Proton は本当に大きな仕事をしている気がしますね

 
aer0700 2025-03-31

なかなか斬新な提案ですね

 
kwj9211 2025-03-31

普通にTop-tierなゲーム/ソフトウェアがちゃんと動くように調整してくれるほうがいいんじゃないか

…と思っちゃいけないんでしょうね?(笑)

 
kandk 2025-03-31

Windows 11以降のPCがなくてもゲームができる時代が来るといいですね(泣)

 
GN⁺ 2025-03-31
Hacker Newsの意見
  • Linuxディストリビューションで、デフォルトでWindowsバイナリを実行するWineを使うディストリビューションを作ろうという意見がある

    • Debianでは sudo apt install wine-binfmt コマンドで簡単にインストール可能
    • 他の方法でも設定ファイルを修正して利用できる
  • Windowsでは20年前のexeファイルも依然として実行可能だが、Linuxでは1年前のバイナリでもアップデートによって実行できなくなることがある

    • Windowsはアプリのインストール時にすべての動的依存関係を一緒にパッケージ化する一方、Linuxはアプリ間で動的依存関係を共有する
    • 依存関係を変更するとアプリが動作しなくなる可能性がある
    • これを解決するために、Windowsのように配布するか静的リンクする方法がある
  • 新しいディストリビューションが必要だとは思わない

    • ほとんどのWindowsアプリはWine経由で動作可能だが、あるアプリを動かすためのハックが別のアプリを壊すことがある
    • 各ユーザーが個別に設定を調整する必要があり、ある人のコンピュータで動くものが別の人のコンピュータでは動かないことがある
    • 最も簡単な解決策は、Wine入りのコンテナを配布して、すべてのユーザーが同じアーティファクトを受け取り、常に動作するようにすること
    • 容量効率は悪いが、コンテナ利用のためにWineをスリム化する方法が必要
    • ライセンスとソフトウェアのアンチパターンがこのシステムにおける唯一の障壁
  • Zorin OSは.exeファイルに対するWineサポートをほぼ標準で提供しており、Steam OS/Protonには新しいゲームのLinuxポートを作るのではなくProton向けに最適化せよという公式ガイドラインがある

  • Linuxディストリビューションは一般的に実行ファイルを動的リンクし、旧バージョンのライブラリを保持しない

    • Windowsにはパッケージマネージャーがないため、旧バージョンの実行ファイルを維持している
    • Windows Storeや最近のCLIツールはあるが、伝統的にWindowsアプリケーションのインストールは手動ダウンロードとインストールで行われてきた
    • Linuxでも同じやり方はできるが、Linuxディストリビューションのパッケージマネージャーは一般的に非常に優秀
  • Linuxのシステムコールは非常に安定しているが、その上のCライブラリはそうではない

    • Windowsにも同じ問題があり、Visual C++ランタイムの一部としてlibcを配布している
    • WindowsはVisual Studioの新バージョンをリリースするまでlibcの下位互換性を維持する
  • Lindows/Linspireを求めている人のように聞こえる

  • Windows ABIが非常に安定しているなら、なぜWin95やNTを使うコンピュータが特定のソフトウェアが動かなくなるのを恐れて誰にも触られないのか不思議だ

    • 産業環境、公共図書館、企業データベースなどでこうしたコンピュータを多く見かける
  • exeファイル実行のためにカーネルパッチは不要で、binfmt_miscがこれを処理できる

    • wine-binfmtはPEファイルを自動的にWine経由で実行する