Hidekichi

最近どんなことがありました?in Linux界隈 6月半ば

最近あんまりこれと言ったニュースもなく書くこともないですが、無いながらもZed中心に色々探してきました

最近界隈を賑わしているAUR問題

6/11頃から、公式ニュースなどで言われるようになってますが、AUR(Arch User Repository)に、悪意あるパッケージの採用と更新が多数発生していると発表しました。

そういうのはUbuntu界隈でやれよと思うわけですが、これらはすぐにコミュニティメンバーなどの協力もあり即座に発見されパッケージに含まれている悪意あるスクリプトにマーカーして850個以上発見したと言います。そうするとまた何かしら悪さをしている奴らは「bun」と言う単語を「b」「u」「n」のように分割して検索をすり抜けるという手口で悪さを進めます。更にもっと難読化された別のパッチも発見され、検索してらんねぇとローカルで実行したGemma E2Bモデルを用いてこれを検出し、htbrowser-binをフラグ付けしました。

現在、Arch LinuxチームはAURのクリーンアップ作業のため、新規AURアカウント登録を一時停止したと流れになっています。

これらはArch Linuxだけではなく、その派生ディストリビューションにも影響があるわけですが、基本的にはユーザー側は何もせずともparuyayでアップデートが行われないようになっているかと思うので特別問題では無いと思います。更新が行われないなどもあるかとは思いますが、数日から数週間で動かなくなってしまうようなアプリはないので、気をつけるとすればAURのインストール作業が可能な環境であれば、インストールする前に表示されるアップデート情報など、何がどう変わるのかという内容をよく確認してインストールするという感じになるかと思います。

そもそもAURはあんまり使わず、公式パッケージしか入れていないという人にはおそらく影響はないだろうとも思います。

公式パッケージとAURの違い

公式パッケージは公式な段階を経て配布されるものであり、必ず安全かは何ともいえませんがほぼ問題ないと考えられる一方、AURはそういったチェックがなく個人が配布する場であるので、悪意あるコードが挿入されることは無きにしもあらずなわけです。公式パッケージにないものとして、インストールする前に何がどう変わったかなどを表示されるようになっていて確認はできますがとても難しい内容の場合はそれを追うのが困難でもあります。

なのでユニバーサルパッケージシステムのFlatpakなどがあるわけです。

AURとFlatpakはどう違うか?

パッと見てFlatpakのインストールする時などにGithub等と文字が見えますので、単にアプリ作者がGithubに置いてあるものをFlatpakにバイナリを登録してるだけなんじゃないか?と思いがちです。

flathubインストールコマンド

AURはそういう側面がありますが、FlatpakはFlathub運営が「変な外部スクリプトをダウンロードしてRoot権限を奪ってしまう」等がないように、セキュリティー面をチェックして、人間がソースコードとパーミッション(権限)などをチェックする審査があります。オリジナルが確実にわかるようにGithubのリポジトリやドメインの所有権を確認して、誰かが勝手に配布しているのではなく開発元公式が直接提供しているというのを明らかにするバッジの導入なども行われています。だからといって安全とは限りませんが限りなく安全であると言えるのかなぁ~?ぐらいの感じです。

Flatpakはクローズドな専用サーバーでビルドが行われており、ユーザーのPCでビルドをするわけではないので、多くのビルド中に悪意あるスクリプトを混入させるということが困難になっています。アプリがどのようにビルドされるのかは変更履歴(マニフェスト)で公開されていて、それを後から改変することも禁じられています。更にこの部分をすり抜けても隔離空間(サンドボックス)で動作しているため、システムにアクセスできません。またそのアプリはどの部分にアクセスするかというのが明示されているため、予めユーザーが利用するための予防線にもなっています。

もちろんこれらは100%安全だとはいえませんが、「個人の善意と目視チェック(コミットログの確認)に依存するAUR」に比べると、「システム(構造)として悪意ある挙動をさせない仕組みになっているFlatpak」の方が、普段使いにおける安全性は圧倒的に高いと言えます。

こういった事から、AURのビルドしたものの方が諸々の作用でファイルサイズが小さくなるものの、サイズが大きくなったとしてもFlatpakが利用されている理由の一つになっています。

FedoraのAtomicなディストリビューションとFlatpak

Fedoraに限らずではありますが、FedoraのAtomicなディストロではシステムコアが不変(Immutable / Read-only)であり、ユーザーがシステムを変更したりができません。そのためFlatpakと相性が良くシステムとFlatpakの二重の防御があるとも考えられます。従来であればusr/であったりにファイルを直接書き込んでいきますが、権限などがあるとはいえ危険ではありますよね?Windowsなどもセキュリティーが機能しているのか?という構造でもありますが(一応機能はしてる)、AtomicなディストロはアプリのインストールがFlatpakしか認められていないと言うことで、やることに制限ができてしまう代わりにセキュリティを高めるという働きをしています。

またOSのアップデートが100%失敗しないというのもLinuxを使い始めたばかりのユーザーには安心感も感じられるはずです。

OSのアップデートが100%失敗しないとは?FedoraのAtomic版のディストリビューションは、OSのシステムごとアップデートする仕組みです。またアップデートする以前のバージョンを保持しており、アップデートに失敗したら前のバージョンに切り替わり変わらず作業ができ、アップデートに成功したら丸ごと書き換えて最新にすると言う仕組みのため、半壊れ状態が起きません。またOS全体を書き換えると言っても差分も上手に管理しており、従来のディストロ更新と大差はありません。ただ以前のバージョンを保持することからその分だけストレージ容量は必要になりますが、倍必要だとかそういうこともありません。ただし、システムにアクセスできないサンドボックス上で動作するアプリを使用するということはファミコンなどと同じでソフトにあることしかできなくなります。これが制限があるという点です。自由度を低めるが大事な部分は保護すると言う方針です

アプリではどういう事があったか

Rust製で超高速なエディタ「Zed」のLinux版が1.0を迎え、本格的に普及しています。VS Codeのように重くならず、起動も動作も一瞬です。最近のアップデートではAI(DeepSeekなど)の統合や、Linux特有のバグ修正が進み、「軽くてモダンなエディタ」を求めるユーザーの定番になりつつあります。

Zedはどうしてアーキテクチャが異なるPCで動作するのか?

ZedはMacOSがメインで作られ、Linuxはほぼ同様に動きますがこれはどうやってるのでしょうか?Zedはそのコアアーキテクチャである「GPUI」と言う独自のフレームワークがあります。クロスプラットフォームと言うとQTとかElectronなどが思い浮かびますが、そういったものに頼らずOS毎に一番効率の良い低レイヤーの仕組みを直接叩くと言う力技をRustで実現しました。

エディタの「コードを表示する」「ミニマップを表示する」という共通コードはそのままに、最後の画面に出力する部分だけを「Metal」から「Vulkan/Blade」に差し替えているわけです。この事からLinuxでもMacOSでも変わらない爆速スクロールなどが実現できるということです。

マウスやキーボードからの入力部分もOS固有の処理が必要になります。ZedはここもRustの条件付きコンパイルを使用してOS毎にコードを書き分けています。LinuxでもIMEの制御やクリップボードの挙動は、Wayland/X11の特有の挙動があり、それらをLinux専用コードとして愚直に実装していくことで現在のスムースな操作感まで達しているわけです。おそらくWindowsが最後になったのも、オープンソースの標準からズレすぎていたため一番面倒くさかったからでしょう。専用に作ればもっと開発期間は短く正式版をリリースできたのだろうと想像します。それぐらいに独自で特殊、かつ巨大すぎ、更に古臭いというのがあるかも知れません。

30年も前のWin32 APIとかを1からいじるという魔境への挑戦があったのです。

Windowsユーザーをこじらした人がLinuxのUIはクソダサいし使いにくいと声高々に言いますが、化けの皮を剥がせばWindowsアプリというのは中身はWin32 APIで動いていたりするのです。もちろんこれまでの間に古臭いのをモダンにしようと試みられた事は何度もありましたしあったはずです。しかしその都度、皮肉なことにWin32 APIが一番早くWindowsの深い所までアクセスできたわけです。Windowsが後方互換性を捨てきれない以上、これは変わることがありません。

しかしWindowsは64bit OSだと言うじゃないかと思われる人もいると思います。これは簡単に言うと64bitも扱えるOSであると言うだけのことなんです。CPUのレジスタが64bitになりメモリがたくさん積めるようになりましたというハードウェア側の話で、アプリを動かす関数などは32bitのもの(win32)をベースにデータサイズだけ64bitに拡張してWin64という仕組みで動いています。結果として64bit OSではありながら完全な64bit OSにはなりきれない理由もあるのです。

なぜWindowsは名実ともに64bitにできないのか?

Windowsも今や64bit OSですが、そのアプリを動かすための根底にある仕組み(関数など)は、30年以上前の設計である「Win32 API」をベースにデータサイズを拡張して動かしているに過ぎません。名実ともに完全に近代化された64bit OSに刷新できないのは、古臭いシステムで動いている企業などの莫大な過去の資産(互換性)を切り捨てるわけにはいかないという、Microsoftのビジネスモデルが生んだジレンマがあるからです。

昭和に建てられた平屋の日本家屋に、最新のデジタル家電をこれでもかと導入して「最高のスマートホームです」と言い張っているのが現在のWindowsの構造です。ZedチームがWindows対応に数年という長い開発期間を要したのは、この30年分の歪みが蓄積した「Win32 API」という魔境に、Rustという最新の武器で1から挑まなければならなかったからだと言えます。

なぜそれほどまでしてWindowsに対応させる必要があったか

それはいくら古臭いシステムでも、デスクトップシェア7割を誇るWindowsを捨てるわけには行かなかった、そしてMacOSやLinuxと同等に動いてこそ、その価値があると言う理由に他ならないと思います。

ZedチームはElectron(Atomエディタ)というVS Codeの土台を作った人たちです。ElectronでWeb技術を用いて1つのコードでどのOSでも動くという手法を世界で初めて作った人たちです。しかしElectronはどれだけ最適化してもメモリを食い散らかし(ブラウザが内蔵されているようなものなので)、遅延が起こったり様々な問題もあり限界を感じていたわけです。おそらくElectronの限界を超えてみせるというのが彼らのプライドでありWindowsでどうしても動作させたかった意味でもあるのだと思います。

Zedはどういう使い方をされるか

Zedを使う人はプロからアマチュア、そして(アマチュア以下の)一般的人まで様々です。

だいたい普通の人はこれらの中間ぐらいの位置で、htmlを追加したり、それにCSSを当てたり、あわせてJavaScriptも追加すると言うぐらいの用途がせいぜいで多くの拡張機能も不要であり、思った時にサッと使える手軽さの方が重要です。巨大化したプロジェクトから検索しないと目的のファイルが見つからないような使い方はしないのです。

ディストリビューションに付いてくるようなテキストエディターはいわゆるノートパッドのような、メモ書きであったりちょっとコピーしたものを置いておくぐらいの使い方がほとんどで、それらでコードを書いているという人もいるのでしょうが、もう少し便利に、かつ同じように素早く起動することが大切な場合が多いと思うのです。

Windowsのパス問題

世の中のほとんどのプログラムなどではパスと言えば/(スラッシュ)で区切ります。ブラウザのパスでも、ローカルのファイルのパスでもだいたい/ですよね?しかしWindowsというのは\(バックスラッシュもしくは¥)で区切るのです。そんな事大した問題じゃないだろ?と思いがちですがこれは大した問題です。

# skipCopy
# URL
https://www.any.com/some/

# Linux
/home/[YourName]/.config/

# Windows
C:\Users\[YourName]\some\any\

パス区切りを吸収する仕組みがアプリやシステムにあるのであれば、その部分では間違わないと思いますが、だいたいそういうパスを扱うような作業をする場合のアプリ等はWindows以外で作られていることも多く、だいたいが/だということで違いを吸収する仕組みを持たないnpmなどのパッケージもあります。そのため例えば11tyなどをWindowsで扱う場合、それに使用するnpmパッケージの設定ではWindowsのパス区切りである\/変換する設定(だいたいはreplace・置換)を書かないといけなかったりするのに気が付かず、ファイルが見つからないなどでどこにエラーがあるのかでしばらく悩むということが多々あります。見た目には正しく書けているのに「パスが違う」ので見つかるはずもないファイルでエラーに悩まされるのです。

「自分はGUIを使用しているので関係ない」、「リンクは書いてあるのをクリック/タップして飛ぶから関係ない」と思うでしょう。しかし、Zedはクロスプラットフォームのアプリです。MacOSでもLinuxでもWindowsでも同じように動作しないといけません。そこで利用するのが簡単なメモ程度でテキストだけ書くなら関係はないでしょう。しかしローカルでNode.js等を動かす、あるいはAIを動作させると言うなら必要になることもあるのではないでしょうか?もっともZedが何か(エラーの修正)をしてくれるわけではないのですが、ZedはAIを利用することができます。それらがいち早く問題を解決……してくれるかも知れません。ただのテキストエディターではないということです。ソフト的にはクロスプラットフォームでも、プロジェクトの内容をクローンしただけでは利用できない場合があるという厄介な問題が内在している、それがWindowsのパス問題です。

Windowsのコマンドとその他で利用できるコマンドも違います。なのでLinuxやMacOSでZedを使用する場合は何も考えずノーマルな使い方もできますが、Windowsで使用する場合は余計な一手間が必要なのも確かです。

かくいう私はWindowsでも使用してますけども。

「Steam Deck効果」の定着:PCゲームがほぼ動く

Steam Deckから始まったLinuxゲーミングの波は、2026年現在もさらに加速しています。

Proton(互換レイヤー)の成熟

Windows用に作られたゲームをLinuxで動かす「Proton」の精度が極限まで高まり、Steam上の大作ゲームのほとんどがインストールボタンを押すだけで、Windowsと同等(場合によってはそれ以上)のパフォーマンスで動くようになっています。

これにあわせて、アンチチート問題の緩和が進んでいます。これまでLinuxユーザーを苦しめていた「オンラインゲームの不正防止ソフト(アンチチート)のせいで起動できない」という問題も、開発元がLinux(Proton)への対応を標準化するケースが大幅に増えました。とは言え、まだ動作しないものがあるのも確かで、Windowsであれば動くわけですから「だったらゲームはWindowsでしたらいいんじゃないか」という簡単なことに見えても、問題はそんなに簡単なことで解決できないようにもなっています。

以前書きましたが、ゲームというのはOSや他のアプリが動いた余力で動作しています。Windowsというのはその余力を作るために過剰な高級パーツを用意したりしても尚、まだ足りないというテレメトリーや無駄な動作が多すぎて、例えばゲームしている時はそれら停止すると言う(すべ)もありません。古いCPUではそういう無駄な動作をいなす仕組みがなく、それらはインテルで言う12世代以降のCPUにしか搭載されていません。しかし8世代以降はWindows11は動きます。つまり古ければ古いほど余力はなく、ゲームをするのには不向きなのは当然ながら、かといってWindows10はサービス終了となると古いPCで何とか動かしていたユーザーの行き先はどこになるのでしょうか。

Windows12の噂もチラホラとあり、わざわざ中古で12世代を選ぶよりもより新しいPCを求める方が無難ですが、それがWindows12にとって最適であるかもわかりません。これは今現在、単純に、

というのは言えない時期なのです。ではゲームができるからと安易にLinuxに移行すると言う人が増えると、何かトラブルがあった時に対処できず、その結果、

という事になるでしょう。

Protonもだいぶ良くなったのは確かです。では、日本語はどうだと言うとSteamなどで配信されている日本語対応ゲーム(モンハン、バイオ、龍が如く、FFなど)であれば基本的にはインストールボタンを押すだけ日本語でプレイも可能になっています。音声も、字幕もUIもWindowsと全く変わりません。

しかし日本語特有の壁というのがあって、

  1. 文字化け
  2. 日本語入力
  3. ムービー

この3つが壁になります。単にProtonが入ってるからと言ってそれらがクリアできるというわけではなく、最適なフォントを入れて設定しておけば文字化けは解消できるでしょうが、日本語入力はLinux側(Fcitxibus)とProtonの間で通信がうまく行かない事から「ひらがな・漢字」が入力できず、ローマ字のみになってしまう問題はあります。一人用のゲームであればチャットを使用することもないのでここは然程大きな問題にはならないでしょうけれども、MMOやパーティーを組んでという場合があると思います。そんな時に意思疎通ができないのであれば一人でゲームをしてる方が良いですよね。

ムービーに関しては日本のゲーム会社(特に和ゲーやビジュアルノベル)に多い問題ですが、Windows専用の特殊な形式の動画が使用されている場合はそこでストップしてしまう場合もあります。mp4とかわかりやすいものだと再生もできるでしょうがLinuxに無いコーデックが必要なものはやはり問題です。

まずはSteamのゲームプロパティから起動オプションに、以下の設定をします。

LANG=ja_JP.UTF-8 %command%

ProtonDBで世界中のゲーマーがどれぐらい動作するのかを報告しているので、タイトル検索をしてどういうステータスが付いているかで、どこまで動作するかは判断できます。

Steamなどゲームの世界から一般向けディストロへの期待

コンシューマー機であれば、後から特別設定しないでも(言語の選択などは必要でも)、基本的には対応しているどんなゲームでもチャットは可能でしょうし、文字化けもないのではないかと思います。

Linuxは元々英語で作られていたりするので、日本語の対応は遅れがちでもあり別途設定しないといけません。ゲームに期待することはもっと簡単に日本語が扱えるような規格を作ってほしいということです。日本人がたくさんLinuxに触れるようになったら一番いいのでしょうが、普通の人はLinuxには到達しにくいので、せめてゲーム方面からそれらが開発されて普通になれば、Windowsで言うGoogle日本語入力のようなIMEを入れるだけで日本語が入力可能になるという「最初に訪れるとても高い壁」が一挙に低くなります。

そういう方向になっていけば今よりももっとLinux自体の敷居も下がると思うのです。

大きい部分でWaylandへの移行が終わった

GnomeにしろPlasmaにしろWaylandへ移行と開発キットの世代交代が終わり、判明していた大きなバグもとれつつありほとんどのユーザーにとってはトラブルがほぼ無くなりました。

Waylandだと動かないアプリがあるからX11に戻すというような妥協がほぼ不要になり、NVIDIA製グラフィックボードとの相性問題もほぼ過去のものになっています。これはつまり、ゲームや動画視聴時の画面の引き裂け(ティアリング)が標準で発生しなくなったということになります。

yserver

Waylandに移行が完了した所と言う話ですが、一方ではyserverというRustでゼロから書き直された、モダンな新世代X11サーバーが登場しています。

従来のX11(X.Org)は、30年以上前の古い設計や、今では誰も使わない機能(モノクロ画面のサポートや骨董品レベルの拡張機能など)が山のように積み重なり、コードが巨大な「スパゲッティ状態」になっていました。これが原因で、誰もメンテナンスできなくなっていたのがX11の最大の弱点です。

Rustでゼロから書かれたことで、古いX11にあったセキュリティ脆弱性やクラッシュのリスクを構造的に排除しています。また今どきらしく開発者がAIエディタを駆使して驚異的なスピードで組み上げたことでも話題になりました内部でVulkanやDRM/KMS(現代のLinuxカーネルの画面出力仕組み)を直接叩くため、余計な仲介レイヤーがなく非常に軽量でダイレクトに動作します。

Waylandが標準になったとはいえ、「どうしてもX11じゃないと困る・X11の方が快適」というユーザーやデスクトップ環境が一定数残されているのも事実です。XfceMATECinnamon等の古臭いデスクトップ環境を救済するというのも開発された目的の一つだと思います。これらもWaylandへの移行を進めてはいるものの本質的にはX11ベースです。yserverは、すでにこれらのデスクトップ環境をフル機能で起動させることに成功しています。

Compizなどをそのまま現代の安全な環境で動かしたいという層にも刺さってはいるのですが、yserverが普段からLinuxを使用する人にとって今すぐ有益なものになるかと言うと、まだその段階だとは言えないのが現状です。技術的な進歩、実験的なプロジェクトとしてはとても意味があるわけですが、レガシー(負の遺産)を切り捨てたとは言えまだ普段遣いするために必須な機能、例えば(他のアプリのウィンドウや入力を覗き見できてしまうなど)セキュリティモデルがまだ不完全だったりするためそれらを含め未実装であったり制限されているというが理由の一つです。

なので、凄いのができたらから今すぐこの環境に変えようという性質のものではなく、ブラウザがChrome主体になってもFirefoxがあるように、Waylandがどうしても使いづらいとか、あるいはXfceを愛用したいという人にも今後も使えるような希望、あるいは受け皿ができたと言う意味合いのもので、ユーザーからすると選択肢がありそれぞれがより良くしようという構造自体が結果的に技術の発展にも繋がって恩恵があると言えるわけです。X.Orgが完全に開発停止になっても、こうしたモダンな代替品がRust界隈から生まれてくるコミュニティの健全性とタフさこそが、Linuxの強みだと実感させてくれるわけです。

まとめ

しばらくびっくりするようなニュースは出てこないんじゃないかなとは思っています。安定期と言う言葉がピッタリな感じに思います。6/18にアップデート行うと、たくさんファイルが来て、Kなんたらというのが見えたのでおそらくはPlasma6.7が来たのだろうと思います。

Plasma6.7

確認したら来てました。色々変わっているようですが、説明だけで結構な量になるので動画などを参考までに。私が使用するようなことにはほとんど触れていないので、どうでもいいというのが感想ですが、必要な人には刺さるアップデートになっているようにも思います。

https://www.youtube.com/watch?v=Yd9tHfBYxjU

blogカテゴリ内のタグ一覧