paint-brush
90 年代のユーザー インターフェイスへのラブレター、SerenityOS の実行@ChrisChinchilla
2,705 測定値
2,705 測定値

90 年代のユーザー インターフェイスへのラブレター、SerenityOS の実行

Chris Chinchilla5m2022/10/20
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

SerenityOS は、レトロにインスパイアされた現代のオペレーティング システムです。この投稿では、Mac で実行する方法と、Chromium または WebKit を使用しないプロジェクトのブラウザー プロジェクトでの実験について説明します。
featured image - 90 年代のユーザー インターフェイスへのラブレター、SerenityOS の実行
Chris Chinchilla HackerNoon profile picture


私は、オペレーティング システムやデスクトップ環境をいじるのが大好きでした。私の最初のグラフィカル オペレーティング システムは AmigaOS だったと思います。さまざまな Windows バージョン、7.0 以降の macOS のすべてのバージョン、さまざまな Linux のフレーバーと組み合わせ、およびウィンドウとメニューの海の中で忘れていた他の多くの小さなニッチな OS に取り組んでから数十年。


別の (おそらく将来の?) 人生では、映画、テレビ番組、およびゲーム用の架空のユーザー インターフェイスを作成したいと考えています。私のお気に入りの本の 1 つは、SF のインターフェイスと実際のインターフェイスの比較を描いた「 Make it so 」です。


お気に入りのオペレーティング システムは何ですか。この書き込みプロンプトを使用してお知らせください


私が SerenityOS について初めて耳にしたのは、Changelog のニュース項目でした。彼らは、一握りのオープンソース プログラマーが代替ブラウザーおよびブラウザー エンジンであるLadybirdに取り組んでいると述べました。私は Chromium ベースのブラウザー覇権を懸念しており、厳密に制御されていないオプション (WebKit) やゆっくりと消えていくオプション (Firefox) が他にほとんどないため、これは私にとってエキサイティングな見通しです。 Ladybird はまだ完全な機能や準備ができているとは言えませんが、急速に開発されています。


その後、Ladybird を調べてみると、それが同じようにユニークなオペレーティング システム用に設計されたブラウザであることがわかり、興味をそそられました!明確にするために、Serenity は別の Linux または BSD スキンではありません。これはゼロから構築されたものですが、モダン OS とクラシック OS の両方から大きな影響を受けています。日常的に使用できる完全な機能と使用可能な OS を目指しています。


この投稿では、私の M1 MacBookPro で Ladybird と SerenityOS をビルドして実行する方法について説明します。 Apple Silicon を使用すると多少複雑になりましたが、それほど複雑ではありませんでした。また、プロジェクトのコミュニティは、問題が発生したときに役立ち、情報を伝達してくれます。



Ladybird のビルドと実行

最初は、SerenityOS HTML ライブラリを使用してブラウザーを作成する実験として構築されましたが、最近では、新しいクロスプラットフォーム ブラウザー オプションになり得るものに成長しました。

Qt UI ライブラリを使用しているため、完全なクロスプラットフォームには見えませんが、Qt をサポートするすべてのプラットフォームで使用でき、さらなる拡張の余地が十分にあることを意味します。

選択したプラットフォームのビルドの前提条件と手順に従うことに問題はありませんでした。バージョン 6.2 以降、Qt は Apple Silicon をサポートしているため、これらのいずれも問題を引き起こしませんでした。 Xcodeをインストールする必要があっただけです。 Apple の Command Line Tools をインストールするだけで十分だった時期もありましたが、Xcode だけが提供するツールがますます必要になっていることに気付きました。


ビルド手順には少し時間がかかり、その後ブラウザーが開きます。ブラウザの最初の焦点は、人々が Serenity の HTML ライブラリで構築しているアプリケーションをデバッグできるようにすることでした。そのため、利用可能なデバッグ ツールはたくさんありますが、エンド ユーザーにとってはまだそれほど多くはありません。おそらく Retina 画面が原因であると思われるフォント レンダリングの問題が最初に発生しましたが、Serenity Discord サーバーの質問には迅速な回答がありました (これは macOS に固有のものです)。


Build/ladybirdでビルドされたバイナリを右クリックし、 Contents/info.plistファイルを開きます (おそらく Xcode ですが、任意のエディターで実行できますNSHighResolutionCapableの値を「NO」に変更して再起動します。テキストのレンダリングはまだ少し見えます奇妙ですが、読みやすいです。


Ladybird がオーディオやビデオをレンダリングしないことに気付きました。これが HTML のその機能をまだ実装していないためなのか、それともライセンスの問題によるものなのかはわかりません。

SerenityOS のビルドと実行

ブラウザを構築して実行することは 1 つのことですが、オペレーティング システム全体を構築して実行することは、まったく複雑です。 Serenity は X86_64 システム用に設計されているため、Apple Silicon ユーザーとして、エミュレートされた環境で Serenity を実行する必要があることも意味します。幸いなことに、Serenity は完全な OS であるため、コミュニティは通常、ユーザーが Serenity を仮想マシンで実行することを想定しており、実行スクリプトで QEMU を使用するための手順を既に提供しています。いくつかの追加の手順を実行すると、Apple Silicon で実行するときにもこれを機能させることができますが、パフォーマンスに多少の影響があります.


まず、 macOS ビルドの前提条件の手順に従いました。Linux ユーザーの場合は、別の前提条件の手順があります。次に、一般的なビルド手順に戻ることができます。これらはすべて正常に機能しましたが、オペレーティング システムの構築には妥当な時間でした。

最初、Serenity の実行は QEMU の段階で失敗しました。以前、私が取り組んでいる一般的な macOS の仮想化とエミュレーションの記事で、QEMU でいくつかの問題を経験していました。ただし、Discord サーバーでの別の迅速な応答と解決策がありました。


run.shの 256 行目 (執筆時点) で、次を追加します。


 -machine pc-i440fx-7.0


そのブロック全体が Serenity が使用する QEMU 仮想マシンを定義し、「 pc-i440fx-7.0 」が特定の PC 構成を定義します。これを追加した後、Serenity を実行すると動作しました。エミュレートされたプロセッサを使用しているため遅延がありますが、何かをクリックするたびにわずかに遅れます.日常的には使用できませんが、テスト目的には許容されます。


Serenity には確かに初期の Windows UI の雰囲気がありますが、Linux の考え方があります。公式のパッケージ マネージャーはありませんが、ポートをビルドして利用できます。代わりに、多くの一般的なアプリケーションが OS ビルドにバンドルされています。コード エディター、ブラウザー (Ladybird ではありません)、ゲームなどがあります。

バック・トゥ・ザ・フューチャー

そこにあります。いくつかの微調整と、ダウンロードとビルドを待つ時間があれば、まったく新しい独自のブラウザとオペレーティング システムを実行できます。 Serenity プロジェクトの最終目標が何であるかは完全にはわかりません。なぜなら、それは主要なメンテナーのための情熱的なプロジェクトとして始まり、より大きなものに成長したからです。それが私がこのプロジェクトで気に入っていることの 1 つです。誇りに思うものを作成するプロセスを楽しんでいる人々によって完全に作成されており、オープンソースの世界はそのようなプロジェクトをもっと必要としています.


ハクトーバーフェストの月です。SerenityOS のようなオープン ソース プロジェクトが好きな方は、このプロンプトを使用してオープン ソースに貢献した経験について教えてください


お気に入りのオペレーティング システムは何ですか。この書き込みプロンプトを使用してお知らせください