端末エミュレーターはこれ以上良くならないと思っていたときに、Ghosttyが出荷されました

Table of Contents

端末エミュレーターはこれ以上良くならないと思っていたときに、Ghosttyが出荷されました

Ghostty は、聞こえるほど興味深いものではありません。その理由はいくつかあります。誰が書いたのか、何をするのか、どの言語で書かれたのか、すべてが、実行するタスクが表面上は単純であるにもかかわらず、より珍しいからです。

MITライセンスのGhosttyはターミナルエミュレータです。もちろん、2025年には、ターミナルエミュレータを必要としない人も多いでしょう。それはそれで良いことです。macOSやLinuxを使っているなら、Ghosttyは試してみる価値があるかもしれません。(Windowsを使っているなら、いずれWindows版もリリースされるでしょう。)たとえ使っていなくても、この小さなアプリには興味深い点がいくつかあります。

Ghostty が macOS Sequoia 上で About 情報と Neofetch の出力を表示している様子

Ghostty、想像以上に面白いターミナルエミュレーター – クリックして拡大

最初の完全版が間もなくリリースされることを発表するブログ投稿によると、次の通りです。

The Register紙は1年前、Ghosttyについて軽く触れました。作者のミッチェル・ハシモト氏がHashicorpを退社した時のことです。Hashicorpは彼が共同設立した企業であり、Ghosttyの名前の由来となっています。ハシモト氏はエンタープライズIT業界では非常に著名な人物です。彼はVagrantの共同開発者であり、2022年に記事を執筆しました。Vagrantは仮想マシンの作成を自動化する便利なツールです。Vagrantは成功を収め、Hashicorpの設立とVCからの支援獲得につながりました。これはThe Register紙が約10年前に報じた通りです。

しかし、最近になって論争が巻き起こっている。橋本氏がHashicorpを去る数か月前、同社はかつてFOSSだったツールのライセンスを変更し、物議を醸した。このライセンス変更により、HashicorpのTerraformはOpenTFフォークとして開発され、Linux Foundationに採用されてOpenTofuと改名された。この論争もフォークも、IBMがHashicorpに64億ドルの買収提案を阻止することはできなかったが、この取引は依然として精査中である。

これらはどれも彼の趣味のプロジェクトとは直接関係ありませんが、一方ではそれが彼の名前がよく知られている理由かもしれませんし、他方では、橋本氏の利便性を重視した小さなプロジェクトが非常に大きな取引に変わったという明白な歴史があります。

もう一つ興味深い点は、Ghosttyが主にZigプログラミング言語で実装されていることです。Zigは、昔ながらのC言語よりも安全な代替言語を提供することを目指した21世紀の言語の一つであり、The Registerでは以前、Drew DeVault氏のHareという別の言語の文脈で取り上げられていました。

プログラム自体は、まあ、端末エミュレータです。これはもう解決済みの問題だと思うのも無理はありませんが、Ghosttyには興味深い新機能がいくつか追加されています。橋本氏は自身のホームページにこのアプリ専用のサブサイトを設けており、その動作について長々と解説しています。その中には、動作原理を詳細に解説しながらも、興味深く読みやすい6つの「開発ログ」も含まれています。

Linux 上で htop を実行する Ghoststy で、ウィンドウのタイトル バーにウィンドウ ボタンが表示されなくなる

GhosttyはネイティブLinuxアプリとしても動作しますが、メニューバー、閉じるボタン、その他の便利なUI機能が欠けていることに注意してください。クリックして拡大

良い点をまとめると、Devblog 006で説明されているように、GPUアクセラレーションの活用もあって非常に高速です。画面にテキストを表示するだけなら、現代のコンピューターにとってそれほど負荷の高い作業ではありませんが、比較的シンプルでクリーンなコードのおかげで高速に処理できるという、目に見えないメリットがあります。既存のターミナルアプリよりもはるかに高速というわけではありませんが、おそらくそうでしょう。そして、その速さに気付く人も、そしてそれが本当に重要な人もいるはずです。より重要なのは、処理中に消費するプロセッサパワーが少ないことです。

不当な言い方かもしれませんが、こう書くとなんだか気が滅入るのですが、今ではターミナルエミュレータのベンチマークツールが存在します。人生は短すぎるので、もっと簡単なテストを行いました。最新のSequoiaで、GhosttyとmacOS標準のターミナルを比較し、htopリフレッシュレートを1秒あたり10回に設定して実行しました。どちらも予想通り問題なく動作しました。しかし、プロセス一覧を見ると、Terminal.app自体がhtophtop自体よりも出力の表示に多くのCPU時間を費やしていました。Ghosttyではhtopの方がCPUを多く消費していました。これは、高速化がなぜ良いのかを示す実践的な例です。

  • GNUコンパイラコレクションの最新言語:Algol-68
  • OS/2の失敗が現代のソフトウェアにどのような影響を与えたか
  • 良いビジネス取引がBASICを過小評価する原因となった
  • SvarDOS: DR-DOSがオープンソースのオペレーティングシステムとして生まれ変わる

テキストの入出力には、かなりの注意が払われています。複数の表記体系でのテキスト入力を完全にサポートし、複数のIMEや入力メソッドエディター(日本語と中国語を含む)にも配慮しています。Ghosttyには独自のフォントレンダリングコードがあり、あらゆる種類のフォント、スクリプト、アルファベットなどを正確に表示できるだけでなく、文字間の合字なども表示できます。The Reg FOSSデスクのように、2つか3つの単純なアルファベットスクリプトしか読み慣れていない場合は気付かないかもしれませんが、このようなことは一部の人間の表記体系では非常に重要です。また、拡張機能なしで、1つのウィンドウで複数のタイル化されたターミナルセッションを処理することもできます。何十年も誰も製造していない物理的な端末をエミュレートするのではなく、GhosttyはxtermUnix系OSのすべての端末エミュレーターの祖先である自分自身をエミュレートします。

現在、2つの形式で提供されています。Apple Macコンピュータ用のユニバーサルバイナリ(x86-64とArm64の両方のMacでネイティブに動作します)と、様々なディストリビューション向けのLinuxパッケージです。私たちは両方のバージョンを試用しましたが、多くの他のディストリビューションに影響を与えると思われる問題がいくつか見つかりました。もちろん、ソースコードは公開されています。

macOSではGhosttyを使用するにはmacOS 13以降が必要ですが、これはこのハゲタカの2015年製iMacでは扱えない新しいバージョンです。LinuxではUbuntu 24.10にインストールして問題なく動作しました。ただし、テストマシンはUnityデスクトップで動作しており、Ghosttyは最新のGtkアプリケーションです。動作は問題ありませんが、タイトルバーとメニューバーがありません。GNOMEの「クライアントサイドデコレーション」を使用しているため、最小化、最大化、閉じるボタンなどがありません。キーボード操作でウィンドウを移動、サイズ変更、閉じることは問題なくできますが、従来のデスクトップでは場違いな印象を与えます。

これは私たちにとって、いくつかの点で興味深いプログラムです。まず、ほとんどの人がこれ以上改善の余地がないと思っていた点を改善してくれた点です。これは素晴らしいことです。他の次世代ターミナルアプリとは異なり、クロスプラットフォームで、MacでもLinuxでもネイティブアプリのように使えます。

また、いわゆる「AI」ツール、あるいはこの辺りではLLMボットと呼んでいるものとの統合機能もありません。これは良いことです。一方で、このキーボード中心の古参ハゲタカは、もっと伝統的なUIと伝統的なウィンドウ構成を好むので、その点からすると、これが私たちの新しいデフォルトにはならないでしょう。

Ghostty 1.0はクリスマス直後にリリースされましたが、2024年12月31日に脆弱性CVE-2024-56803が発見されました。これはバージョン1.0.1でほぼ即座に修正されました。Mac版とLinux版の両方がダウンロードページから入手可能です。®

Discover More