飛龍的程序員書單 - 組原、OS、網絡

組原

深刻理解計算機系統web

簡單介紹一下,這本書包括組成原理和操做系統兩大部分知識。第2、三章學完以後,逆向就算是入門了。國內的教材不多有拿彙編和C語言對比教學的書籍,這樣的教學方法很實用。由於如今彙編不多用於寫程序了,主要大量用於反編譯;而C語言主要用於嵌入式開發,爲了性能緣由開發者要常常查看對應的彙編代碼。然而這些知識只是個導論,要想真正踏入逆向的大門,仍是要看看雪出的那幾本書。api

以後的第4、五章涉及了指令集和體系結構,講的很淺顯易懂,徹底不須要數電的基礎就能看懂。美中不足的一點是它拿y86做爲教學工具。y86雖然比起x86簡化了不少,但仍是屬於CISC,基本的指令類型有12種,非常使人頭疼。此外,這一部分的lab涉及到了HDL,然而相關語法須要本身去看,也是略有不足。網絡

操做系統部分沒什麼可挑剔的,進程、併發、IO與網絡爲了避免那麼抽象,特意採用posix api來作演示,是至關深刻淺出的。固然,一本導論性質的書不可能講的那麼詳細,須要的話仍是要看《apue》。併發

另外,這本書好像遺漏了兩個很重要的話題,組原部分少了總線,操做系統部分少了文件系統,因此仍是應該看別的書把它補上。app

計算機組成與設計工具

斯坦福校長寫的書。若是你受不了csapp中y86的繁瑣,來看這本吧。其中有一個簡單的用於教學的mips,只須要記住和實現5種指令,簡單吧。性能

OS

深刻理解計算機系統操作系統

現代操做系統計算機網絡

一本中規中矩的OS教科書,主要涉及到了進程、併發與鎖、IO、虛存、文件系統幾個方面。設計

30天自制操做系統

和上面那本不一樣,這本書不涉及到一些操做系統設計上的基本概念,而是涉及到boot和內核的一些知識,教你從頭開始實現一個操做系統,這是很是難能難得的。

網絡

計算機網絡

計算機網絡:自頂向下方法

這兩本書前者是自底向上,後者是自頂向下。能夠互相補充着看。另外不要再看謝希仁那本書了,那本書都是他讓手下的研究生一章一章湊的,沒有多大價值。

TCP/IP詳解 卷1:協議

TCP/IP詳解 卷2:實現

TCP/IP詳解 卷3:TCP事務協議、HTTP、NNTP和UNIX域協議

做爲TCP/IP的權威指南,這三本仍是挺晦澀難懂的。

HTTP權威指南

做爲一名開發者,咱們其實只須要關注傳輸層和應用層的東西。瞭解HTTP,對於一個web開發者來講,是極其有利的。至少能理清請求的前因後果,避免寫出來那種跳來跳去的實現。

圖解HTTP

圖解TCP/IP

若是上面那些大部頭看不下去了,看看下面這兩本,圖解有時候真的有奇效。

相關文章
相關標籤/搜索