HN 日本語サマリー

← 一覧へ戻る
Web開発

SSH用のネイティブなグラフィカルシェル

A native graphical shell for SSH (probablymarcus.com)

314 pointsby mrcslws175 コメント

要約

この記事では、サーバーがブラウザベースのグラフィカルシェルを提供し、他のデバイスからアクセスできるようにするという新しいアイデアを提案しています。この「Outer Shell」は、各アプリが小さなHTTPサーバーとして動作し、ウェブUIを提供する形式で、SSHを介して安全にアクセスできます。このアプローチは、JupyterやTensorboardのような既存のウェブベースのサーバーツールが抱えるセキュリティプロトコルの問題を解決し、最終的にはHTMLベースのカジュアルなアプリとネイティブなプラットフォーム向けアプリを組み合わせた、Webの自然なアーキテクチャとなる可能性を秘めていると筆者は考えています。

全文翻訳

ウェブブラウザを使えば、あるデバイス(「サーバー」)が別のデバイス(「クライアント」)で体験を提供するための良いフローを本当に見つけ出すことができました。これは楽しいアイデアを生み出します。サーバーやエッジデバイスがブラウザベースのグラフィカルな「シェル」を提供し、他のデバイスから利用できるようにするImagineです。 このシェルはアプリのホーム画面を提供します。このシェルでは、すべてのアプリは小さなHTTPサーバーであり、ウェブユーザーインターフェースを提供します。シェルはアプリが互いのURLを検索できるAPIを提供します。例えば、アプリは自分自身をテキストエディタとして登録できるため、あるアプリでテキストファイルをダブルクリックして、エディタアプリで開くことができます。これらのグラフィカルアプリは、ターミナルベースのアプリに代わるものとなるでしょう。 これらのHTTPサーバーは通常プライベートであり、ネットワーク上の他のデバイスからはアクセスできません。代わりに、SSHまたはローカルで使用します。ほとんどの既存のウェブベースのサーバーツールとは異なり、これらのHTTPサーバーは通常localhostポートを使用せず、代わりにUnixドメインソケットファイルを使用します。これはポートに似ていますが、明示的なユーザー権限を持つファイルシステム上に存在します。各HTTPサーバーは非常にシンプルで、依存関係がなく、暗号化を処理する必要がないため、非常に単純にできます。暗号化はSSHレイヤーで行われます。アプリは従来のHTMLベースのウェブアプリであることもできますが、ネイティブなアウターフレームアプリであることも可能です。 私はこの種のグラフィカルシェルのためにOuter LoopをSSHブラウザに組み込み、現在オープンソースのOuter Shellを公開しています。 スクリーンスクリーンキャスト: Outer Shell ここで私はOuter Shellとその仕組みをデモし、この分野にどれだけ低い所に実りがあるかを理解してもらおうとします。 ドキュメンテーション 巨大なブログ記事を書く代わりに、私はたくさんのドキュメンテーションを書きました: ブラウザの仕組み: https://outerloop.sh/ Outer Shell APIとアプリの追加方法: https://outershell.org/ これらのネイティブアプリの仕組み: https://outerframe.org/ 考察 これがまだ存在しないのはおかしくないですか?ブラウザにとって、Unixソケットへの接続のような機能は非常にニッチなものとして却下されてきましたが、適切な他の機能(SSHやsudoの認識を含む)と組み合わせると、技術ツリーのまったく新しい枝が見えてきます。Linux(およびその他の)サーバーを従来のローカルグラフィカルOSを持つものとして扱う代わりに、リモートデバイス向けに「アウター」グラフィカルシェルを提供することに焦点を当てることができます。別の時間軸では、従来のHTML / JavaScriptアプリを使用して、何十年もこのエコシステムを構築してきたでしょう。JupyterやTensorboardのような多くの個別のサーバー型ウェブアプリは実際に出現しましたが、それぞれ独自の単発のセキュリティプロトコルを持っており、それらを「正しく」提供するものは何も生まれませんでした。そして今、アプリを真にネイティブにできるため、機会はさらに大きくなっています。コード作成を助けるAIが登場した今、各アプリがターゲットプラットフォームごとにコードベースを持つことが現実的です。私はこれがWebの自然なアーキテクチャになりつつあると考えています。HTMLは閲覧やカジュアルなアプリに、ネイティブなプラットフォームに特化したアプリは作業をこなすために。なぜそれ以下で満足するのでしょうか? (この投稿とスクリーンキャストの草稿を読んで/見てくれたRosanne Liu、Mirko Klukas、Adam Zethraeus、Felix Andrewsに感謝します。)