【Fitz】学习编程的一些“姿势”
说明:资料来自 jyy 的操作系统课。
大学的真正意义
大学的意义在于将已有知识和方法重新消化,为大家建立好“台阶”,在有限的时间里迅速赶上数十年来建立起的学科体系。
比如:破除“写操作系统很牛”的错误认识。因为操作系统就只是个 C 程序,只是需要“被正确告知”一些额外的知识,然后写代码、吃苦头,从而建立正确的“专业世界观”。
专业世界观
这样的“专业世界观”可能是如何debug?写模拟器的时候不知道哪条指令错了如何解决?该使用什么工具?等等。
这样的“专业世界观”的学习方法包括但不限于:
- 经典研究论文 (OSDI, SOSP, ATC, EuroSys, ...)
- 久经考验的经典教学材料 (xv6, OSTEP, CSAPP, ...)
- 海量的开源工具 (GNU 系列, qemu, gdb, ...)
- 第三方资料,慎用 (tutorials, osdev wiki, ...)
- RTFM, STFW
- Remember:
- Don't panic.
- The machine is always right.
- Get your hands dirty.
jyy 操作系统参考资料
教科书与参考资料
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