Yanyan's Wiki 操作系统 (2023)



1. Algorithms and Theory Computer Science

  • Introduction to the Theory of Computation (Michael Sipser)
  • Heuristic Search: Theory and Applications (Stefan Edelkamp and Stefan Schrödl)
  • Combinatorial Optimization: Theory and Algorithms (Bernhard Korte and Jens Vygen)

2. Logic and Programming Language Foundations

  • Logic in Computer Science: Modelling and Reasoning about Systems (Michael Huth and Mark Ryan)
  • Software Foundations (Benjamin C. Pierce, et al.)
    • Volume I: Logic Foundations
    • Volume II: Programming Language Foundations

3. Programming Languages Practices, Tools, and Techniques

Find your own: C/C++, Rust, Python, Vim, Git, Tex, ... Read a lot of them! Examples:

  • Manuals of GCC, GDB, binutils, ...; Architectural references and language specifications (Java Virtual Machine, ECMAScript, ...)
  • The TeXbook (Donald E. Knuth)
  • Is Parallel Programming Hard, And, If So, What Can You Do About It? (The "perfbook"; Paul E. McKenney Ed)
  • Systems Performance: Enterprise and the Cloud (Brendan Gregg)

4. Classical Computer Systems

  • Computer Systems: A Programmer's Perspective (Randal E. Bryant and David R. O'Hallaron)
  • Computer Architecture: A Quantitative Approach (John Hennessy and David Patterson)
  • Operating Systems: Three Easy Pieces (Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau)

5. Compilers

  • Crafting Interpreters (Robert Nystrom)

6. Software and Its Engineering

  • Software Abstractions: Logic, Language, and Analysis (The "Alloy Book"; Daniel Jackson)
  • Software Design for Flexibility: How to Avoid Programming Yourself into a Corner (Chris Hanson and Gerald Jay Sussman)
  • Software Reliability Methods (Doron A. Peled)

7. Conducting Research

  • The Craft of Research (Wayne C. Booth, et al.)
  • 数学之英文写作 (汤涛、丁玖)
Creative Commons License    苏 ICP 备 2020049101 号