プログラミング
AIが書いた最初の本格的なデスクトップ「Starling」
Starling: The first real desktop written by AI (starling.build)
要約
Starlingは、AIによって6ヶ月で開発された、GPUに直接アクセスしChromeやSlack、Zoomなどの一般的なアプリケーションを実行できる新しいデスクトップ環境です。従来のAIデスクトップの概念を超え、ブラウザタブやモックアップではなく、実際のハードウェア上で動作し、他者が開発したソフトウェアを実行できる真のデスクトップとしての機能を提供します。この開発は、デスクトップ開発のコストが劇的に低下したことを示唆しており、今後のLinuxデスクトップ開発の加速が期待されます。
全文翻訳
早期プレビュー v0.2.1 Ubuntu
AIが書いた最初の本格的なデスクトップ
これまでにAIがデスクトップに挑戦した例はありますが、それらはブラウザタブで動作したり、モックアップで終わっていました。StarlingはGPUに直接アクセスし、Chrome、Slack、Zoomなどを実行します。これはAIによって書かれ、一人のディレクションのもと、6ヶ月で開発されました。
Starlingをインストールする
その実力を見る
335K行の独自Swift、C、C++
6ヶ月
ログイン可能なデスクトップへの最初のコミット
1人
作業をディレクション
約2,000コミット、現在も進行中
行数は、バンドルされた依存関係を除外しています。その大部分、約273K行は、システム全体を支えるFlutter→Swiftフレームワークのポートです。デスクトップ自体、WaylandおよびX11サーバー、バンドルされたアプリケーションは約62K行です。両方のリポジトリは公開されており、デスクトップとエンジン、したがってここにあるすべての数値は確認可能です。
「本物」の意味
ブラウザタブではない。
モックアップではない。
「AIがデスクトップを構築した」という主張は以前にもありましたが、それは通常、以下のいずれかを意味していました。ウェブページ内に描かれたデスクトップのメタファー。ログインされたことのないものの説得力のあるスクリーンショット。あるいは、起動はするものの、それ自身のために書かれた数個のプログラムしか実行できないゼロからのシステム。それらを分ける一つのテストがあります。それは、それが自分で書かなかったソフトウェアを実行するかどうかです。それがデスクトップの実際の仕事です。見知らぬ人が、何年も経ってから、自分で制御できないツールキットで作成したプログラムをホストし、それらが互いを認識することなくすべてを一つの画面に表示することです。独自のアプリしか実行できないシステムは、難しい部分をスキップしています。
Starlingはセッションです。DRM/KMSと通信し、ディスプレイを所有します。生の入力デバイスを読み取ります。Waylandコンポジタであり、まだ必要としているアプリケーションのためにXサーバーをホストします。ログイン画面でこれを選択し、サインインすると、ログアウトするまでそれがあなたのデスクトップになります。Chrome、Slack、Zoomを実行しますが、これらはどれもStarlingのことを聞いたことがありません。
通常のAIデスクトップ
ブラウザタブ内で実行される
ウィンドウは実際のプログラムを保持できない<div>
あるいは起動するが、それ自身のために書かれたアプリしか実行しない
ログインされたことのないデザインのスクリーンショット
Starling
セッションとしてGPUをDRM/KMS経由で直接操作する
自分で書かなかったソフトウェア(Chrome、Slack、Zoom)を実行する
WaylandとX11をネイティブに、同時に話す
ここのすべてのスクリーンショットは実行中のセッションです
以下のスクリーンショットは、それを決定づけるテストです。ZoomはX11クライアント、ChromeはWaylandクライアントです。見知らぬ人が書いた2つのプログラムが、6ヶ月前に存在しなかったデスクトップによって、一つのGPUパス上で一つのシーンに合成されています。X11上のZoomとWayland上のChrome — 1つのデスクトップ、1つのGPUパス、セッションピッカーなし。
なぜ重要か
デスクトップ構築のコストが崩壊した
30年間、Linuxデスクトップの構築は、組織の仕事でした。GNOMEとKDEは、数十年にわたる数百人の貢献者によって支えられた、驚くべきエンジニアリングの成果です。それは彼らを批判するものではなく、デスクトップの構築にかかったコストの尺度です。そして、そのコストが、デスクトップが少ない理由です。私たちが持っているものが外部から変更するのが難しい理由です。デスクトップがどのように機能すべきかについての真に新しいアイデアが、フォーク、拡張機能、または誰かが制御するパッチキュー以外に行く場所がほとんどなかった理由です。
一人の人間、6ヶ月、完全なデスクトップ。スコープを削減したわけではありません。GPUを駆動し、ChromeとZoomを実行し、モニターが外されても生き残ります。その数字が議論全体です。もし一人の人間が今この地点に到達できるのであれば、Linuxデスクトップ開発の制約は想像力でも味覚でもありませんでした。それは労働でした。そして、労働はまさに安くなったものです。興味深い結果はStarlingではありません。それはその後の10個のデスクトップです。10年間を捧げる余裕がなかった人々によって試みられるでしょう。彼らは仕事の大きさに見て、より小さなものを選んだでしょう。その敷居は移動し、Linuxデスクトップが構築される速度もそれに伴うべきです。今が構築の時です。
デスクトップ
そしてそれは完全なものです
興味深い部分が欠けている概念実証ではありません。以下のすべてのスクリーンショットは、実行中のセッションからキャプチャされた本物です。
タイリングとフローティング、両方ともファーストクラス
デフォルトでフローティングウィンドウ。一つのスイッチを切り替えると、すべてがマスター・アンド・スタックのように配置されます。タイリングウィンドウマネージャーが行うように、作業中のものがマスターペインになり、他のすべてがその横にスタックされます。それを元に戻すと、すべてのウィンドウは元のフローティング状態に正確に戻ります。拡張機能なし、切り替える別のデスクトップなし、再学習するものなし。
設定 → 外観 → タイリングウィンドウ
タイリングオン — 左側にマスターペイン、右側にスタックされた他のすべて。
スペースとミッションコントロール
仮想デスクトップ間をスライドし、ウィンドウを一緒に運びながら移動するか、一つのキーで引き戻してすべてのスペースを一度に見ることができます。フルスクリーンにしたものはすべて、静かに独自のスペースになります。概要からスペース間でウィンドウをドラッグするか、上部のストリップから新しいスペースを追加します。
Ctrl + ↑ 概要用 · Ctrl + ← → 切り替え用
ミッションコントロール — 上部にスペース、下部にウィンドウが展開されています。
動作するモニター
各ディスプレイには独自のメニューバー、独自の壁紙、独自のスペースがありますが、それらは1つのデスクトップであり、2つではありません。境界を越えてウィンドウを配置すると、うまく機能します。片方の画面に半分、もう片方の画面に半分描画され、各画面のスケールは独自です。モニターを取り外すと、そのウィンドウは消える代わりにホームに戻ります。再び接続すると、デスクトップは中断したところから再開します。
ホットプラグ · ディスプレイごとのスケール · ディスプレイごとのスペース
2つのディスプレイ、1つのデスクトップ — 境界をまたぐウィンドウ、各画面に半分。
ピクセルごとに計算された、本物のガラス
ドックとパネルは、ぼかしで奥行きを偽装しません。フラグメントシェーダーが各パネルに実際の厚みを与え、そこから法線ベクトルを導き出し、その法線を通してスネルの法則でビューレイを曲げます。そして、同じ法線に沿ってフレネルリムと鏡面ハイライトを追加します。ドックの後ろを通過するテキストを見てください。それは単にぼやけるだけでなく、実物のガラスを通るように、丸い端に向かって曲がり、圧縮されます。デスクトップにはHTML、CSS、JavaScriptは一切使用されていません。エフェクトはフィルターではなくシェーダーです。
物理ベース · GPUフラグメントシェーダー
ウェブページ上のドック — ガラスを通して曲がるテキスト。
同じフレームワーク内の完全なアプリケーションセット
ファイル、ターミナル、設定、電卓、テキストエディタ、画像ビューア、そしてUbuntuアーカイブからインストールするアプリストア。これらはすべて、ホストするシェルと同じフレームワークで書かれています。1つのテーマ変更がすべてに一度に適用されます。なぜなら、それを止めるツールキットの境界がないからです。
独自開発のアプリ · 1つのテーマ、すべて
セッションの下にインタプリタなし
UIフレームワークは事前にマシンコードにコンパイルされ、安定したCレンダリングコアのみにバインドされます。ループ内に仮想マシンはありません。クライアントバッファはGPUから直接共有され、コピーされることはありません。各アプリは独自のプロセスであるため、クラッシュしてもウィンドウ1つだけで済みます。
Swift、コンパイル済み · dmabufゼロコピー
アイデア
良いアイデア、そしてそれを構築するAI
これらはすべて、デスクトップがどのように構築されるべきかについての1つの決定から生まれました。そして、AIがその構築を可能にしたのです。
システムの仕組みを見る。
どのように構築されているか →
インストール
1つのパッケージをインストールし、ログイン時にStarlingを選択
Starling 0.2.1をダウンロードする (.deb, 53 MB) ↓
# Ubuntu 26.04 LTS, amd64. StarlingはWayland対応のログインマネージャーが必要です。
# Ubuntu Desktopには既にGDMがありますが、Serverまたは最小インストールでは、まずこれを追加してください: sudo apt install gdm3
# ランタイム依存関係とともにStarlingをダウンロードしてインストールします:
curl -fLO https://github.com/starling-build/starling/releases/download/v0.2.1/starling_0.2.1-1_amd64.deb
sudo apt install ./starling_0.2.1-1_amd64.deb
# ログアウト(または再起動)します。ログイン画面で名前をクリックし、セッションメニュー(歯車/下隅のボタン)を開き、「Starling」を選択してサインインします。
これは早期プレビューです。Starlingは現在、実際のハードウェアで実際のデスクトップを実行していますが、バージョン0.2.1です。粗いエッジ、設定の欠落、まだ作業が必要なアプリが予想されます。
Ubuntu 26.04上のAMDグラフィックスで検証済みです。パッケージは、ログインマネージャーがまだない場合にそれをプルします。実行が開始されたら、ユーザーガイドがあなたを案内します。