ムーンOS
Moon OSは、X86_64とARMV6アーキテクチャをターゲットにしたモジュラーマイクロカーネルであり、将来POSIXのようになることを目指しています。

スクリーンショット:
Bootsplash:
冗長ブーツ:
カーネルパニック: 
特徴
- 複数のアーキテクチャのサポート:
- ACPIサポート付きのX86_64 PC
- 4レベルページング
- Stacktrace/Symbol Backtrace
- ゾーニングされたバディとスラブアロケーター。
-
syscall経由のシステムコール( intベースのシステムコールのサポートはありません)
- 任天堂3DS(ARMV6)
- I2Cドライバー
- Bootrom IVT
- 文字列をディスプレイにレンダリングします
共有機能(両方のアーキテクチャがこれをサポートしています):
- ウブサン
- 解析可能なブート引数(静か/動詞)
- エルフローダー
- プリミティブスケジューラ(残業が改善されます。今のところ、私の焦点はすべてを稼働させることにあります(IPC、サーバー、LIBCなど))
将来の機能:
- スレッド
- カサン
- ACPI
- smbios
- マルチタスク
- 以下を含むがこれらに限定されない多くのハードウェアドライバー
- ネットワークカード
- ストレージドライバー
- GPU
- そしてもっと
- ユーザーランド用のLIBC
近い将来のTODOリスト
- APICをよりよく使用してください(現在、タイマーのみに使用されています)
- 仮想メモリサブシステム
- 新しい物理メモリマネージャー? (不確実です。)
これは現在取り組んでいます:
- スケジューラ
- IPC
- MLIBCの移植
- initrd
- カーネル減圧ライブラリで、initrdを減圧します
- ファイルを構築および追加するネイティブ(ビルドマシン)プログラム(まともなモジュール性を維持するため)をinitrdに追加します。
- initrd(TGA、BMP)から画像をロードしてレンダリングする
- ARMV6ポートをより使いやすくするための新しい追加(SDカードドライバー、GPU、VBlank)
ディレクトリウォークスルー:
- LIBS/ - ユーティリティは、カーネル(スケジューラー、メモリマネージャーなど)に厳密に関連していませんが、機能するために必要です。
- カーネル/ - カーネルソースコード
- 起動/ - 起動するためにすべての月が必要です
- サービス/ - 特別なマイクロカーネルサーバー + LIBC
- userspace/ -bootloaderファイル、構成、モジュールなど。多くのファイルは、ビルド時に自動的に追加されます。
インストール
建物:( Debianベースのディストリビューションを使用していると仮定)
必要なツールをインストールする:
- sudo aptアップデート
- sudo apt install gcc nasm qemu-system-x86 libfuse-dev ruby ruby-rubygems
- sudo gemインストールシードリング#テスト
カーネルを構築します
make all - カーネルを構築しますmake run - QEMUでカーネルを実行し、必要に応じて構築する(x86_64のみ)-
make kvm -KVMでQEMUでカーネルを実行し、必要に応じて構築します(x86_64のみ) -
kvmとrunのコマンドラインオプション:-
modern=yes - モダンな機能をエミュレートする(x86_64のみ)
構成アーキテクチャ:
-
Make.confで2つの変数を編集するだけです。-
ARCHとBOARD 。許可された値はコメントに記録されています。
私の旅:(新人のためのインスピレーション)
私はいつもOSを作りたいと思っていたので、いつかOSを構築することにしました。それは多くの仕事であることが判明しました、そして、それは情報が非常に少ないので、私が長い休憩(数ヶ月)をとったところまで私を完全に圧倒しました。
OSの開発学習体験中に約4つの「カーネル」を書きましたが、あまりにも圧倒されすぎたので始めるたびに、GDT:/(ヘック、カーネルエントリと呼ばれ、ループされたブートローダーがあるものもありませんでした)
あなたがこのコードが何をしているのか、そして最新の情報で自分のカーネルをどのように書くことができるかを理解したい初心者である場合は、Osdev Discordサーバー(下部のOsdev wikiにリンク)に参加して、最初は困難になったときはあきらめないでください。
私は執筆時点で約8か月前にカーネルの開発を開始しました(その間に数か月のtry harderがあります)。
これが、物事が管理が難しすぎると思われるときに、この考え方を使うように促したことを願っています。
幸運〜v01d(ティム)。
特別なありがとう
- LowLevel.EUやOsdev WikiなどのWebサイトに感謝しますが、GitHubやDiscordのクールで本当に役立つOS開発者にも感謝します。
仕上げの仕上げ(私が使用するリソース)
- https://www.cs.cmu.edu/~rarf/files.html
- https://ethv.net/workshops/osdev/notes/notes-3.html
- https://osdev.wiki(ベアボーンですが最新のosdev wiki)
- https://wiki.osdev.org