インターネットデパート - 取扱い商品数1000万点以上の通販サイト。送料無料商品も多数あります。

0から作るOS開発 Vol.2 カーネルローダー編 0から作るカーネルローダー

価格: ¥0
カテゴリ: Kindle版
ブランド: yabusame2001
Amazon.co.jpで確認
C言語で0から作るOSを開発について説明していきます。このシリーズではカーネルの開発について説明しています。
今回は前回作成したブートローダーから起動するカーネルローダーを作成していきます。カーネルを読み込むため32ビットのプロテクティッドモードへ移行し、A20を有効にして4GBのメモリー空間を使用できるようにします。その後FATからカーネルイメージを読み込み、カーネルを起動していきます。

【注意】本書のカーネルローダーはnasmでプログラムを行っていますが、アセンブラーの構文などは詳細に説明できておりません。別途アセンブラーの文法などを学習する必要があります。しかし、本書を読むことでカーネルローダーの基本的な設計はできるようになると思います。

[目次]
前回までの内容
メモリマップ
  OS(カーネル)ロードの問題点
  カーネルローダーをロードする
はじめてのカーネルローダ
  1段階目のブートローダーからカーネルローダーへ
32ビットレジスター
プロテクティッドモード
プロテクティッドモードへの移行
プロテクティッド用のメモリーアクセス設定 GDT(Global Descriptor Table)
  GDT(Global Descriptor Table)
  GDTとセグメントレジスターの役割
    論理アドレスとリニアーアドレス
  セグメントセレクターとしてのセグメントレジスター
  セグメントディスクリプター
  GDTの作成とロード
    Nullディスクリプター
    コードセグメントディスクリプター
    データディスクリプター
    TEMPORARYディスクリプターについて
  GDT設定のまとめ
プロテクティッドモードへの移行
  制御レジスターCR0
  32ビットプログラム
ハードウェア制御とA20
  システムアーキテクチャー(フロントサイドバス)
    アドレスバス(Address Bus)
    制御バス(Control Bus)
  I/Oデバイス
  I/Oデバイスへのアクセス
  8042キーボードコントローラー
  8042キーボードコントローラーでA20を有効にする
    ライトアウトプットポートコマンド
    リードアウトプットポートコマンド
  A20を有効にするまとめ
カーネルローダー メインを作っていく
  最初に作成したStarting.asmファイル
  スタックの初期化とGDTの設定を追加する
    Starting.asmファイル
カーネルのロード
  ルートディレクトリ領域でカーネルイメージファイルを探す
    Starting.asmファイル
    Fat12.incファイル
    BPB.incファイル
    common.incファイル
  カーネルイメージを読み込む
    Starting.asmファイルの続き
    Fat12.incファイル
  プロテクティッドモードへの移行
  カーネルイメージのコピーとカーネル起動