Zerokaratsukuru OS kaihatsu hosokusetsumei-hen GRUB karano jisaku kernel kidou (Japanese Edition) Buy on Amazon

https://www.ebooknetworking.net/books_detail-B00GB0BRZU.html

Zerokaratsukuru OS kaihatsu hosokusetsumei-hen GRUB karano jisaku kernel kidou (Japanese Edition)

Authoryabusame
Publisheryabusame2001

Book Details

Author(s)yabusame
Publisheryabusame2001
ISBN / ASINB00GB0BRZU
ISBN-13978B00GB0BRZ2
Sales Rank99,999,999
MarketplaceUnited States  🇺🇸

Description

C言語で0から作るOSを開発について説明していきます。このシリーズではカーネルの開発における、そのドライバーについて説明しています。

今回はマルチブート仕様に従うカーネルを簡単に作成し、仮想PC上でGRUBからカーネルを起動する方法について見ていきます。

【注意】本書はGRUBのレスキューディスクからフロッピーディスクに格納されているカーネルを起動する方法についてのみの簡易的な説明に留まっています。その他の詳細な説明はしていませんので注意してください。
【注意】本書は『0から作るOS開発』のVol.ナンバリングのタイトルではありません。Vol.ナンバリング以外のタイトルはカーネル編以降どのタイミングでも導入することができます。

GRUBからの自作カーネル起動
  本書について
  ブートローダー
    初期のコンピューター
    初期の商用コンピューター
    IBM System/360と後継機
    ROMを使用したコンピューター
    現在のパソコン
  GRUB
    GRUBの簡単な歴史
    GRUBの特徴
      対応ファイルシステムとデバイス
      インターフェース
      ネットワークからの起動
      マルチブート
    GRUBのブート処理
    GRUB 2のブート処理
  推奨
  GRUB 2のインストール
    CygwinでGRUB 2をインストールします。
    Cygwin上でGRUB 2のパス設定をします。
  GRUB 2のパッケージ内容
    インストールされる内容
    インストールされるGRUB 2のツール
      grub-bin2hのオプション
      grub-editenvのオプション
      grub-fstestのオプション
      grub-mkelfimageのオプション
      grub-mkfontのオプション
      grub-mkimageのオプション
      grub-mkisofsのオプション
      grub-mkpasswd-pbkdf2のオプション
      grub-mkrelpathのオプション
      grub-mkrescueのオプション
      grub-script-checkのオプション
      grub-installのオプション
      grub-mkconfigのオプション
      grub-mkdevicemapのオプション
      grub-probeのオプション
      grub-rebootのオプション
      grub-set-defaultのオプション
      grub-setupのオプション
  重要なGRUBのコマンドと設定ファイル
    grub-installコマンド
    grub-mkconfigコマンド
    grub-mkrescueコマンド
  GRUB 2のレスキューイメージの作成
    GRUBのレスキューイメージを作成してみる
  GRUBをVirtualBoxで起動してみる
    VirtualBoxでGRUBのレスキューイメージを読み込む設定を行う。
  GRUBから起動できる自作OS(カーネル)の作成
  マルチブート仕様(ベーシック)
    マルチブート仕様の概略
    マルチブートヘッダー
    マルチブートヘッダーの実装
      カーネルをロードする物理アドレスの定義
      magicフィールドの定義
      flagsフィールドの定義
      checksumフィールド
      残りのアドレスフィールドについて
      グラフィックフィールドの定義
      C言語用のマルチブートヘッダー定義
    OS起動時のマシン状態
    マルチブート情報
      マルチブート情報の定義
    マルチブート仕様のヘッダー定義まとめ
  GRUBから起動するカーネルを作成する
    マルチブートヘッダーを作成する
      multiboot.S
    カーネル本体を作成する
    カーネルをコンパイルする
      [multiboot.S]
      [kernel.c]
      マルチブートヘッダーとカーネルイメージの結合
    (補足)ELFフォーマット以外のカーネルイメージの作成
  GRUBから自作OS(カーネル)を起動する
    自作カーネルをフロッピーディスクに入れる
    GRUBを起動する
    GRUBから自作カーネルを起動する
  GRUBの設定とメニューからの自作OS起動
    編集したgrub.cfgをレスキューイメージに入れる
付録その1 カーネルをメモリーの3GBにロードするには
  カーネルをメモリーの3GB(0xC0000000)にロードするには
  カーネルをなぜ0xC0000000に置くのか
    物理アドレスアドレスから仮想アドレスへのマッピング
      カーネルを0x00000000からストレートマッピングする場合
      カーネルを0x00100000からストレートにマッピングする場合
      カーネルを0xC0000000からストレートにマッピングする場合
  カーネルを0xC0000000にロードする
  マルチブートヘッダーとカーネルのロード部を作成する
    1.ページディレクトリの作成
    2.ページディレクトリの設定
    3.ページサイズを4MBに設定
    4.ページングON
    5.パイプラインのフラッシュ
    6.カーネルのエントリーを呼び出します
  ここまでのまとめ。multiboot.Sの全体。
  リンカースクリプトの作成
付録その2 マルチブート仕様
  マルチブート仕様概要
  マルチブート仕様について
    マルチブート仕様が想定しているアーキテクチャー
    マルチブート仕様が想定しているOS
    マルチブート仕様に基いて設計するブートローダーについて
    ブート時にOSに渡すパラメーター情報について
    OSの開発について
    ブートモジュールについて
  マルチブート仕様で使用する型式
    マルチブート仕様で仕様する助詞の定義について
  マルチブート仕様
  マルチブートヘッダー
  マシン状態
    (参考)CR0制御レジスターとEFLAGSレジスター
      CR0制御レジスター
      EFLAGSレジスター
    ESPレジスター、GDTR、IDTRについて
    ブートローダーが設定しておくべきのその他のマシン状態
  マルチブート情報のフォーマット
  実装例と注意事項
    パソコンでの注意事項
      マルチブート情報のflagsのビット0について
      マルチブート情報のflagsのビット1について
      マルチブート情報のflagsのビット6について
    BIOSデバイスマッピングテクニック
      データ比較テクニック
      I/O制限テクニック
    OSのプログラム例
      [multiboot.h]
      [boot.S]
      [kernel.c]
      コンパイル

More Books by yabusame

Donate to EbookNetworking
Prev
Next