2
VESAモードのLFBにピクセルを書き込もうとするたびに、ページが存在し、読み込まれたページフォルトが発生します。私のページング実装はJames MolloyのOSシリーズからのものです。ページングを有効にしてVESA LFBにアクセスしようとするとページフォールトが発生する
for (unsigned int i = 0xFD000000; i < 0xFE000000; i += 0x1000) {
page_t* pg = get_page(i, 1, kernel_directory);
alloc_page(pg, 1, 1);
}
これらは、それらの関数のプロトタイプは次のとおりです:次のように私はLFBをマッピングアイデンティティを試してみた
page_t* get_page(uint32_t address, int make, page_directory_t* dir);
void alloc_frame(page_t* page, int is_kernel, int is_writeable);
ページングが無効になっている場合、私はどんなことなく、LFBにピクセルを書き込むことができますよ問題。 LFBを間違ってマッピングするアイデンティティですか?アイデンティティを正しくマップするために必要なことがありますか?助言がありますか?
元のポスターはLinuxを使用していないため、独自のOSを作成しています –
ページングはハードウェア(CPUとMMU)のメカニズムなので、書き込んでいるOSに関係なくです。ハードウェアがページング・メカニズムをオンにしたときに定義したページング・ルールを遵守する必要があります。 – Akr
はい、Linuxのルーチンは[James MolloyのOSシリーズ](http://www.jamesmolloy.co.uk/tutorial_html/)のコードを手伝ってくれません –