これは、Libertyosカーネルの公式リポジトリです。 Libertyosは、オープンソース、無料で使用でき、新しい貢献者に開かれた錆で構築されたオペレーティングシステムです。 LOSのすべては、ゼロから構築されています。現在、LOSはX86_64システムをサポートしており、単純なブートローダーを使用して、実際のハードウェアで起動できます。このオペレーティングシステムは継続的に機能しており、すべての変更はversionhistory.mdファイル(このリポジトリのルートディレクトリ)に記録されています。バージョン間の変更の詳細な説明を確認したい場合は、GitHubリポジトリのコミットを読むことができます。
貢献する方法
このカーネルをさらに良くするのを手伝いませんか?私たちはやらなければならないことがたくさんあり、私たちはいつでもそれらを行うのに役立つことができます!このリポジトリには、カーネルのアイデアを説明するさまざまなファイルを含むフォルダー(「アイデア」と呼ばれます)があります。新しいアイデアがある場合は、アイデアフォルダー内に新しいファイルを作成するだけで、プルリクエストを送信すると、アイデアをメインブランチに統合します。現在、多くの優れた機能が取り組んでいます。できるだけ多くの才能ある開発者を使用できます。
ブログ
2022年8月22日現在、ブログファイル(blog.md)があります。これは、行われた設計上の決定のいくつか、開発における問題のいくつか、および近い将来に何を期待するかを説明します。リバティオスは死んでいません。このプロジェクトには明るい未来があります。
リバティオの建設/ランニング
- このリポジトリをクローンします。
- このリポジトリをクローン化した場所に移動します。
- 以下をインストールしたことを確認してください。
- Bootstrapスクリプトを実行する(./bootstrap.sh)
- 「カーゴラン」を使用して、「貨物ビルド - リリース」でカーネルをコンパイルするか、QEMUでカーネルを実行します。
現在実装されている機能
- X86-64アーキテクチャのサポート
- Rustのコアとアロックの木枠をサポートします
- リンクリスト、バディアロケーション、バンプアロケーションを使用したメモリ割り当て
- 基本的なエラー処理
- QEMUでLOSを実行するための組み込みサポート
- いくつかのキーボードレイアウトをサポートします
- 基本的なタスク執行者を含む非同期機能の基本的なサポート
- ファイルシステムへの読み取り/書き込みのサポート(特定のファイルシステムのサポートはまだ実装されていませんが、財団はすでに実装されています)
- Libertyos(libcore)用に構築されたコアライブラリを使用します
- 基本的な代数、幾何学などを含む数学的計算をサポートします。
- Cタイプのサポート
- 解析フォントの基本的なサポート
- タイムキーピング
- システムコール
- 基本的なプロセス管理
- Stdin、Stdout、およびStderrのサポート
- ユーザースペースでの実行プロセスの基本的なサポート
WIP機能
- Libertyosのために構築された基本的なファイルシステム
- カーネル全体の完全なドキュメント
- FATファイルシステムへの読み取り/ライティングの完全なサポート
- 基本的なネットワーキング機能
- コンピューターマウスのサポート
- 基本的なシェル
計画された機能
- アームベースのターゲットのサポート
- glibc/muslのサポート(または、おそらく、それらの特定の部分を書き換える)
- 脂肪、FAT32、EXFATファイルシステムのサポート
- Ext2、Ext3、Ext4ファイルシステムのサポート
- NTFSファイルシステムのサポート
- ホスト名
- オペレーティングシステム内からカーネルを更新する機能
- 英語以外のキャラクターのサポート
- Unicodeの完全なサポート
- 基本的なカスタマイズ
現在予想される動作
- カーネルは、Libertyosの重要な部分を初期化します
- カーネルには、セットアッププロセスに関するメッセージが表示されます
- カーネルはページフォールトに遭遇します。 :(