xv6
MIT が作った、6th edition UNIX をベースとする学習用OS。マルチコア対応で32-bit x86(後にRISC-V版もある)上で動く、簡素で読みやすい実装。
位置づけ
- 教育目的(MIT の OS講義、CS4414 等)で使われ、現代OSの基本機構(保護・システムコール・割り込み・コンテキストスイッチ)を最小構成で学べる。
- ゴールは保護(protection): kernel mode / user mode の分離。
学べる機構
- システムコール:
int $0x40、eaxに番号。IDT をlidt/SETGATEで設定。 trap()による割り込み/例外/トラップのディスパッチ。- メモリレイアウト(
KERNBASE)とプロセスごとのカーネルスタック。 swtch()によるスレッド切り替え。- マルチプロセッサ起動は MultiProcessor Specification(MP table)に従う。
これらの一般論は operating-system-kernel にまとめている。msyksphinz による翻訳プロジェクトやブートローダ・ページングのコードリーディングが派生している。
関連: _moc-systems / operating-system-kernel / linux