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ファイル プロテクティッドモードへの移行 カーネルイメージのコピーとカーネル起動
Populaire auteurs
Cram101 Textbook Reviews (948) J.S. Bach (447) Wolfgang Amadeus Mozart (305) Collectif (268) Schrijf als eerste een recensie over dit item (259) Doug Gelbert (238) Princess of Patterns (211) Charles Dickens (209) R.B. Grimm (197) Carolyn Keene (187) Jules Verne (183) Philipp Winterberg (180) William Shakespeare (174) Youscribe (172) Lucas Nicolato (169) Edgar Allan Poe (166) Herman Melville (166) Anonymous (165) Gilad Soffer (164) Robert Louis Stevenson (159)Populaire gewichtsboeken
418 KB 425 KB 435 KB 459 KB 445 KB 439 KB 386 KB 413 KB 493 KB 432 KB 455 KB 471 KB 421 KB 451 KB 485 KB 472 KB 416 KB 369 KB 419 KB 427 KB