いちばんやさしい!OS自作超入門
発売日:2025年12月
- ページ数
- 207p
- ISBN
- 978-4-296-20949-1
- 著者情報
- 末安 泰三(スエヤス タイゾウ)
1971年2月、福岡県生まれのフリーランスライター。主な関心領域は、LinuxやAndroidなどに代表されるオープンソースソフトウエア。IT系出版社に勤務していた1998年前後に、Linux情報サイトの立ち上げやLinux専門誌の創刊などに携わった。以後は、そのLinux専門誌の編集記者として活動し、2006年に独立してフリーランスライターに。独立後は、Linuxカーネルやファイルシステム、仮想化ソフトウエアといったシステムコンポーネント関連の動向記事や技術解説記事を主に手掛けている
セブン-イレブン受取り(送料無料)
発送目安
発売日(発売日以降は当日)~2日で発送
宅配(送料¥550税込)
発送目安
発売日(発売日以降は当日)~2日で発送
交通状況・天候の影響や注文が集中した場合等、お届けにお時間をいただく場合がございます。
商品説明
パソコンやサーバーを動かすために不可欠なのがオペレーティングシステム(OS)。普段何気なく使っていても、どういう仕組みで出来ているのか、どうやったら作れるのか、理解している人は少ないでしょう。本書は仮想環境上でOSを作り、そうした疑問に答えます。まずは仮想CPUを定義して、シングルタスクで動くOSを構築。それをマルチタスクOSへと改良し、最終的には仮想メモリーの実装を目指します。本書で紹介するプログラムはWebにて提供。自分の手で実際に確かめられます。
OS自作をテーマにした書籍は、これまで数多く出版されてきました。いずれの書籍も独自の魅力を持ち、コンピューターやOSの仕組みを深く理解するための貴重な学習素材となっています。
ただ、それらの書籍が簡単に読み解けるかというと、必ずしもそうではありません。正攻法でのOS自作には、CPUや周辺機器、プログラミング言語などについての広範な前提知識が必要だからです。
例えば、一般的なPCで自作OSを起動するには、「UEFI」(Unified Extensible Firmware Interface)というファームウエアや、「ブートローダー」と呼ばれるソフトウエア、x86系CPUの動作モードなどについての知識が必要です。また、自作OSで、キーボードからの入力や、テキストの表示、ファイルからのプログラム読み込みなどを可能にするには、各種のハードウエアの知識や、それらを制御する方法を知っておかねばなりません。
さらに、多くのOS自作本では、CやC++、Rustなどのプログラミング言語を利用します。それによって開発が楽になるのは確かですが、その半面、各プログラミング言語の文法やコンパイラの利用方法、コンパイルによって作成されるオブジェクトファイルの構成などについて理解することが求められます。
OS自作の書籍は、そうした広範な前提知識を、できるだけ分かりやすく伝えてくれます。しかし、必要な前提知識の多さがハードルになり、なかなか最初の一歩を踏み出すことが難しいのが現状です。
本書では、こうした壁をできるだけ低くすることを目的としています。そのために次のような方針を採用しました。
・シンプルな命令セットアーキテクチャを持つCPUエミュレータを利用:
筆者が命令セットアーキテクチャから自作したCPUエミュレータを利用することで、複雑なCPUの仕様に煩わされることなく学習を進められます。このCPUエミュレータには、キー入力やテキスト表示の機能があり、デバイスドライバを開発しなくて済みます。CPUエミュレータはPythonで作成しています。
・OSは基本的にアセンブリ言語のみで作成:
アセンブリ言語のみを利用することで、高級言語やオブジェクトファイルの知識を前提とせず、ハードウエアの動作に直結する形で理解を深められます。
・限定的ながらマルチタスク機能/仮想メモリー機能を備えたOSを完成させる:
現代的なOSの中核となるマルチタスク機能/仮想メモリー機能に焦点を当て、「OSを作り上げる」という体験を確実に味わえるように構成しています。
これらの方針により、学習すべき事柄を大幅に減らすようにしています。本書を読み進めながら開発していくことで、OSの基本的な仕組みを理解できるようになります。
目次
はじめに
第1章 開発環境を用意する
1-1 本書でのOS 自作の進め方
1-2 開発環境に必要なもの
1-3 開発環境の構築手順
1-4 ソースコードの入手とサンプルコードの実行
第2章 CPUの仕組みと実行できる命令
2-1 CPU の役割とその動作
2-2 仮想CPU の特徴
2-3 仮想CPU のレジスタ
2-4 仮想CPU のメモリー管理
2-5 仮想CPU の命令
第3章 アセンブリ言語の書式とサンプルプログラムの作成
3-1 アセンブリ言語の基本的な書式
3-2 アセンブリ言語で利用可能な疑似命令
3-3 アセンブリ言語でプログラムを作成してみよう
第4章 シングルタスクOSを開発
4-1 開発するシングルタスクOSの概要
4-2 CPU エミュレータを変更
4-3 コマンドの入力と実行を可能にする
4-4 プログラムを実行するコマンドを追加
4-5 現在時刻を表示できるようにする
第5章 マルチタスク化を見据えたsleepシステム関数の実装
5-1 シンプルな仕組みのsleepシステム関数を実装
5-2 タスクステータスに基づいてsleepシステム関数を実装
第6章 マルチタスクを実現する
6-1 OS 自身を含めて4 つのタスクを動かす
6-2 スリープ処理もマルチタスク対応にする
6-3 キー入力処理を改良する
第7章 仮想メモリーを実現する
7-1 仮想メモリー機能を有効にする
7-2 タスクを論理アドレス空間で稼働させる
7-3 タスクを終了させるシステム関数を追加
7-4 デマンドページングを実現する
Appendix
完成したOSの全アセンブリコード
終わりに
索引
商品詳細
- 出版社名
- 日経BP
- サイズ
- 24cm
- 対象年齢
- 一般
- フォーマット
- 単行本
注意事項
- 本の帯に関して
- 帯つきでの出荷はお約束しておりません。
商品ページに、帯のみに付与される特典物等の表記がある場合でも、確実に帯つきでの出荷はお約束しておりません。
また、帯は商品の一部ではなく「広告扱い」のため、帯の有無・破損による交換や返品は承っておりません。 - 版・表紙について
- 版・表紙(カバー)のご指定は承っておりません。ご注文いただくタイミングによっては、お届けする商品の版や表紙が商品ページ上のものとは異なる場合がございます。
また、初版にのみにお付けしている特典(初回特典、初回仕様特典)がある商品は、商品ページに特典の表記がされている場合でも、無くなり次第終了となります。