タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Kernelに関するg6949のブックマーク (2)

  • 64bitでのアドレス空間 - Linuxカーネルメモ

    x86_64環境でのアドレス空間(Kernel 2.6.30) 図1 x86_64でのアドレス空間 ユーザ空間は0x0000000000000000〜0x00007fffffffffff。 カーネル空間は0xffff800000000000以降を使用する。カーネル空間の0xffff880000000000〜は搭載物理メモリの分だけ物理メモリにストレートマップされる。64bit環境では、仮想アドレス空間が広いので物理メモリ全体をストレートマップできるため、LowMemoery/HighMemoryの区別はない。 0xffffc20000000000以降はストレートマップされない領域になる。ここはvmallocで確保した領域などに使われる。 カーネルの.textセグメントは0xffffffff81000000から始まる。 カーネル空間のPageDirectory設定 カーネル空間のPML4テー

  • カーネル空間のメモリマップ - Linuxカーネルメモ

    カーネル空間のPageDirectoryこのストレートマップしているPageDirectoryはswapper_pg_dirに格納されている。立ち上げ時に初期化される。 arch/i386/mm/init.c paging_init() pagetable_init() : kernel_physical_mapping_init(swapper_pg_dir) カーネルアドレス空間(0xc0000000〜)を物理メモリへストレートマップ (max_low_pfnページ分をマップ) <--全物理ページ分 swapper_pg_dirの先にPageDirectoryが作成される。 swapper_pg_dirをCR3に設定してストレートマップ完了 各プロセスPageDirectoryへのコピー各プロセスのPageDirectoryにもカーネル空間(0xc0000000-)のマップが入っていて

  • 1