Monkosは、IntelおよびAMDプロセッサ向けの実験的な64ビットオペレーティングシステムです。 Cとアセンブリ言語の組み合わせであり、進行中の作業です。現在、BIOSブートローダー、仮想コンソールシステム、割り込み処理システム、ページメモリマネージャー、ヒープアロケーター、いくつかのシンプルなデバイスドライバー、プリミティブインタラクティブシェルで構成されています。ブートローダーは、CDROMからオペレーティングシステムを起動するように設計されています。
OSは現在、クロスコンパイラを使用してLinuxの下で構築されています。それを構築するには、2つの方法があります。(1)システムに必要なすべてのツールをインストールしてmakeするか、(2)必要なすべてのビルドツールを含む既製のDockerコンテナを使用することにより。
ローカルシステムにインストールされているツールを使用して構築するには、次のソフトウェアを既にインストールする必要があります。
これらのツールのほとんどは、標準のLinuxパッケージマネージャーから入手できます。ただし、クロスコンパイラーはそうではありません。クロスコンパイラを構築するには、このページの指示を参照してください。赤いゾーンの指示なしにLIBGCCにも従ってください。
すべてのツールをインストールし、クロスコンパイラがパスにあることを確認したら、 makeします。
$ makeこれにより、Build Sub -Directoryでmonk.isoと呼ばれる起動可能なCDROM ISOファイルが作成されます。
クロスコンパイラを構築してインストールするのは少し手間がかかる可能性があるため、Dockerコンテナが準備されているため、クロスコンパイラーを自分で構築しないようにします。 Dockerベースのビルドを実行するには、システムにDockerの最近のバージョンがインストールされていることを確認し、システムのDockerユーザーグループに自分自身を追加してから、次を入力してください。
$ make dockerこれにより、まだ持っていない場合は、Dockerコンテナ( brett/monkos-build )を引き下げ、コンテナ内でビルドを実行し、ビルドサブディレクトリにISOファイル(および他のすべての中間出力ファイル)を生成します。システムにローカルにインストールされているクロスコンパイラを使用してmakeしたかのように、ほぼ正確に動作します。
ISOファイルを取得したら、モンコスを実行する方法はいくつかあります。最初で最も時間のかかる方法は、お気に入りの燃焼ユーティリティを使用してCDまたはDVD ROMに燃やすことです。これは、裸の金属システムでモンコスをテストする唯一の方法です。
または、VMwareやVirtualBoxなどの仮想マシンソフトウェアを使用してオペレーティングシステムを起動することもできます。
または、QEMUやBochsなどのLinuxベースのエミュレーターでオペレーティングシステムを実行できます。 Monkos Makefileは、QEMUでOSを起動するための簡単なビルドルールを提供することにより、この代替案を特に簡単にします。
$ make testMakeFileを使用して、QEMUとGDBの下でカーネルデバッグセッションを開始することもできます。まず、QEMUをデバッグモードで起動します。
$ make debug次に、GDBをQEMUデバッガーエンドポイントに添付して、GDBデバッガーセッションを開始します。
$ gdb
(gdb) set arch i386:x86-64
(gdb) symbol-file build/monk.sys
(gdb) target remote localhost:8864
(gdb) layout src
make docs作成して、モンコス向けの適切にフォーマットされたドキュメントを作成します。これを行うには、システムにdoxygenをインストールする必要があります。
$ make docs Doxygenドキュメントは、 docs/monk Sub -Directoryに表示されます。それらを表示するには、ブラウザでそれらを起動します(この場合はFirefox):
$ firefox docs/monk/index.htmlエディター内で簡単なシンボル検索のためにコードタグを作成するには、MakeFileを使用して、熱狂的なタグユーティリティを実行します。
$ make tagsこれにより、Monkosディレクトリに.tagsファイルが生成されます。
すべての中間ファイルをクリーンアップするには、クリーンビルドを使用します。
$ make clean生成されたすべての依存関係ファイルをクリーンするには、cleandepsビルドを使用します。
$ make cleandepsMonkosドキュメントセットの一部であるDoxygen-formattedドキュメントを参照してください。
これらは、ブートローダーとOS開発のさまざまな側面をよりよく理解しようとするために、私が依存してきたリソースの一部です。
このソースコードの使用は、ライセンスファイルにあるBSDスタイルのライセンスによって管理されます。