Top > Projects > Mul_light > Memory map

プロジェクトデータ - Mul_light - メモリマップ Edit

目次 Edit

Mul_lightのメモリマップ Edit

Mul_lightのメモリの利用状況を記した表です。
予約済みのものに関してはOS_Project_Wiki:Memory mapを参照してください。

ブートセクタ実行時 Edit

ブートセクタ:0x200 = 512B

開始アドレスサイズ内容
0x0000 00001,280B0x500予約
0x0000 050030,464B0x7700カーネル用予約
0x0000 7c00512B0x200ブートセクタ
0x0000 7e0043,776B0x4200カーネル用予約
0x0000 c000208KiB0x34000カーネル後半
0x0004 000064KiB0x10000ブート用スタック領域
0x0005 000064KiB0x10000GDT(8192個*8Byte)用予約
0x0006 000016KiB0x4000ブートローダ
0x0006 400048KiB0xc000カーネル前半
0x0007 000064KiB0x10000パラメータ用予約
0x0008 0000512KiB0x80000予約(マシンによって、どこまで使えるかが異なる。だいたい0x0008 0000〜0x0010 0000は使わない方がいい。)
1MiBの壁

ブートローダ実行時 Edit

ブートローダ:~0x8000 = ~32KiB

開始アドレスサイズ内容
0x0000 0000256KiB0x40000カーネル本体
0x0004 000064KiB0x10000ブート用スタック領域
0x0005 000064KiB0x10000GDT(8192個*8Byte)
0x0006 000016KiB0x4000ブートローダ
0x0006 400048KiB0xc000空き
0x0007 000064KiB0x10000パラメータ
0x0008 0000512KiB0x80000予約(マシンによって、どこまで使えるかが異なる。だいたい0x0008 0000〜0x0010 0000は使わない方がいい。)
1MiBの壁

カーネル実行時 Edit

カーネル:0x4 0000 = 256KiB

開始アドレスサイズ内容
0x0000 0000256KiB0x40000カーネル本体
0x0004 000064KiB0x10000初期化タスク用スタック領域
0x0005 000064KiB0x10000GDT(8192個*8Byte)
0x0006 00002KiB0x800IDT(256個*8Byte)
0x0006 080062KiB0xf800空き
0x0007 000064KiB0x10000パラメータ→空き
0x0008 0000512KiB0x80000予約(マシンによって、どこまで使えるかが異なる。だいたい0x0008 0000〜0x0010 0000は使わない方がいい。)
1MiBの壁
0x0010 00003MiB0x300000メイン・グラフィックス・バッファ(MGB)
0x0040 00003MiB0x300000スクリーン・ピクセル・マップ(SPM)
0x0070 00001MiB0x100000カーネル用ヒープ領域(4byte単位)
0x0080 0000ヒープ領域(Page単位)
メイン・グラフィックス・バッファ(MGB) Edit

裏VRAMのこと。

スクリーン・ピクセル・マップ(SPM) Edit

スクリーンの、どのピクセルがどのウィンドウにあたるのかを配置したビットマップのようなもの。

パラメータ (0x0007 0000〜0x0008 0000:0x10000) Edit
オフセットサイズ内容
0x0000 0500256B0x100グラフィックス情報。詳細はOS_Project_Wiki:VESAを参照
0x0000 0600B
  • グラフィックス情報
  • メモリ情報
  • etc...

参考 Edit

タスク Edit

とりあえず、難しいことを抜きにした、コンソールアプリケーション用タスク。

開始アドレスサイズ内容
0x0000 0000512B0x200TSS
0x0000 02003,584B0xE00キーボード・マウスデータetc...
0x0000 100028,672B0x7000スタック領域

よくわからんけど、こんな感じ?

開始アドレスサイズ内容
0x0000 00002,048B0x800TSS
0x0000 08002,048B0x800LDT
0x0000 1000可変コード・セグメント
0x0000 1000 + Code可変データ・セグメント
0x0000 1000 + Code + Data可変スタック・セグメント

その他 Edit

サイズ内容
~2KiB~0x800IDT(~256個*8Byte)
~64KiB~0x10000GDT(~8192個*8Byte)
4KiB~0x1000PDE(1024個*4Byte)
~4MiB~0x400000PTE(~1024個*1024個*4Byte)

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Tue, 26 Jan 2010 01:22:36 JST (3249d)