硬核计算机教材(黑书系列)

本书单涉及到较为“基础”的计算机知识,对于非科班转科班的同学,或者科班需要精进的同学,都是很好的学习材料。

  1. 《深入理解计算机系统CSAPP》
  2. 《计算机网络-自顶向下方法》
  3. 《算法导论》
  4. 《计算机组成与设计-硬件/软件接口》
  5. 《计算机程序的构造与解释SCIP》
  6. 《设计模式-可复用面向对象软件的基础》
  7. 《编译原理》龙书

Linux C/C++开发系列书籍

适用于想从事C++服务器后端开发的同学

初级

  1. 《UNIX环境高级编程》
  2. 《UNIX网络编程》
  3. 《C++ Primer》
  4. 《C和指针》
  5. 《C专家编程》
  6. 《C陷阱与缺陷》
  7. 《Effective C++》- Effective系列
  8. 《Essential C++》

高阶

  1. 《深入理解linux内核》
  2. 《STL源码剖析》
  3. 《Inside the C++ Object model》
  4. 《程序员的自我修养-链接、装载与库》

操作系统

1、[OSTEP] Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Operating Systems: Three Easy Pieces. Arpaci-Dusseau Books, 2018.

2、[CSAPP] Randal E. Bryant and David R. O'Hallaron. Computer Systems: A Programmer's Perspective (3ed). Pearson, 2017.

课程推荐:南京大学蒋炎岩《操作系统:设计与实现》

UNIX/Linux

  • Jlevy Hollowa. The Art of Command Line.
  • Gerard Beekmans. Linux from Scratch.
  • Harley Hahn. Harley Hahn's Guide to Unix and Linux. McGraw-Hill Higher Education, 2008.
  • Michael Kerrisk. The Linux Programming Interface: A Linux and UNIX System Programming Handbook. No Starch Press, 2010.
  • W. Richard Stevens and Stephen A. Rago. Advanced Programming in the UNIX® Environment (3rd Edition). Addison-Wesley, 2013.

编程

  • Brian W. Kernighan and Dennis M. Ritchie. The C programming language (2nd Edition). Prentice Hall, 1998.
  • The CERT C Coding Standard: Rules for Developing Safe, Reliable, and Secure Systems. Software Engineering Institute of Carnegie Mellon University, 2016.
  • Sandeep.S. GCC-Inline-Assembly-HOWTO, 2003.

操作系统设计与实现

  • 陈海波、夏虞斌. 现代操作系统:原理与实现. 机械工业出版社, 2020.
  • John R. Levine. Linkers and Loaders. Morgan-Kauffman, 1999.
  • Robert Love. Linux Kernel Development: A Thorough Guide to the Design and Implementation of the Linux Kernel (3rd Edition). Addison-Wesley, 2010.
  • Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, and John S. Quarterman. The Design and Implementation of the 4.4BSD Operating System. Addison-Wesley Longman, 1996.

开源操作系统实现

  • xv6,十分精简优美的 UNIX 实现
  • Plan 9,来自 Bell Labs 的著名原型操作系统
  • seL4,在抽象层上构建安全的微内核操作系统内核
  • Fuchsia,Google 的微内核操作系统,基于 Zircon 微内核
  • OpenHarmony,“鸿蒙” 操作系统
  • Linux Kernel,巨无霸项目 (新手请绕行)
  • Android Open Source Project (AOSP),Android 系统栈

Finally, The Friendly Manual

  • Linux manpages (tldr, man, info, ...): man7.org
  • Bourne-Again Shell (bash)
  • GNU Compiler Collection (GCC)
  • GNU Debugger (gdb)
  • Binutils (ld, as, objdump, and more)
  • GNU Make