Rustで書かれたRedox OS 0.8オペレーティングシステムのリリース

Rust 言語とマイクロカーネルの概念を使用して開発された Redox 0.8 オペレーティング システムのリリースが公開されました。 プロジェクトの開発は、無料の MIT ライセンスに基づいて配布されます。 Redox OS のテスト用に、768 MB のデモ ビルドのほか、基本的なグラフィック環境 (256 MB) およびサーバー システム用のコンソール ツール (256 MB) を備えたイメージが提供されます。 アセンブリは x86_64 アーキテクチャ用に生成され、UEFI および BIOS を備えたシステムで使用できます。 デモ イメージには、Orbital グラフィック環境に加えて、DOSBox エミュレータ、一部のゲーム (DOOM、Neverball、Neverputt、sopwith、syobonaction)、チュートリアル、rodioplay 音楽プレーヤー、および Sodium テキスト エディタが含まれています。

オペレーティング システムは Unix の哲学に従って開発され、SeL4、Minix、および Plan 9 からいくつかのアイデアを借用しています。 Redox はマイクロカーネルの概念を使用しており、プロセス間の通信とリソース管理のみがカーネル レベルで提供され、他のすべての機能は配置されます。カーネル アプリケーションとユーザー アプリケーションの両方で使用できるライブラリ内。 すべてのドライバーは、分離されたサンドボックス環境のユーザー空間で実行されます。 既存のアプリケーションとの互換性を確保するために、多くのプログラムを移植せずに実行できるようにする特別な POSIX レイヤーが提供されています。

このシステムは「すべては URL である」という原則を適用します。 たとえば、URL「log://」はログ記録に使用でき、「bus://」はプロセス間通信に、「tcp://」はネットワーク通信に使用できます。 ドライバー、カーネル拡張機能、およびカスタム アプリケーションとして実装できるモジュールは、独自の URL ハンドラーを登録できます。たとえば、I/O アクセス モジュールを作成し、それを「port_io://」URL にバインドできます。これを使用して、URL「port_io://60」を開いてポート 60 にアクセスできます。

Redox のユーザー環境は、Orbital 独自のグラフィカル シェル (Qt および Wayland を使用する他の Orbital シェルと混同しないでください) と、Flutter、React、Redux に似た API を提供する OrbTk ツールキットを中心に構築されています。 WebブラウザとしてNetsurfを使用します。 このプロジェクトでは、独自のパッケージ マネージャー、標準ユーティリティのセット (binutils、coreutils、netutils、extrautils)、ion コマンド シェル、relibc 標準 C ライブラリ、sodium v​​im 風のテキスト エディター、ネットワーク スタック、およびファイルも開発されています。システム。 設定はToml言語で設定されます。

新しいリリースでは、実際のハードウェアで確実に動作するよう引き続き取り組んでいます。 x86_64 アーキテクチャに加えて、32 ビット x86 システム (i686、Pentium II 以降) で動作する機能が追加されました。 CPU ARM64 (aarch64) への移植が進行中です。 実際の ARM ハードウェアでの作業はまだサポートされていませんが、QEMU で ARM64 をエミュレートする場合には起動することが可能です。 デフォルトでは、オーディオ サブシステムが有効になっており、マルチモニター構成の初期サポートが提供されます (UEFI フレームバッファーを備えたシステムの場合)。 Redox OS でサポートされる機器には、AC'97 および Intel HD Audio サウンド チップ、VESA BIOS または UEFI GOP API 経由のグラフィック出力、イーサネット (Intel 1/10 ギガビット イーサネット、Realtek RTL8168)、入力デバイス (キーボード、マウス、タッチパッド) があります。 )、SATA (AHCI、IDE)、NVMe。 Wi-Fi と USB のサポートはまだ準備されていません (USB は QEMU でのみ機能します)。

その他の革新:

  • BIOS および EFI システムのブート イメージを統合しました。
  • clone および exec システム コールの実装はユーザー空間に移動されました。
  • ダウンロードプロセスが簡素化されました。 カーネルによって実行され、init プロセスなどの ELF ファイルのさらなる読み込みを提供するブートストラップ プログラムが導入されました。
  • sudo などの setuid プログラムが動作できるようにするエスカレートされたプログラムを追加しました。
  • バックグラウンドプロセスの作成とインストールを簡素化するために、redox-daemon crate パッケージが提案されています。
  • ビルド システムが再設計され、同じソース ツリー内で異なるアーキテクチャ向けにビルドできるようになりました。 さまざまな構成のアセンブリを簡素化するために、build.sh スクリプトが提案されています。 podman ツールキットを使用したビルドのサポートが追加されました。 カーネル、ブートローダー、initfs のアセンブリは他のパッケージと統合されています。
  • ベース ブート イメージに含まれていないサンプル プログラムをグラフィカル環境で構築するためのデモ構成を追加しました。
  • プログラムによる音量制御のサポートが audiod オーディオ サブシステムに追加されました。
  • AC'97 に基づくサウンド チップ用のドライバーを追加しました。 Intel HD Audio チップ用のドライバーが改良されました。
  • IDE コントローラー用のドライバーを追加しました。
  • NVMeドライブのサポートが改善されました。
  • PCI、PS/2、RTL8168、USB HID、VESA ドライバーを改良しました。
  • インストール プロセスの構成が再設計され、ブートローダー、ブートストラップ、カーネル、および initfs が /boot ディレクトリに配置されるようになりました。
  • カーネルはメモリの操作を簡素化し、ユーザー レベルからアドレス空間を操作する機能を追加しました。
  • マルチモニター システムのサポートが Orbital グラフィカル シェルに追加され、マウス カーソルの処理が改善され、音量を変更するインジケーターが追加されました。 メニューには、アプリケーションをカテゴリに分類する機能があります。

出所: オープンネット.ru

コメントを追加します