ブート時のメモリ管理
|
- 起動ステップ 1 (real mode)
- 4MB のアドレススペース用のページテーブルをコンパイル時に初期化(pg0, arch/kernel/head.S で実施)
- 固定値(static な配列)
- 範囲[PAGE_OFFSET, PAGE_PFFSET+0x3fffff]
- ※ページングは使えない状態
- ※起動ステップ 2 に移行後は使用しない
- 起動ステップ 2 (protect mode)
- paging_init() ルーチンで初期化(swapper_pg_dir[], arch/mm/init.c)
- ページテーブルに PAGE_OFFSET 以降の仮想アドレスに対応する物理アドレスを書き込む
- 0x0 をアンマップする(NULL Pointer access用の領域となる)
- ※Pentium 以降では 4MB ページテーブルも利用可能
|
|