カーネル関係の解析

戻る

MonaBoot

訪問者5000人突破記念。バージョン0.3.0におけるブートシーケンスについて 解説しています。

firstboot(新)

10月17日にダウンロードしたMONAのfirstboot.asmの解析です。firstboot自体は 以前と変わりありませんがこの解析ではサブルーチンも含めて全て解析しています。

secondboot(新)

secondboot.asmを解析しています。firstboot.asmから呼び出されて このコードに実行が移ります。このコードは2004年3月のころに比べてだいぶ変わっています。 上の解析結果に加えてVBE周りのデータを得るところまで解析しています。

kernel

kernel.cppを解析しています。secondboot.asmからcstart.cppを経て カーネルのコードに移っています。

GDTUtil

GDTUtil.cppを解析しています。このコードはkernel.cppから呼び出されて グローバルデスクリプタテーブルを再設定しています。

IDTUtil

IDTUtil.cppを解析しています。このコードはkernel.cppから呼び出されて 割り込みデスクリプタテーブルを再設定しています。

thread

kernel.cppでプロセスとスレッドを起動している部分から始まってその後の 処理がどのように実行されていくかを検証しています。ihandler, coreと 併せて読むことをお勧めします。

ihandler

ihandler.asmとihandler.cppを解析しています。といっても現段階では タイマー割り込みの部分しか解析していません。

core

core.asmを解析しています。これもタイマーとスケジューラに関するところしか 解析していません。

A20

A20問題について語っています。

PageManager

ページングを管理するPageManagerの解析を行っています。この辺はもう少しくわしく 解析する必要があると思います。

MemoryManager

カーネルが使用するメモリを管理しています。mallocやnewはこのクラスを通じて メモリ管理を行っています。また,この文書には書いていませんがMemoryMamager2は K & Rに書いてあるmallocプログラムに準拠しています。ぜひ解析してみてください。

FDCDriver

フロッピーディスクコントローラーに関する解析結果を挙げています。まだ解析の 途中です。

FileSystem

FATファイルシステムへのアクセスに関するプログラムの解析です。ファイルを開いて 読み込む部分までしか解析しておらず、ディレクトリの読み込みに関してはまだまだです。 テキスト版もあります。 テキスト版

Directory

インテルのFATファイルシステムに関する説明書のディレクトリに関する部分を 訳したものです。勝手に載せていいのかなあ?元のファイルは これ

VESA VBE

VBEでフレームバッファーの先頭アドレスを得てそこに描画するまでの 過程をまとめています。すっきりとした内容なのか、薄い内容なのか微妙ですが・・・

Loader

サーバーをロードするLoaderクラスについて説明しています。 このクラスの処理でカーネルはプロセスを作成し、プロセスのメモリ空間に プログラムをロードします。カーネルがユーザープロセスのメモリ空間に アクセスするためには必須とされている共有メモリについても解説しています。

MakeServer

サーバープログラムのMakefileの解析とサーバープログラムのMonaMainが実行される までの処理を追う予定です。また、staticオブジェクトのコンストラクタの実行に 関しても言及する予定です。

Memory

MONAにおけるメモリ管理について簡単に説明します。というか簡単すぎ・・・。

Memory2

もう少し立ち入った形でメモリ管理について説明しています。というか、 殆どIntelガイドの引用になっているような・・・。それでも PageManager.cppの動きは詳しく書いたつもりです。えっ?上のPageManager解析が あるから要らないって?

Process1 生成

ユーザープロセスがどのようにして子プロセスを生・実行しているのかを ソースコードを追って説明しています。共有メモリについてはまた詳しく説明 する予定なので今しばらくお待ちください。

戻る inserted by FC2 system