Zerokaratsukuru OS kaihatsu 005 kernel-hen butsuri-memory kanri (Japanese Edition) Buy on Amazon
Facebook LinkedIn

Zerokaratsukuru OS kaihatsu 005 kernel-hen butsuri-memory kanri (Japanese Edition)

Author yabusame2001
Publisher yabusame2001
Book Details
Author(s) yabusame2001
Publisher yabusame2001
ISBN / ASIN B00FNXBOW2
ISBN-13 978B00FNXBOW2
Sales Rank #99,999,999
Marketplace United States 🇺🇸
Description
C言語で0から作るOSを開発について説明していきます。このシリーズではカーネルの開発について説明しています。
今回は、物理メモリーの管理について見ていきます。『0から作るOS開発 Vol.2 カーネルローダー編 0から作るカーネルローダー』を改造して、物理メモリーのサイズや使用可能領域をBIOSのサービス割り込みを利用して取得します。そして、取得したメモリー領域の情報(メモリーマップ)をマルチブート仕様になるべくあった形にしてパラメーターとしてカーネルに渡します。カーネルでは、受け取ったメモリーマップに基づいて簡単なビットマップを使って物理メモリーを管理していきます。

【注意】本書では物理メモリー管理に最低限必要な部分のマルチブート仕様しか見て行きません。マルチブート仕様の詳細について調べたい場合は別途仕様書を参照していく必要があります。

[目次]
前回までの内容
メモリー
  アドレッシングモード
  メモリーの制御
物理メモリーの管理
  メモリー情報の取得
BIOSからメモリー情報を取得する
  ローメモリーのサイズ取得 INT 0x12命令
  拡張メモリーサイズ取得(0x88機能) INT 0x15命令
  拡張メモリーサイズ取得(0xE801、0xE881機能) INT 0x15命令
  メモリーマップ取得(0xE820機能) INT 0x15命令
    メモリーマップ情報(アドレス範囲ディスクリプター:Address Range Descriptor)
    メモリーマップ情報を定義する
    メモリーマップ情報の取得
マルチブート仕様
  カーネル起動時のCPUのレジスター
  ブート情報
  カーネルローダーでブート情報を定義する
  カーネルローダーでメモリーマップ情報を取得する
  カーネルにメモリーマップ情報を渡す
  カーネルでメモリーマップ情報を引数として受け取る
物理メモリー管理
  メモリー管理
  メモリー管理の方法
ビットマップでメモリーを管理する
  ビットマップに使用するメモリー領域を確保する
  ビットマップを操作する
    ビットマップに1をセットする
    ビットマップをクリアーする
    ビットマップがセットされているか調べる
  割り当て可能なメモリーブロックをビットマップから探す
  物理メモリーの割り当てと解放
Donate to EbookNetworking
No Prev
No Next