参考文献
各章に分散していた参考文献・参考資料・リンク集をこのファイルへ集約しています。
コンピュータサイエンス基礎
参考リンク集(拡張版)
公開資料
情報表現・文字コード
- Unicode Standard: Technical Introduction
- What is Unicode?
- IEEE 754 Standard
- What Every Computer Scientist Should Know About Floating-Point
OS・プロセス・メモリ
- Linux man-pages: fork(2)
- Linux man-pages: execve(2)
- Linux man-pages: read(2)
- Linux man-pages: socket(2)
- Linux man-pages: mmap(2)
- Linux Kernel Documentation: Memory Management
ネットワーク
- RFC 1034: Domain Names - Concepts and Facilities
- RFC 9293: Transmission Control Protocol (TCP)
- RFC 768: User Datagram Protocol (UDP)
- RFC 9110: HTTP Semantics
- RFC 9112: HTTP/1.1
- RFC 9113: HTTP/2
- RFC 9114: HTTP/3
- RFC 9000: QUIC
- RFC 8446: TLS 1.3
データベース
- PostgreSQL Documentation
- PostgreSQL: MVCC Introduction
- PostgreSQL: Transaction Isolation
- PostgreSQL: EXPLAIN
- SQLite Query Planner
並行性・分散
- MIT 6.5840 Distributed Systems
- Raft Consensus Algorithm
- Paxos Made Simple
- FLP Impossibility Theorem (1985)
- CAP Theorem (Gilbert-Lynch 2002)
サイバーセキュリティ
- NIST CSRC Glossary
- NIST SP 800-63 Glossary
- OWASP Top 10
- OWASP Cheat Sheet Series
- Mozilla Developer Network - Web Security
講義・教科書
全体像・アルゴリズム
- MIT OpenCourseWare: Introduction to Algorithms
- MIT OpenCourseWare: Lecture 1 - Algorithms and Computation
- CLRS Introduction to Algorithms(公式サポート)
- Algorithms by Sedgewick & Wayne
- OI Wiki(中国発の競プロ百科事典、英訳あり)
OS・アーキテクチャ・性能
- Operating Systems: Three Easy Pieces (OSTEP) — 無料 PDF
- Computer Systems: A Programmer’s Perspective (CSAPP)
- Computer Architecture: A Quantitative Approach
- What Every Programmer Should Know About Memory — Ulrich Drepper
- Brendan Gregg - Systems Performance
データベース・分散
- CMU 15-445 Database Systems
- Designing Data-Intensive Applications (DDIA)
- The Art of Multiprocessor Programming
- Stanford CS144 Computer Networking — 現行の公式コースページ。TCP を自作する課題で有名
日本語資料・補助教材
- IPA 情報処理推進機構 — 基本情報技術者・応用情報技術者試験
- Qiita、Zenn
- 『アルゴリズム図鑑』石田保輝
- 『達人に学ぶ SQL 徹底指南書』ミック
- 『マスタリング TCP/IP』竹下隆史ら
- 『Go ならわかるシステムプログラミング』渋川よしき
計算理論
- Sipser - Introduction to the Theory of Computation
- Stanford Encyclopedia of Philosophy: The Church-Turing Thesis
- P vs NP Problem (Clay Math)
情報の表現
参考文献
公開資料
- Unicode Standard: About the Standard
- Unicode Standard: Technical Introduction
- Unicode Core Specification 17.0
- Unicode Standard Annex #15: Unicode Normalization Forms
- Unicode FAQ: Specifications
- IEEE 754 Standard
- NIST Post-Quantum Cryptography Standardization
- The Opus Codec
- AV1 Image Format Specification
- ECMA-412: Service-oriented Device Communication Protocol
解説・補助資料
アルゴリズムとデータ構造
参考文献
アルゴリズム総覧側の参考資料
総合的なアルゴリズム教材
- Jeff Erickson, Algorithms
https://jeffe.cs.illinois.edu/teaching/algorithms/index.html - MIT OpenCourseWare, 6.006 Introduction to Algorithms
https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/ - MIT OpenCourseWare, 6.006 Lecture Notes
https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/resources/lecture-notes/ - cp-algorithms
https://cp-algorithms.com/
探索・ソート
- MIT OCW, Breadth-First Search / DFS / Weighted Shortest Paths を含む講義ノート一覧
https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/pages/lecture-notes/ - MIT OCW, Counting Sort, Radix Sort, Lower Bounds for Sorting
https://live.ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/resources/lecture-7-counting-sort-radix-sort-lower-bounds-for-sorting/ - cp-algorithms, Binary Search
https://cp-algorithms.com/num_methods/binary_search.html - cp-algorithms, Sorting by comparison / related topics top page
https://cp-algorithms.com/
グラフアルゴリズム
- MIT OCW, Lecture 16: Dijkstra
https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/resources/lecture-16-dijkstra/ - MIT OCW, Lecture 19: Dynamic Programming I: Fibonacci, Shortest Paths
https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/resources/lecture-19-dynamic-programming-i-fibonacci-shortest-paths/ - cp-algorithms, Breadth First Search
https://cp-algorithms.com/graph/breadth-first-search.html - cp-algorithms, Depth First Search
https://cp-algorithms.com/graph/depth-first-search.html - cp-algorithms, Dijkstra
https://cp-algorithms.com/graph/dijkstra.html - cp-algorithms, Bellman-Ford
https://cp-algorithms.com/graph/bellman_ford.html - cp-algorithms, Floyd-Warshall
https://cp-algorithms.com/graph/all-pair-shortest-path-floyd-warshall.html - cp-algorithms, Minimum Spanning Tree - Kruskal
https://cp-algorithms.com/graph/mst_kruskal.html - cp-algorithms, Prim
https://cp-algorithms.com/graph/mst_prim.html - cp-algorithms, Strongly Connected Components and Condensation Graph
https://cp-algorithms.com/graph/strongly-connected-components.html
動的計画法・貪欲法・分割統治
- Jeff Erickson, Dynamic Programming chapter
https://jeffe.cs.illinois.edu/teaching/algorithms/book/03-dynprog.pdf - Jeff Erickson, Greedy Algorithms chapter
https://jeffe.cs.illinois.edu/teaching/algorithms/book/04-greedy.pdf - Jeff Erickson, Recursion chapter
https://jeffe.cs.illinois.edu/teaching/algorithms/book/01-recursion.pdf - MIT OCW lecture notes on dynamic programming
https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/resources/lecture-notes/
文字列アルゴリズム
- cp-algorithms, Prefix Function / KMP
https://cp-algorithms.com/string/prefix-function.html - cp-algorithms, String Hashing
https://cp-algorithms.com/string/string-hashing.html - cp-algorithms, Suffix Array
https://cp-algorithms.com/string/suffix-array.html
データ構造と一緒に読む資料
- cp-algorithms, Disjoint Set Union
https://cp-algorithms.com/data_structures/disjoint_set_union.html - cp-algorithms, Segment Tree
https://cp-algorithms.com/data_structures/segment_tree.html - MIT OCW, Binary Trees / AVL / Heaps lecture notes
https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/resources/lecture-notes/
補助的に便利な資料
- VisuAlgo
https://visualgo.net/en - Princeton Algorithms, 4th Edition site
https://algs4.cs.princeton.edu/home/
参考文献の使い分け
- 体系的に学ぶ: Jeff Erickson, MIT OCW
- 個別アルゴリズムをすぐ引く: cp-algorithms
- 動きを直感で掴む: VisuAlgo
- 実装と理論の橋渡し: Princeton Algorithms
アルゴリズムとデータ構造側の参考資料
講義・教科書
- MIT OpenCourseWare: Introduction to Algorithms
- MIT Learn: Algorithms and Data Structures
- CLRS Introduction to Algorithms
- Algorithms by Sedgewick & Wayne
実装・演習寄り資料
形式言語とオートマトン
参考文献
- Michael Sipser, Introduction to the Theory of Computation
- John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation
- Aho, Lam, Sethi, Ullman, Compilers: Principles, Techniques, and Tools
計算可能性と計算量
参考文献
- Michael Sipser, Introduction to the Theory of Computation
- Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach
- Christos Papadimitriou, Computational Complexity
プログラミング言語
参考文献
- Benjamin C. Pierce, Types and Programming Languages
- Robert Harper, Practical Foundations for Programming Languages
- Michael L. Scott, Programming Language Pragmatics
- Rust Reference
- Java Language Specification
- Haskell 2010 Language Report
コンパイラ
参考文献
まず読む本
- Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools
- Keith Cooper, Linda Torczon, Engineering a Compiler
- Torben Ægidius Mogensen, Introduction to Compiler Design
仕様・実装寄り
- LLVM Documentation
- GCC Internals
- The Rust Compiler Development Guide
- Crafting Interpreters
- System V AMD64 ABI
読み進め方
- 最初の1冊なら
Crafting Interpreters - 体系的に理解するなら
Engineering a Compiler - 古典的な網羅性なら
Dragon Book - 実装に寄せるなら
rustc-dev-guideとLLVM Documentation
章ごとの主要出典マップ
| 章 | 主な戻り先 |
|---|---|
| 字句解析・構文解析 | Dragon Book, Mogensen, Crafting Interpreters |
| AST・意味解析 | Dragon Book, rustc-dev-guide |
| IR・最適化 | Engineering a Compiler, LLVM docs |
| コード生成・ABI | Engineering a Compiler, System V ABI, LLVM docs |
| JIT・VM | Crafting Interpreters, HotSpot / V8 design docs |
アセンブラ
参考文献
- Intel 64 and IA-32 Architectures Software Developer Manuals
- Arm Architecture Reference Manual for A-profile
- Agner Fog, Optimizing subroutines in assembly language
- Randall Hyde, The Art of Assembly Language
CPU
参考文献
公開資料
- Intel 64 and IA-32 Architectures Software Developer’s Manual
- ARM Architecture Reference Manual
- RISC-V International Specifications
教科書・講義
- Computer Systems: A Programmer’s Perspective
- Operating Systems: Three Easy Pieces (OSTEP)
- Patterson & Hennessy - Computer Architecture (RISC-V Edition)
性能・実装寄り資料
- What Every Programmer Should Know About Memory
- Brendan Gregg - Systems Performance
- Agner Fog - CPU Microarchitecture
- WikiChip - CPU Database
メモリ
参考文献
公開資料
- Linux Kernel Documentation: Memory Management
- Linux Kernel Documentation: Memory Management Internals
- Intel 64 and IA-32 Architectures Software Developer Manual
- AMD64 Architecture Programmer’s Manual
- GC Tuning Guide(Oracle)
教科書・解説
- Operating Systems: Three Easy Pieces (OSTEP)
- What Every Programmer Should Know About Memory
- The JVM Performance Optimization Guide
OS
参考資料
古典教科書・オンライン公開教科書
-
Operating Systems: Three Easy Pieces (OSTEP) — Remzi & Andrea Arpaci-Dusseau
- https://pages.cs.wisc.edu/~remzi/OSTEP/
- 仮想化・並行性・永続性の三本柱で構成、無料で完全版 PDF 入手可
-
Modern Operating Systems (4th Edition) — Andrew S. Tanenbaum, Herbert Bos
- https://archive.org/details/modernoperatings0000tane
- OS 教科書のデファクト、歴史とシステムデザインのバランス良し
-
Operating System Concepts (10th Edition) — Silberschatz, Galvin, Gagne
- https://www.os-book.com/
- 「恐竜本」。業界標準、アルゴリズム解説が丁寧
-
Computer Systems: A Programmer’s Perspective (CSAPP, 3rd Ed.) — Bryant & O’Hallaron
- https://csapp.cs.cmu.edu/
- 低レベル視点、リンキング、例外制御、並行性
-
Operating Systems: Design and Implementation (3rd Ed.) — Tanenbaum & Woodhull
- MINIX 3 のソースコード付きで「実装を読む」教科書
-
The Design and Implementation of the FreeBSD Operating System (2nd Ed.) — McKusick et al.
- BSD 系列 OS の決定版
-
Understanding the Linux Kernel (3rd Ed.) — Bovet & Cesati
- Linux 2.6 詳細、古いが今も有用
-
Linux Kernel Development (3rd Ed.) — Robert Love
-
Windows Internals (8th Ed.) — Mark Russinovich, David Solomon, Alex Ionescu
-
Mac OS X Internals: A Systems Approach — Amit Singh
- XNU と Darwin の詳細、やや古いが基礎は有効
-
Writing an OS in Rust — Philipp Oppermann
- https://os.phil-opp.com/
- Rust で自作OSを書くチュートリアル、最高の入門
-
Operating Systems: From 0 to 1 — Tu, Do Hoang
- 低レベルから OS を構築する実践的書
Linux カーネル公式・コミュニティ
-
The Linux Kernel Archives
- https://www.kernel.org/
- ソースコード、リリースノート
-
The Linux Kernel Documentation
- https://docs.kernel.org/
- カーネル内蔵ドキュメント、サブシステムごと
-
Memory Management — Kernel Documentation
-
CFS Scheduler
-
- https://lwn.net/
- 最も深い Linux カーネル技術記事。有料だが古い記事は無料
-
Linux Kernel Newbies
- https://kernelnewbies.org/
- 初学者向け、バージョン別変更点
-
Linux Insides(Rus)
- https://0xax.gitbooks.io/linux-insides/content/
- カーネル起動からの詳細解説
-
Linux Weekly News — Kernel Index
Windows 公式・実装
-
Microsoft Learn — Windows Kernel-Mode Driver Architecture
-
Sysinternals Suite
- https://learn.microsoft.com/en-us/sysinternals/
- Process Explorer, Procmon, Autoruns 等のツールと解説
-
Windows Internals Official Reference
-
WSL Documentation
Apple / macOS / XNU
-
Kernel Programming Guide (Apple, Archive)
-
Apple Platform Security Guide
-
XNU Source Code (Apple OSS Distributions)
-
Darwin Source Browser
-
The Mach Kernel — Tech Overview
プロセス・スレッド・並行性
-
POSIX Threads Programming (LLNL)
-
pthreads(7) — Linux man pages
-
POSIX.1-2024 Standard
-
Foundations of the C++ Concurrency Memory Model — Boehm & Adve
-
C++11 Language Extensions — Concurrency (ISO)
-
The Art of Multiprocessor Programming — Herlihy & Shavit
- 並行データ構造のバイブル
-
Little Book of Semaphores — Allen Downey
メモリ管理・MMU・CPU
-
Intel® 64 and IA-32 Architectures Software Developer’s Manual
-
ARM Architecture Reference Manual — ARMv8-A
-
RISC-V Privileged ISA
-
What Every Programmer Should Know About Memory — Ulrich Drepper
-
Virtual Memory in Operating System — GeeksforGeeks
ファイルシステム・ストレージ
-
Understanding Linux Filesystems: Inodes, Block Sizes — Linux Journal
-
ext4 Documentation (kernel.org)
-
XFS Documentation
-
Btrfs Documentation
-
OpenZFS Documentation
-
Apple File System (APFS) Reference
-
NTFS Overview — Microsoft Learn
サイバーセキュリティ
-
SELinux Project Wiki
-
AppArmor Official
-
Seccomp BPF — kernel.org
-
capabilities(7) — man7
-
Kernel Self-Protection Project (KSPP)
-
Apple Platform Security (PDF)
仮想化・コンテナ
-
KVM Documentation
-
QEMU Documentation
-
Xen Project Documentation
-
Open Container Initiative (OCI)
-
OCI Runtime Specification
-
Kubernetes Documentation
-
Firecracker (AWS)
-
Cilium & eBPF
スケジューリング・性能
-
CFS: Completely Fair Scheduler — Opensource.com
-
Inside the Linux 2.6 Completely Fair Scheduler — IBM Developer
-
Brendan Gregg’s Blog
- https://www.brendangregg.com/
- 性能分析の第一人者、Linux Performance ページ必読
-
Linux Performance (Brendan Gregg)
-
Systems Performance (Brendan Gregg)
- 書籍、システム性能工学の集大成
ネットワーキング
-
RFC 9293 — Transmission Control Protocol
-
RFC 9000 — QUIC
-
io_uring Whitepaper — Jens Axboe
-
io_uring(7) — man pages
-
Linux Kernel Networking — Rami Rosen
- カーネル ネットワークスタックの実装書籍
ブート・初期化
モバイルOS
-
Android Open Source Project (AOSP)
-
AOSP — Kernel Overview
-
Android Runtime (ART)
-
iOS Security Guide
-
HarmonyOS Developer Documentation
RTOS・組み込み
-
FreeRTOS Documentation
-
Zephyr Project Documentation
-
QNX Neutrino RTOS Documentation
-
Yocto Project
-
PREEMPT_RT Wiki
OS の歴史
-
A Quarter Century of Unix — Peter H. Salus
- Unix 歴史の決定版
-
The Unix Heritage Society
-
History of Unix — Bell Labs
-
Multics History
-
Computer History Museum — Software
日本語資料
-
「30日でできる!OS自作入門」 — 川合秀実
- 日本語で OS を自作する最良の入門書
-
「作って理解するOS」 — 林高勲
- モダンな自作 OS 本
-
「詳解 Linux カーネル 第3版」 — Daniel P. Bovet, Marco Cesati 著、高橋浩和ほか訳
- 日本語訳で深い Linux カーネル学習
-
「Linuxカーネル Hacks」 — 池田 宗広ほか
- 実践 Linux カーネル改造
-
「Goならわかるシステムプログラミング」 — 渋川よしき
- 現代的な視点からのシステムプログラミング
-
「詳解 Linux カーネル」Oracle Linux 資料
その他有用なリソース
-
Kernel.org — Active Kernel Releases
-
The Linux Foundation — Training - https://training.linuxfoundation.org/
-
OSDev.org Wiki - https://wiki.osdev.org/ - 自作OSコミュニティのWiki、実装詳細の宝庫
-
MIT 6.828 Operating System Engineering - https://pdos.csail.mit.edu/6.828/ - xv6(UNIX v6 の再実装)を題材にした MIT の OS 講義
-
Stanford CS140 Operating Systems - https://cs140.stanford.edu/
-
UC Berkeley CS162 - https://cs162.org/
-
Ask HN / Reddit r/osdev, r/kernel - コミュニティ Q&A
-
The morning paper (Adrian Colyer, now OK Colyer) - 重要論文の毎日解説、OS/分散系多数
-
USENIX Conference Proceedings - https://www.usenix.org/ - OSDI, ATC, NSDI 等の OS 系トップカンファレンス
-
ACM SIGOPS / SOSP - https://www.sigops.org/
Windows vs macOS vs Linux の比較記事
-
Educative — Differences between Windows, macOS, and Linux - https://www.educative.io/answers/differences-between-windows-macos-and-linux-operating-systems
-
GeeksforGeeks — Operating Systems Tutorial - https://www.geeksforgeeks.org/operating-systems/
-
TutorialsPoint — Operating System Architecture - https://www.tutorialspoint.com/operating_system/os_architecture.htm
-
FreeCodeCamp — Introduction to Operating Systems - https://www.freecodecamp.org/news/an-introduction-to-operating-systems/
-
Scaler Topics — OS Architectures - https://www.scaler.com/topics/architectures-of-operating-system/
-
Wikipedia — Operating System - https://en.wikipedia.org/wiki/Operating_system
## 参考資料(追加分・2025-2026 最新)
Linux 6.x 最新リリース関連
-
Linux 6.6 Release Notes — KernelNewbies
https://kernelnewbies.org/Linux_6.6 — EEVDF 完全解説 -
Linux 6.12 Release — KernelNewbies (PREEMPT_RT完全統合)
https://kernelnewbies.org/Linux_6.12 -
Phoronix — Linux Kernel Highlights For 2025
https://www.phoronix.com/news/Linux-Kernel-Highlights-2025 -
EEVDF Scheduler Documentation
https://docs.kernel.org/scheduler/sched-eevdf.html
io_uring
-
Efficient IO with io_uring — Jens Axboe
https://kernel.dk/io_uring.pdf -
Kernel Recipes 2024: Efficient zero-copy networking using io_uring
https://kernel-recipes.org/en/2024/schedule/efficient-zero-copy-networking-using-io_uring/ -
io_uring for High-Performance DBMSs (arXiv 2024)
https://arxiv.org/html/2512.04859v1 -
liburing examples (GitHub)
https://github.com/axboe/liburing
Rust for Linux
-
Rust for Linux 公式
https://rust-for-linux.com/ -
Apple AGX GPU driver — Asahi Linux Rust
https://rust-for-linux.com/apple-agx-gpu-driver -
Asahi Linux 開発者離職報道 — The Register
https://www.theregister.com/2025/03/20/asahi-linux-asahi-lina/ -
LWN.net — Rust in Linux シリーズ
https://lwn.net/Articles/908347/
eBPF / BPF
-
eBPF.io — Applications landscape
https://ebpf.io/applications/ -
Tetragon — Runtime Security Observability
https://tetragon.io/ -
sched_ext documentation
https://docs.kernel.org/scheduler/sched-ext.html -
Linux Observability with BPF — Book (David Calavera)
O’Reilly, 2019 -
BPF Performance Tools — Brendan Gregg (Book + Site)
https://www.brendangregg.com/bpf-performance-tools-book.html
Confidential Computing
-
Confidential VMs Explained (ACM SIGMETRICS 2025)
https://dse.in.tum.de/wp-content/uploads/2024/11/sigmetrics25summer-CVM-Explained.pdf -
Google Cloud Confidential Computing Updates
https://cloud.google.com/blog/products/identity-security/new-confidential-computing-updates-for-more-hardware-security-options -
Intel TDX White Papers
https://www.intel.com/content/www/us/en/developer/tools/trust-domain-extensions/overview.html -
AMD SEV-SNP Technical Documentation
https://www.amd.com/system/files/TechDocs/SEV-SNP-strengthening-vm-isolation-with-integrity-protection-and-more.pdf -
ARM CCA Architecture Reference Manual
https://developer.arm.com/documentation/den0126/latest -
IETF RATS (Remote Attestation Architecture)
https://datatracker.ietf.org/wg/rats/documents/
WebAssembly / WASI
-
WASI Preview 2 リリース — Bytecode Alliance
https://bytecodealliance.org/articles/WASI-0.2 -
Component Model Documentation
https://component-model.bytecodealliance.org/ -
wasmtime Documentation
https://docs.wasmtime.dev/ -
WasmEdge — eBPF Runtime for Edge Computing
https://wasmedge.org/ -
containerd WASM シム (runwasi)
https://github.com/containerd/runwasi
形式検証
-
seL4 公式
https://sel4.systems/ -
Comprehensive Formal Verification of seL4 (SOSP 2009)
https://sel4.systems/Research/pdfs/comprehensive-formal-verification-os-microkernel.pdf -
CompCert 公式
https://compcert.org/ -
Isabelle Proof Assistant
https://isabelle.in.tum.de/ -
Lean 4 Documentation
https://lean-lang.org/ -
TLA+ Site (Lamport)
https://lamport.azurewebsites.net/tla/tla.html
プラットフォーム最新情報
-
Apple Intelligence — Machine Learning Research
https://machinelearning.apple.com/research/introducing-apple-foundation-models -
Private Cloud Compute Security Research — Apple
https://security.apple.com/blog/pcc-security-research/ -
Windows 11 24H2 — Microsoft Learn
https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-24h2 -
Recall Privacy and Control — Microsoft Support
https://support.microsoft.com/en-us/windows/privacy-and-control-over-your-recall-experience-d404f672-7647-41e5-886c-a3c59680af15 -
Android 15 新機能 — Google Blog
https://blog.google/products/android/android-15-google-io-2024/ -
Android Theft Protection
https://blog.google/products/android/android-theft-protection/
CXL / メモリ技術
-
Linux CXL Documentation
https://docs.kernel.org/driver-api/cxl/index.html -
CXL Consortium — Specifications
https://www.computeexpresslink.org/specifications -
DAMON — Data Access Monitor
https://sjp38.github.io/post/damon/ -
Linux Kernel 6.11 DAMON Self-Tuning — Phoronix
https://www.phoronix.com/news/DAMON-Self-Tuned-Memory-Tiering
BBRv3 / QUIC
-
BBR v3 Algorithm Draft — IETF
https://datatracker.ietf.org/doc/draft-ietf-ccwg-bbr/ -
BBRv3 Introduction — IETF 117
https://www.ietf.org/proceedings/117/slides/slides-117-ccwg-bbrv3-algorithm-bug-fixes-and-public-internet-deployment-00
Chaos Engineering
-
Chaos Mesh — Kubernetes Chaos Engineering
https://chaos-mesh.org/ -
Principles of Chaos Engineering
https://principlesofchaos.org/ -
Linux Fault Injection Framework
https://docs.kernel.org/fault-injection/fault-injection.html
cgroup v2 / namespaces
-
Control Group v2 Documentation
https://docs.kernel.org/admin-guide/cgroup-v2.html -
namespaces(7) — Linux manual page
https://man7.org/linux/man-pages/man7/namespaces.7.html -
rootless containers — rootlesscontaine.rs
https://rootlesscontaine.rs/
章ごとの主要出典マップ
| 章・論点 | 主に戻る資料 |
|---|---|
| プロセス / スレッド / スケジューリング | OSTEP, CSAPP, docs.kernel.org scheduler, Windows Internals |
| メモリ管理 | OSTEP, docs.kernel.org mm, Intel/AMD manuals |
| ファイルシステム / I/O | FreeBSD book, docs.kernel.org, LWN |
| ネットワークスタック | RFC 群, eBPF.io, Linux networking 資料 |
| セキュリティ / 保護 | Apple Security Guide, AOSP, NIST, kernel docs |
| 仮想化 / コンテナ | KVM docs, OCI, cgroup v2 docs, namespaces(7) |
| ブート / 初期化 | UEFI spec, GRUB manual, systemd docs |
| 最新補講 | kernel.org releases, Rust for Linux, io_uring, CXL, WASI, Confidential Computing |
ネットワーク
参考文献
RFC(標準文書)
- RFC 1034: Domain Names - Concepts and Facilities
- RFC 9293: Transmission Control Protocol (TCP)
- RFC 768: User Datagram Protocol (UDP)
- RFC 9110: HTTP Semantics
- RFC 9112: HTTP/1.1
- RFC 9113: HTTP/2
- RFC 9114: HTTP/3
- RFC 9000: QUIC
- RFC 8446: TLS 1.3
- RFC 5246: TLS 1.2
書籍・教材
- Kurose, J. & Ross, K. (2021). Computer Networking (8th ed.). Pearson.
- Stevens, W. R., Fenner, B., & Rudoff, A. M. (2004). UNIX Network Programming (3rd ed.). Addison-Wesley.
- Stanford CS144: Computer Networking
- High Performance Browser Networking
オンライン資料
ツール・リソース
- tcpdump, Wireshark(パケットキャプチャ・解析)
- curl, HTTPie(HTTP テスト)
- dig, nslookup(DNS 問い合わせ)
- traceroute, mtr(経路・遅延測定)
- iperf(スループット計測)
- netperf(詳細ネットワーク性能測定)
章ごとの主要出典マップ
| 章・論点 | 主に戻る資料 |
|---|---|
| DNS | RFC 1034, Cloudflare Learning |
| TCP / UDP | RFC 9293, RFC 768, Stanford CS144 |
| HTTP/1.1 / 2 / 3 | RFC 9110, 9112, 9113, 9114 |
| QUIC | RFC 9000, QUIC WG |
| TLS | RFC 8446 |
| ソケット実装 | UNIX Network Programming, CS144 |
データベース
参考文献
公開資料
- PostgreSQL Documentation
- PostgreSQL: Indexes
- PostgreSQL: EXPLAIN
- PostgreSQL: Transaction Isolation
- PostgreSQL: MVCC Introduction
- PostgreSQL: Concurrency Control
- SQLite Query Planner
- SQLite Write-Ahead Logging
講義・教科書
並行性と分散システム
参考文献・さらに深く学ぶために
公開情報から見た分散システムの現実
分散システムの議論は、どうしても「すごい仕組み」の話に寄りがちですが、MIT 6.5840、Raft 論文、FLP、CAP の古典を読むと、中心にあるのは派手な最適化ではなく制約の受け入れです。
1. まず故障モデルを決める
同じ「落ちる」でも、
- ノード停止
- 遅延
- パケット喪失
- 重複配信
- ネットワーク分断
- 時計ずれ
では設計がまったく変わります。公開資料では、アルゴリズムの強さは万能性ではなく「どの故障まで面倒を見るか」で定義されます。設計時にここを曖昧にすると、テストも監視もぶれます。
2. 合意形成は「正解を素早く出す」技術ではない
Raft や Paxos は、全員が常に即座に同じ値へ収束することを保証する魔法ではありません。多数派が取れる範囲で、ログ順序と安全性を保つための仕組みです。だから、
- リーダー選出が頻発する環境
- ディスクやネットワークが不安定な環境
- タイムアウト調整が雑な環境
では、理屈上正しくても実務では不安定になります。
3. exactly-once は配信だけでは成立しない
メッセージング基盤が exactly-once をうたっていても、アプリケーションの副作用まで含めて一回きりになるとは限りません。結局は、
- 冪等な API 設計
- 重複検知キー
- Outbox / Inbox
- 再試行戦略
が必要です。分散では「再送されても壊れない」設計の方が、「絶対に一回だけ」を信じるより現実的です。
4. 整合性モデルは API 契約に書くべき
線形化可能、逐次整合、因果整合、結果整合の違いは、理論だけの話ではありません。ユーザーが
- 直前の書き込みを必ず読めると思うのか
- 別リージョンでは遅れて見えることを許すのか
- カウンタや在庫で重複更新をどう扱うのか
を明示しないと、障害時の「仕様かバグか」が判定できません。
5. 運用まで含めて初めて分散システム
本番で重要なのは、アルゴリズム名よりも、
- どのメトリクスを追うか
- どのログが残るか
- 障害時にどこでトリアージするか
- 手動復旧の手順があるか
です。分散システムは、理論を学んで終わりではなく、観測と復旧まで含めて成立します。
古典論文
- Lamport, L. (1978). “Time, Clocks, and the Ordering of Events in a Distributed System”
- Fischer, M. J., Lynch, N. A., & Paterson, M. S. (1985). “Impossibility of Distributed Consensus with One Faulty Process”
- Lamport, L. (1998). “The Part-time Parliament”
- Chandra, T. D., Griesemer, R., & Redstone, J. (2007). “Paxos Made Live”
- Gilbert, S., & Lynch, N. (2002). “Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services”
Raft & 合意形成
- Ongaro, D., & Ousterhout, J. (2014). “In Search of an Understandable Consensus Algorithm”
- Raft Visualization
- MIT 6.5840 Distributed Systems
並行性とロックフリー
- Herlihy, M., & Shavit, N. (2011). “The Art of Multiprocessor Programming”
- Preshing on Programming - Memory Reordering
- Jeff Preshing - Acquire and Release Semantics
CRDT
- Shapiro, M., Preguiça, N., Baquero, C., & Zawirski, M. (2011). “Conflict-free Replicated Data Types”
- Yjs CRDT Library
分散システム実装
- Kleppmann, M. (2017). “Designing Data-Intensive Applications”
- Tanenbaum, A., & Van Steen, M. (2006). “Distributed Systems”
実装参考
- etcd: https://etcd.io/docs/
- Kafka: https://kafka.apache.org/documentation/
- CockroachDB: https://www.cockroachlabs.com/docs/
- Cassandra: https://cassandra.apache.org/doc/latest/
サイバーセキュリティ
参考文献
認証・認可
- NIST SP 800-63-4: Digital Identity Guidelines
- NIST SP 800-63B-4: Authentication and Authenticator Management
- OWASP Authentication Cheat Sheet
- OWASP Authorization Cheat Sheet
実装ガイド・暗号
- OWASP Cryptographic Storage Cheat Sheet
- The Crypto Handbook: Developing and Maintaining Cryptographic Designs
Web セキュリティ実装
フレームワーク・標準
- NIST Cybersecurity Framework
- NIST SP 800-207 Zero Trust Architecture
- ISO 27001 Information Security Management
TLS・プロトコル
PKI・証明書
OAuth・OIDC・SAML
最新動向・運用
章ごとの主要出典マップ
| 章・論点 | 主に戻る資料 |
|---|---|
| 認証 / MFA / passkey | NIST SP 800-63-4, 63B-4, Passkeys.dev |
| 認可 | OWASP Authorization Cheat Sheet |
| 暗号ストレージ | OWASP Cryptographic Storage Cheat Sheet, RFC 6234 |
| TLS / PKI | RFC 8446, RFC 5280, Let’s Encrypt docs |
| OAuth / OIDC / SAML | RFC 9700, OIDC Core, OASIS SAML |
| Zero Trust | NIST SP 800-207, CISA ZTMM |
アプリケーションアーキテクチャ
D.4 参考リソース
- Alex Xu, “System Design Interview – An Insider’s Guide”
- System Design Primer(GitHub)
- High Scalability
- Engineering Blogs
参考文献
古典的必読書
- Gang of Four, “Design Patterns”(1994)— デザインパターン原典
- Martin Fowler, “Patterns of Enterprise Application Architecture”(2002)
- Eric Evans, “Domain-Driven Design”(2003)— DDD バイブル
- Robert C. Martin, “Clean Architecture”(2017)
- Sam Newman, “Building Microservices” 2nd Ed.(2021)
- Martin Kleppmann, “Designing Data-Intensive Applications”(2017)— 分散システム必読
- Gregor Hohpe, “Enterprise Integration Patterns”(2003)
- Vaughn Vernon, “Implementing Domain-Driven Design”(2013)
- Neal Ford et al., “Fundamentals of Software Architecture”(2020)
- Neal Ford et al., “Software Architecture: The Hard Parts”(2021)
オンラインリソース
- Microsoft Cloud Design Patterns
- AWS Architecture Center
- Google Cloud Architecture Framework
- Martin Fowler’s Website
- Microservices.io(Chris Richardson)
- High Scalability Blog
- System Design Primer
DDD
イベント駆動・CQRS
マイクロサービス
- Microservices(Martin Fowler)
- Monolith First
- The Twelve-Factor App
- Chris Richardson - Pattern: Microservice Architecture
API 設計
可観測性
サイバーセキュリティ
データ
- Database Internals(Alex Petrov)
- Designing Data-Intensive Applications(DDIA)
- Foundations of Data Engineering
分散システム
Kubernetes・クラウドネイティブ
面接対策
- Alex Xu, “System Design Interview” Vol. 1 & 2
- Grokking the System Design Interview
日本語資料
ドメイン駆動設計入門成瀬 允宣マイクロサービスアーキテクチャ 第2版Sam Newman 著、佐藤 直生 監訳Clean Architecture 達人に学ぶソフトウェアの構造と設計Robert C. Martin 著、角 征典 / 高木 正弘 訳実践ドメイン駆動設計Vaughn Vernon 著データ指向アプリケーションデザインMartin Kleppmann 著
ブログ・ポッドキャスト
- Martin Fowler’s Blog
- Thoughtworks Technology Radar
- InfoQ
- The Morning Paper (Adrian Colyer)
- Software Engineering Daily
章ごとの主要出典マップ
| 章・論点 | 主に戻る資料 |
|---|---|
| モノリス / マイクロサービス | Martin Fowler, Microservices.io, Sam Newman |
| DDD / 境界づけられたコンテキスト | Eric Evans, Vaughn Vernon, DDD Reference |
| API 契約 | OpenAPI, GraphQL, gRPC |
| イベント駆動 / CQRS | Fowler, Kafka, EventStoreDB |
| 可観測性 / 運用 | OpenTelemetry, Google SRE Book |
| クラウド設計判断 | AWS Architecture Center, Azure Patterns, Google Cloud Architecture Framework |
ソフトウェア工学
参考文献
- Ian Sommerville, Software Engineering
- Steve McConnell, Code Complete
- Martin Fowler, Refactoring
- Jez Humble and David Farley, Continuous Delivery
- Google, Site Reliability Engineering
GPU
参考文献
公開資料
- CUDA C++ Programming Guide
- CUDA C++ Best Practices Guide
- NVIDIA MIG User Guide
- NVIDIA MIG Supported GPUs
- ROCm Documentation
- ROCm Programming Guide
- What is ROCm?
- Apple Metal Resources
- Compute Passes
- MTLComputeCommandEncoder
- What is Vulkan?
- Khronos Vulkan Guide
- What Vulkan Can Do
- What is SPIR-V
- Compute Shader Tutorial for Vulkan
- Pipelines and Shaders with Direct3D 12
- NVIDIA TensorRT Documentation
- NVIDIA Triton Inference Server
- vLLM Documentation
実装・補助資料
章ごとの主要出典マップ
| 章・論点 | 主に戻る資料 |
|---|---|
| CUDA 実行モデル | CUDA Programming Guide |
| GPU 最適化 | CUDA Best Practices Guide |
| AMD GPU プログラミング | ROCm Programming Guide |
| Apple GPU / Metal | Metal Resources, Compute Passes, MTLComputeCommandEncoder |
| Vulkan / 低レベル API | Vulkan Guide, What is Vulkan, What is SPIR-V |
| GPU 分割 / マルチテナンシー | MIG User Guide, GPU Operator docs |
| グラフィックスパイプライン | Direct3D 12 docs, Vulkan Guide, Metal docs |
| LLM 推論 | TensorRT docs, Triton docs, vLLM docs |
| GPU 最適化の進め方 | CUDA Programming Guide, CUDA Best Practices Guide |
| API 別コードモデル | CUDA Programming Guide, ROCm docs, Metal docs, Vulkan Guide |
GPU プログラミングモデル実践ガイド
参考文献
公開資料
- CUDA C++ Programming Guide
- ROCm Documentation
- ROCm Programming Guide
- Apple Metal Resources
- Compute Passes
- MTLComputeCommandEncoder
- Khronos Vulkan Guide
- What is Vulkan?
- What is SPIR-V
GPU 最適化実践ガイド
参考文献
公開資料
LLM 推論と GPU サービング実践ガイド
参考文献
公開資料
- NVIDIA TensorRT Documentation
- NVIDIA Triton Inference Server
- vLLM Documentation
- CUDA C++ Programming Guide
- CUDA C++ Best Practices Guide
まとめ
この参考文献集は、各章を深掘りするときの入口です。本文で気になったテーマがあれば、ここから関連する公開資料や学習資料へ戻って理解を広げていけます。