OS Project Wiki の保存版 ヒデさん・アリスさんほか、OS部のみなさんが書いたものです。
2019年にサイトが消滅しました。当時あった211ページのうち、本文が残っていたのは86ページです。すべては復旧できていません。Common Crawl と Internet Archive に 残っていたものを組み直しています(最終取得 2019-05-24)。
編集・検索・添付などの機能は動きません。表示のみです。
Top > Projects > Mul_light > Memory map

人気の15件

Total : 1345
Today : 1
Yesterday : 0

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

目次

Mul_lightのメモリマップ

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

ブートセクタ実行時

ブートセクタ: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の壁

ブートローダ実行時

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

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

カーネル実行時

カーネル: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)

裏VRAMのこと。

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

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

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

参考

タスク

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

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

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

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

その他

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

Last-modified: Tue, 26 Jan 2010 01:22:36 JST (3164d)
保存 2018-09-25 ・ ページ一覧