Rustで記述されたRedox0.6オペレーティングシステム:このリリースの新機能



開発の1年半後、Rust言語を使用して記述されたRedox0.6オペレーティングシステムの作成者 新しいリリースを公開しました。目新しさをテストすることができます-このために、ブートイメージがネットワークに投稿されています。それらのボリュームは61MBです。最新バージョンは、QEMUやVirtualBoxではなく、通常のハードウェアでテストできます。



オペレーティングシステムは、無料のMITライセンスの下で配布されます。バージョン0.6の新機能



  • カーネルメモリ管理システムは最初から書き直されましたカーネルメモリマネージャであるrmmについて話しています。開発者は、古いメモリマネージャを使用するときに問題を引き起こしたメモリリークをなんとか取り除くことができました。マルチコアシステムのサポートの安定性も向上しています。
  • , RSoC (Redox OS Summer of Code), , io_uring, ptrace, strace, gdb, .
  • - Relibc, Redox, Linux.
  • pkgar . . , , , . , pkgar , .
  • cookbook , Rust. Shell- Tomt.
  • , Asm.


このオペレーティングシステムの機能については、Unixの哲学に完全に従って開発されています。著者は、SeL4、Minix、およびPlan 9から多くのアイデアを借りました。主な「トリック」の1つは、プロセスとリソース管理の間の相互作用のみを提供するマイクロカーネルの概念の使用です。残りの機能は、カーネルアプリケーションとカスタムアプリケーションの両方で使用できるライブラリに移動されました。すべてのドライバーは、隔離されたサンドボックス環境のユーザースペースで実行されます。既存のアプリケーションとの互換性のために、POSIXレイヤーが提供されており、移植せずに多くのプログラムを実行できます。



さらに、開発者はOSに「すべてがURLである」という原則を使用しました。したがって、URLのログ記録には、「log://」、プロセス間の相互作用「bus://」、ネットワーク通信「tcp://」などを使用できます。ドライバ、カーネル拡張、およびカスタムアプリケーションの形式で実装できるモジュールの場合、URLハンドラを登録できます。例として、I / Oポートにアクセスするためのモジュールを作成し、それを「port_io://」URLにバインドします。その後、「port_io:// 60」URLを開くと、このモジュールを使用してポート60にアクセスできます。



カスタム環境は、Flutter、React、Reduxと同様のAPIを提供するOrbTk独自のグラフィカルシェルに基づいています。ブラウザ-Netsurf。プロジェクトの開発中に、開発者は独自のパッケージマネージャー、一連の標準ユーティリティ(binutils、coreutils、netutils、extrautils)、ionコマンドシェル、relibc標準Cライブラリ、vimのようなナトリウムテキストエディター、ネットワークスタック、およびに基づいて開発されたTFSファイルシステムを提供しました。 ZFS(RustのZFSのモジュラーバージョン)のアイデア。構成はToml言語で設定されます。






All Articles