作りながら学ぶOSカーネル 保護モードプログラミングの基本と実践

概 要

膨大な知識を必要とするOSカーネルの仕組みを順序よくカンタンに理解するには、まず自分でカーネルを作ってみるのが早道です。本書は、IBM-PC系で標準となっているIntel x86系CPUのカーネル作りで基本となる保護モード(Protect Mode)プログラミングについてやさしく解説したOSカーネルの入門書です。ブートストラップローダ、タスクスイッチング、割り込みハンドラ、メモリページングなどをオープンソースのアセンブラ「NASM」を利用して実際にプログラミングしていきます。また、実践への橋渡しとしてC言語でのプログラミング法やアセンブラとのリンクの仕方についても紹介しています。サンプルコードのダウンロードサービス付き。

著者 金凡峻
価格 本体2800円(税別)
ISBN 978-4-7980-2254-3
発売日 2009/4/16
判型 B5変
色数 1色
ページ数 424
CD/DVD
対象読者 中級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Chapter_00 はじめる前に用意するもの

NASMのダウンロード

NASMのために環境変数設定

RawWriteのダウンロード

Chapter_01 ブートストラップ

OSなしにプログラムを実行させる

プログラムソース解説―

リアルモード(Real Mode)と保護モード(Protected Mode)

セグメントとオフセット

Chapter_02 カーネルをロードする

ブートローダとカーネルの作成

実行

ソースの解説

Chapter_03 保護モードへの移行

カーネルプログラムの作成

16ビット・リアルモード

保護モード

GDT

保護モードでのアドレス指定方法

16ビット・リアルモードから32ビット・保護モードに移行

Chapter_04 割り込みと例外

実行

IDTを作る

PICの初期化

タイマ割り込みハンドラを作る

キーボード割り込みハンドラを作る

例外(Exception)

Chapter_05 タスクスイッチング

実行

タスクスイッチングとTSS

CALL命令によるタスクスイッチング

Chapter_06 保護機能

CPUのチェックポイント

Limitチェック

Typeチェック

特権レベル

コールゲート

コードとデータの特権レベル関係

特権レベル変更時のスタックの変化

CALL命令が実行されたときのスタック

割り込み例外が発生したときのスタック

Chapter_07 ユーザモードのタスクスイッチング

ユーザモードとコールゲート

実行

ユーザモードセグメント設定

コールゲートの設定

ユーザモードへのタスクスイッチング

コールゲートを使ったシステムコール

多数のユーザモードタスクの実行

実行

スタック領域を使ったタスクスイッチング

Chapter_08 ページング

A20ゲート

A20ゲートの実験

ソースの説明

ページング機構の作成

ページング機構の実験

プログラム実行

ソース解説

Chapter_09 C言語でカーネルを作る

GCCのダウンロード

Cとアセンブラのリンク

C言語でカーネルを作る

ソースの解説

boot.asm

setup.asm

kernel.c

interrupt.asm

floppy.asm

floppy.c

process.c

user_program1.c

print_string.c

PR

秀和システム