この記事の3行まとめ
- 『[作って学ぶ]OSのしくみⅠ』、2025年4月28日(月)に技術評論社より発売
- シンプルOSを自作することでOSの役割や仕組みを学ぶ。使用言語はRust
- 本書は全2巻編成の1巻目。メモリ管理やマルチタスク、ハードウェア制御などを取り扱っている
技術評論社は2025年4月28日(月)、『[作って学ぶ]OSのしくみⅠ──メモリ管理、マルチタスク、ハードウェア制御』を発売します。本書は、シンプルなOSを自作する作業を通して、OSが果たす役割や仕組みを理解することを目的としています。
総ページ数は552ページ、価格は3,520円(税込)。Amazon.co.jpなどで予約購入を受付中。
著者は、GoogleでChromeOSの開発に携わっているソフトウェアエンジニアのhikalium氏。対象読者は、プログラミングに少しだけ触れたことのある方や、普段Webアプリケーションなど高レイヤーの開発を行っている方など。
【新刊】2025年4月28日発売『[作って学ぶ]OSのしくみI──メモリ管理、マルチタスク、ハードウェア制御』本体3,200円+税,hikalium 著,CPU/メモリ/入出力などハードウェアの制御をRustで実装https://t.co/Itj04SJZ4G pic.twitter.com/TdTazEZqxn
— 技術評論社販売促進部 (@gihyo_hansoku) April 10, 2025
本書は全2巻編成の1巻目として刊行。OSの概要を説明したのち、メモリ管理やマルチタスク、ハードウェア制御などの実装について、サンプルコードを示しつつ解説しています。
第2巻は2025年内の刊行を予定。GUI(グラフィカルユーザインターフェース)やアプリケーションの実行、インターネット接続などに関する実装を解説予定とのこと。
(画像は技術評論社書籍ページより引用)
OSの動作対象はx86_64アーキテクチャ。実装言語にはRustを採用しています。
動作確認はエミュレーターで行うため、1台のPCで作業が可能。開発環境はLinuxを想定していますが、そのほかのOSでも動作確認ができるよう注釈などが用意されています。
本書は全6章に加え、実機でOSの起動を試す際の手順や注意点などを記載した付録も掲載しています。各章の構成は以下の通り。
第1章:OSとは──コンピューターの裏側を支えるソフトウェアを知る
- OSとは何か
- 本書で実装するOSの全体像
- 本題に入る前に
第2章:ベアメタルプログラミングをしてみる──OSのない世界でプログラムを動かすための準備
- コンピューターの構成要素
- すべてはバイナリ
- UEFIアプリケーションを作ってみる
- UEFIからの脱却
- Rustの便利機能を活用する
- もっと色々なものを描く
- writeln!()マクロを使ってみる
第3章:メモリ管理を実装しよう──限りある資源を効率良く使えるようにする
- OSとメモリの関係
- 実装前の準備
- バイト単位のアロケータを実装する
- OSのテストをRustで書く
- ページング──より高度なメモリ管理を行う
第4章:マルチタスクを実装しよう──1つのCPUで複数の作業を並行して行う方法について知る
- マルチタスクとは何か
- Rustのasync/awaitで協調的マルチタスクをする
- ソースコードの整理
第5章:ハードウェアを制御する(1)──デバイスを動かす方法を知る
- OSとハードウェアの関係
- PCIとは
- PCIデバイスの一覧を取得する
- USBコントローラ(xHCI)のドライバを実装する
第6章:ハードウェアを制御する(2)──USBデバイスを使えるようにする
- USBデバイスの情報を取得する
- USBキーボードを使えるようにする
- USBマウス……もといタブレット入力を使えるようにする
Appendix:実ハードウェアでの起動を試す
なお、関連書籍として『[作って学ぶ]ブラウザのしくみ── HTTP、HTML、CSS、JavaScript の裏側』が販売中。
Rustを用いてブラウザを自作するという内容で、作成したブラウザは本書で自作するOS上で動作することが想定されています。併用することでブラウザやWebアプリケーションの動作原理を学習できるとのこと。
『[作って学ぶ]OSのしくみⅠ──メモリ管理、マルチタスク、ハードウェア制御』の詳細は技術評論社の書籍ページをご確認ください。
『[作って学ぶ]OSのしくみⅠ──メモリ管理、マルチタスク、ハードウェア制御』技術評論社書籍ページ