カーネルとアプリのフルスクラッチを始めよう!
0から全て作る「フルスクラッチ」でOS自作を始める本です。いかなるソフトウェアライブラリも使用せず、基本的にエディタとコンパイラ(GCC)のみでOSを作っていきます(厳密にはmakeやリンカも使います)。本書では以下の技術要素について、アプリケーションへ抽象化した機能を提供するための「カーネル」をステップバイステップで実装していきます。・フレームバッファ(画面描画)
・キーボード入力(キーボードコントローラ、KBC)
・割り込み(割り込みコントローラ、PIC)
・ファイルシステム(簡易RAMFS)
本書の最後では、カーネルとして実装したこれらの技術要素を使用するアプリケーションとして「画像ビューア」を作成します。ブートローダーには"poiboot"という独自のものを使用します。実は本書は「フルスクラッチで作る!」シリーズ3冊目で、"poiboot"は前著までの内容を元に作成したブートローダーです。ブートローダーのフルスクラッチにも興味があれば、ぜひ前著もご覧ください。("poiboot"自体はビルド済バイナリを筆者のウェブサイトからダウンロードできます。)なお、前著含め筆者の同人誌のPDF版は筆者のウェブサイト http://yuma.ohgami.jp に無料で公開しています。
【目次】
はじめに
第1章 開発環境とブートローダーの準備
第2章 フレームバッファを制御する
第3章 キーボード入力
第4章 割り込みを使う
第5章 メモリ上の簡易ファイルシステムを用意する
第6章 画像ビューアアプリを作ってみる
付録A 表紙について
付録B poibootについて
付録C GPTフォーマット方法
おわりに
参考情報
© 2018 大神祐真
各110円 (税込)
PCのマザーボードには、OSやブートローダーを起動するためのプログラムがマザーボード上のROMに書き込まれています(このようなプログラムを本書では"ファームウェア"と呼びます)。PCの電源を入れると、ROM上のファームウェアがHDD等に存在するOS、あるいはブートローダーをRAMへロードし、実行します。これまでこのようなファームウェアは"BIOS"と呼ばれ、ある程度共通性はありながらも、実装はメーカー独自でした。しかし、PCのファームウェアの仕様を共通化するために"UEFI"が生まれ、近年のPCにはUEFIの仕様に従ったファームウェアが書き込まれています。
そして、実は、UEFIは仕様を共通化するだけでなく、ファームウェアをより高機能にしています。そこで、本書では、UEFIのファームウェアからOS無しで直接呼び出されるプログラムを作成する方法を紹介し、UEFIの機能を呼び出すことでOSっぽいもの(poiOS)を作成する方法を紹介します。
RaspberryPi等ではOS無しでハードウェア上で直接動くプログラムを書くことを"ベアメタルプログラミング"と呼びます。PCでベアメタルプログラミングをやってみたいと思っている人には、その第一歩として、ぜひ読んでみて、試してみていただきたいです。なお、PDF版は http://yuma.ohgami.jp から無償でダウンロードできます。
【目次】
はじめに
第1章 Hello UEFI!
第2章 キー入力を取得する
第3章 画面に絵を描く
第4章 マウス入力を取得する
第5章 ファイル読み書き
第6章 poiOSの機能拡張例
おわりに
参考情報
最近のPCのマザーボードにはOSを起動するためにROM上に書き込まれているプログラム(ファームウェア)として、"UEFI"という共通仕様に準拠したファームウェアが書き込まれています。"UEFI"はこれまでの"BIOS"よりも高機能な仕様になっており、前著(パート1)ではそのようなファームウェアから直接呼び出されるプログラムの作り方と、UEFIの機能を呼び出すだけでOSっぽいが作れる事を紹介しました。
本書はパート1では紹介しきれなかったその他のUEFIの機能を呼び出す方法を紹介するTIPS本です。本書ではUEFI上で直接動くプログラムの本来の立ち位置である"ブートローダー"として、"Linuxカーネルの起動方法"等を紹介しています。なお、本書も前著同様にPDF版は http://yuma.ohgami.jp で無償で公開しています。
【目次】
はじめに
第1章 コンソール出力
第2章 キーボード入力
第3章 UEFIアプリケーションのロード・実行
第4章 タイマーイベント
第5章 BootServicesやRuntimeServicesのその他の機能
おわりに
参考情報
0から全て作る「フルスクラッチ」でOS自作を始める本です。いかなるソフトウェアライブラリも使用せず、基本的にエディタとコンパイラ(GCC)のみでOSを作っていきます(厳密にはmakeやリンカも使います)。本書では以下の技術要素について、アプリケーションへ抽象化した機能を提供するための「カーネル」をステップバイステップで実装していきます。・フレームバッファ(画面描画)
・キーボード入力(キーボードコントローラ、KBC)
・割り込み(割り込みコントローラ、PIC)
・ファイルシステム(簡易RAMFS)
本書の最後では、カーネルとして実装したこれらの技術要素を使用するアプリケーションとして「画像ビューア」を作成します。ブートローダーには"poiboot"という独自のものを使用します。実は本書は「フルスクラッチで作る!」シリーズ3冊目で、"poiboot"は前著までの内容を元に作成したブートローダーです。ブートローダーのフルスクラッチにも興味があれば、ぜひ前著もご覧ください。("poiboot"自体はビルド済バイナリを筆者のウェブサイトからダウンロードできます。)なお、前著含め筆者の同人誌のPDF版は筆者のウェブサイト http://yuma.ohgami.jp に無料で公開しています。
【目次】
はじめに
第1章 開発環境とブートローダーの準備
第2章 フレームバッファを制御する
第3章 キーボード入力
第4章 割り込みを使う
第5章 メモリ上の簡易ファイルシステムを用意する
第6章 画像ビューアアプリを作ってみる
付録A 表紙について
付録B poibootについて
付録C GPTフォーマット方法
おわりに
参考情報
付与コインの内訳
1コイン
会員ランク(今月ランクなし)
1%
複数商品の購入で付与コイン数に変動があります。
クーポンご利用時はキャンペーンコイン付与の対象外です。
詳しくは決済ページにてご確認ください。
会員ランクの付与率は購入処理完了時の会員ランクに基づきます。
そのため、現在表示中の付与率から変わる場合があります。