硬核计算机教材(黑书系列)
本书单涉及到较为“基础”的计算机知识,对于非科班转科班的同学,或者科班需要精进的同学,都是很好的学习材料。
- 《深入理解计算机系统CSAPP》
- 《计算机网络-自顶向下方法》
- 《算法导论》
- 《计算机组成与设计-硬件/软件接口》
- 《计算机程序的构造与解释SCIP》
- 《设计模式-可复用面向对象软件的基础》
- 《编译原理》龙书
Linux C/C++开发系列书籍
适用于想从事C++服务器后端开发的同学
初级
- 《UNIX环境高级编程》
- 《UNIX网络编程》
- 《C++ Primer》
- 《C和指针》
- 《C专家编程》
- 《C陷阱与缺陷》
- 《Effective C++》- Effective系列
- 《Essential C++》
高阶
- 《深入理解linux内核》
- 《STL源码剖析》
- 《Inside the C++ Object model》
- 《程序员的自我修养-链接、装载与库》
操作系统
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