【Fitz】學習程式設計的一些“姿勢”
阿新 • • 發佈:2022-05-28
說明:資料來自 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