首頁技術(shù)文章正文

讓Linux和C/C++工程師肆意飽覽的十二本群書

更新時(shí)間:2018-01-05 來源:黑馬程序員 瀏覽量:

人類的成長和進(jìn)步是離不開書籍的。那是我們進(jìn)步的階梯,成功的基石。程序員也不外如是。然而,哪些才能真正的開卷有益,可以放心大膽的拿來肆意翻看呢。

現(xiàn)在每年增加的信息量比過去幾百年還要多,不過好書還是那么少,能經(jīng)得起時(shí)間考驗(yàn)的經(jīng)典書就更少了,每個(gè)領(lǐng)域的經(jīng)典書就那么幾本,作為初學(xué)者應(yīng)該首先看完該領(lǐng)域的經(jīng)典書,然后再看其他的流行好書。

選擇經(jīng)典,是因?yàn)檐Q身于這個(gè)站在光速上的互聯(lián)網(wǎng)時(shí)代,我們實(shí)在沒有時(shí)間花在爛書上,好書能更快更好的幫助我們理解內(nèi)容,好書是一種享受,你不會(huì)覺得讀書是一種辛苦。選擇英文書是因?yàn)椋@些經(jīng)典書的英文都寫得樸實(shí)、簡單,不超過大學(xué)四級(jí)的閱讀水平,長時(shí)間侵淫英文書可以為自己以后學(xué)習(xí)和工作打好基礎(chǔ)。在工作中,最新最好最的資料都是英文的。多多浸染,不無益處。

以下是不管怎么推薦和轉(zhuǎn)載都不過分好書。

Linux 入門

《Running Linux》 和 《Linux in a Nutshell》 都是很棒的 Linux 入門書,如果你是計(jì)算機(jī)專業(yè)出身,只需要這兩本書就可以了,這兩本書都包括一些初級(jí)系統(tǒng)管理內(nèi)容,Linux in a Nutshell 稍微難一點(diǎn),建議閱讀順序是先 Running Linux 后 Linux in a Nutshell.

系統(tǒng)管理和網(wǎng)絡(luò)

《UNIX System Administration Handbook 》可能是系統(tǒng)管理方面最權(quán)威的的一本大部頭百科全書式著作,第一版本是1989年發(fā)行的,以后一直是 Unix 系統(tǒng)管理的方面的經(jīng)典,其作者在2002年發(fā)布了對應(yīng)的 Linux Administration Handbook 第一版,然后又成了 Linux 系統(tǒng)管理的必讀,終于在2010年的時(shí)候作者把這兩本書合為一本 UNIX and Linux System Administration Handbook.

《Essential System Administration 》是另一個(gè) Unix/Linux 系統(tǒng)管理的經(jīng)典書,可以替代 UNIX and Linux System Administration Handbook,不過建議兩本都看看。

《TCP/IP Illustrated, Volume 1: The Protocols 》是理解 TCP/IP 協(xié)議的必讀經(jīng)典,書的內(nèi)容不涉及具體的網(wǎng)絡(luò)管理命令,也不討論如何架設(shè)各種服務(wù)器,主要討論 TCP/IP 各層協(xié)議是如何工作的,不管你是 System Administrator, Network Administrator, DevOps 還是 System Programmer 這本書都必讀,就算今天用 Django, Ruby on Rails 之類的框架編程也應(yīng)該了解一下底層 HTTP 協(xié)議是如何工作的,網(wǎng)絡(luò)包是如何一層一層的封裝、解封的。TCP/IP Illustrated 三部曲的另外兩本也很經(jīng)典,不過太窄太具體,除非你是 TCP/IP 協(xié)議設(shè)計(jì)者或網(wǎng)絡(luò)棧碼農(nóng),看 《TCP/IP Illustrated, Volume 2: The Implementation》的用處不是很大。

系統(tǒng)編程

《The UNIX Programming Environment 》是兩位 UNIX 大師 Brian W. Kernighan 和 Rob Pike 的合著,UNIX/Linux 編程入門的最好讀物,字里行間里浸透了 UNIX 的哲學(xué)和設(shè)計(jì)思想。

《The C Programming Language》 可能有人會(huì)問為啥學(xué) Unix/Linux 要懂 C 語言,C 是 Unix/Linux 的核心,想繼續(xù)深入理解 Unix/Linux 必須懂點(diǎn) C 語言,不然下面一些書沒法繼續(xù)讀,C 語言還是一種優(yōu)美、高效的語言,每個(gè)程序員都應(yīng)該會(huì)(個(gè)人觀點(diǎn))。

《Advanced Programming in the Unix Environment 》是 Unix/Linux 編程的經(jīng)典必讀書,被譽(yù)為業(yè)界圣經(jīng),Linux程序員必讀之作。Unix大師級(jí)作者 Richard Stevens 的巨著,事實(shí)上 Richard Stevens 的每本書都是巨著。

《Unix Network Programming》 是 Richard Stevens 另一巨著,這本經(jīng)典 Unix 網(wǎng)絡(luò)編程書可看作上面那本的補(bǔ)充。

編程還應(yīng)該包括 shell 編程,這里沒有單獨(dú)拿出來推薦是因?yàn)橐驗(yàn)樯厦嫱扑]的入門和系統(tǒng)管理書里面都或多或少包括了一些 shell 編程基礎(chǔ)知識(shí)。

操作系統(tǒng)原理和內(nèi)核

《Operating Systems: Design and Implementation》 是操作系統(tǒng)原理的經(jīng)典書,講系統(tǒng)原理的還有另一本經(jīng)典恐龍書 Operating System Concepts,我個(gè)人更喜歡前一本一些,理論加實(shí)踐,書的作者在大學(xué)教書的時(shí)候沒能找到滿意的操作系統(tǒng)來教學(xué)自己寫了一個(gè) Minix,Linus Torvalds 發(fā)現(xiàn) Minix 太簡單不實(shí)用自己寫了一個(gè) Linux,貌似牛人都有共同的特點(diǎn),不滿意就自己造一個(gè)~,修改 Minix 內(nèi)核是很有趣的事情,換工作后一直沒機(jī)會(huì)再玩 Minix.

《Linux Device Drivers 》是內(nèi)核編程的入門讀物,難得這本經(jīng)典書還是免費(fèi)的。

《Understanding the Linux Kernel》 是 Linux 內(nèi)核方面的經(jīng)典,看這本書之前最好看過一些上面講操作系統(tǒng)原理的書,不要指望看一遍就把這本書都搞懂,理解內(nèi)核難點(diǎn)的地方在于內(nèi)核之間的子系統(tǒng)是獨(dú)立又是交叉的,又缺少實(shí)際可運(yùn)行可修改的例子,不像 web 編程,改幾行代碼就可以立刻看到效果,所以內(nèi)核學(xué)習(xí)是個(gè)痛苦的過程,這本書有助于建立一幅完整的 Linux 內(nèi)核圖景。


本文版權(quán)歸黑馬程序員C/C++學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!


作者:黑馬程序員C/C++培訓(xùn)學(xué)院


首發(fā):http://c.itheima.com/


分享到:
在線咨詢 我要報(bào)名
和我們在線交談!