ナノカーネル
- ナノカーネル(nanokernel)はオペレーティングシステムのカーネルの設計、実装思想のひとつ。マイクロカーネルよりもさらにコア部分の機能を限定し、軽量化を計ったものをこう呼ぶことがある。
- NanoKernelはSystem 7.1.2からMac OS 9.2.2まで採用されていたカーネル。Mac OS 8.6からはマルチプロセッシングに対応し、プリエンプティブマルチタスクなどの機能を備える。詳細を以下に述べる。
概要
nanokernel(ナノカーネル)とは、かつてMacintoshのOSであったSystem 7.1.2から採用されたカーネルで、それまでのカーネルからPowerPCに対して最適化を進める為に採用された。Mac OS 8.6以降では省電力化、高速化に成功したとされる。
nanokernelはMac OSの最下層に位置し、割り込みの処理、MPTaskと呼ばれるネイティブスレッドのスケジューリング、メモリ空間の割り当てと保護、クリティカルセクションの管理などOSの基本的な動作はすべてここで処理される。
実際
Mac OS X以前のMac OSはよくプリエンプティブマルチタスクや、メモリ保護機能を欠いたOSと言われているが、実はMac OSのコアであるnanokernelには両機能が備わっている。 実際、nanokernelはプリエンプティブマルチタスキングカーネルとしてタイムスライシングを行っており、各スレッドはプライオリティに基づきスケジューリングされている。また、nanokernelが存在、利用するメモリ領域はMMUによって保護されており、nanokernelのみが動作しているPowerPCのスーパバイザモードからしか読み込み、書き込みともにアクセスできない。