低レイヤー学習のロードマップ
horizon.iconhorizonが低レイヤーを学習するのに使用し, 役立ったもののみをリストアップしました.
(注: かなりオペレーティングシステムに偏っています)
書籍
手っ取り早く動かしたい場合
ゼロからのOS自作入門 (注: UEFI+x86_64アーキテクチャの学習にも最適, というかUEFIをまともに取り扱っている本がこれぐらい) 作って理解するOS x86系コンピュータを動かす理論と実装
x86アーキテクチャの学習にも最適
理論
モダンオペレーティングシステム
モノリシックカーネル
はじめてのOSコードリーディング : UNIX V6で学ぶカーネルのしくみ
これでOSの大まかな構造が理解できる.
詳解Linuxカーネル
x86_(64)をメインに解説しています. 巷で言われているほど読みにくくない
BSDカーネルの設計と実装 : FreeBSD詳解 (悪魔本)
基本的にアーキテクチャ非依存部分の解説. ネットワーク周辺やドライバ実装に大いに役立つ.
マイクロカーネル
オペレーティングシステム: 設計と実装 (MINIX本)
結構読みにくいけどおすすめ.
自作OSで学ぶマイクロカーネルの設計と実装 (エナガ本)
注)この本で実装が学べるかといえばそうではなく, 理論と比較に重きが置かれている
リンカ/ローダ (この二冊は微妙に異なる範囲を扱っているので, 両方読むことになる)
リンカ・ローダ実践開発テクニック
ELFをメインに解説
Linkers and Loaders
PE + ELFを解説
標準ライブラリ・システムコール実装
ハロー "Hello, World" - OSと標準ライブラリのシゴトと仕組み
printf();がどのように動作しているか, システムコールがどのように動作しているか
標準ライブラリ周辺を弄りたい人におすすめ
コンパイラ
コンパイラ - 作りながら学ぶ
下二冊と比較して軽量
コンパイラ - 原理・技法・ツール (ドラゴンブック)
結構Java寄り
最新コンパイラ構成技法 (タイガーブック)
こっちの方がおすすめ
CPU
はじめて読む486
x86を学ぶのに最高の書籍.
コンピュータの構成と設計 (パタヘネ)
CPU全般の知識を幅広く学べる
コンピュータアーキテクチャ 定量的アプローチ (ヘネパタ)
パタヘネより難易度は高い. アーキテクチャ設計者を志す人向け
しかも大きい! 本棚に入らない
RISC-V原典 (モナリザ本)
RISC-Vの設計と哲学などが学べる. RISC-Vプログラミングするときにはかなり良い.
結構薄い (後半はRISC-Vの命令リファレンスになっている)
インターネットで入手可能なpdf(無料公開されているもの)
Intel SDM
x86_64プログラミングをするなら嫌でも読むことになる.
UEFI Specification
UEFIプログラミングをするなら (以下略).
System V Application Binary Interface AMD64 Architecture Processor Supplement
System V呼び出し規約について情報が得られる. x86_64のアセンブラを書きたいときは読む必要がある
xv6: シンプルで Unix 風な 教育用オペレーティングシステム
xv6のRISC-V実装を学べる
フルスクラッチで作る! x86_64 自作 OS シリーズ
タイトル通りの内容だが, 実装が詳細に読める
マイクロカーネルの設計と実装
エナガ本の前に, 同著者によって無料公開されたもの. マイクロカーネルの設計と実装・比較など
seL4 Reference Manual
Webページ
OSDev Wiki
osdev-jp
低レイヤーガール (Youtubeチャンネル)
自作OS開発におけるTips集 〜liumOSの場合〜
seL4 Docs
Construction of Microkernels : Lecture of Prof. J. Liedtke, summer term 2000
UNSW Advanced Operating Systems
オープンソースOS
Resea
L4 Family
Genode (seL4 Enviroment)
Fiasco : L4Re