Linux學習路線及網路程式設計經典書籍
Linux 學習路線
1. 《鳥哥的linux私房菜》
鳥哥的linux私房菜分為《鳥哥的linux私房菜 基礎學習篇》《鳥哥的linux私房菜 伺服器架設篇》。先看基礎篇,再看伺服器架設篇。讀完這兩本書後可以再看下《Linxu 就該這麼學》和 《構建高可用 LInux 伺服器》這兩本書是關於Linux運維的。這些書讀完之後你就對 linux 系統有整體的瞭解和感知,也可以感受linux與windows的不同。網上有 pdf 版本的電子書,可以下載看下。如果想學Linux運維的話,可以找一些培訓機構的視訊看下,例如:馬哥Linux運維、等。也可以向培訓機構的客服要下他們的課程大綱然後自學,或者直接去培訓機構系統全面的學習。培訓是一個入門捷徑。但是能學到多少就看自己了。師傅領進門,修行靠個人。
2. 《apue》 unix環境高階程式設計
apue(Advanced Programming in the UNIX Environment) 被譽為 UNIX程式設計 “聖經”。
目前最新的是第三版,可以網上下載第二版或者第三版的pdf
3. Unix 網路程式設計 (即 UNP) 分 卷一 和 卷二
Unix 的網路程式設計必看的書籍(網上也可以下載電子版)
4. 《TCP/IP詳解》 卷一 和 卷二
《TCP/IP詳解》也是經典鉅著。總共 三卷(卷1是協議。卷2是實現。卷三是TCP事務協議、HTTP、NNTP和UNIX域協議)
5. Linux 伺服器方向
《高效能伺服器程式設計》《Linux多執行緒伺服器端程式設計》
6. 閱讀第三方庫原始碼
例如: libevent、nginx 等。
Libevent 是一個用C語言編寫的、輕量級的開源高效能事件通知庫,主要有以下幾個亮點:事件驅動( event-driven),高效能;輕量級,專注於網路,不如 ACE 那麼臃腫龐大;原始碼相當精煉、易讀;跨平臺,支援 Windows、 Linux、 *BSD 和 Mac Os;支援多種 I/O 多路複用技術, epoll、 poll、 dev/poll、 select 和 kqueue 等;支援 I/O,定時器和訊號等事件;註冊事件優先順序。
Libevent 已經被廣泛的應用,作為底層的網路庫;比如 memcached、 Vomit、 Nylon、 Netchat等等。
Nginx (engine x) 是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。
7. linux學習的方向及深度
網路程式設計經典書籍
首先要說講述TCP/IP的書很多,其中有3本書很全。
分別是《TCP/IP詳解》三卷本,《用TCP/IP進行網際互連》三卷本,《TCP/IP指南》+《IPv6》四卷本
其中TCP/IP詳解的作者還寫了另外2本經典著作,《Unix環境高階程式設計》,《Unix網路程式設計》
大師作品部部經典,可惜1999年去另一個世界維護Unix了。。。。。。。。。
說明:搞Linux網路程式設計的,想學TCP/IP的一定要看大師W.Richard Stevens這六本書,基本上六本書看完基礎也就搭好了。
W.Richard Stevens(1951-1999),國際知名的UNIX和網路專家,受人人尊敬的作家。他的著作有《UNIX網路程式設計》(兩卷本),《UNIX網路高階程式設計》,《TCP/IP詳解》(三卷本)等,同時他還是廣受歡迎的教師和顧問。
Stevens先生1951年生於尚比亞,早年,他就讀於美國弗吉尼亞州的費什本軍事學校,後獲得密歇根大學學士、亞利桑那大學系統工程碩士和博士學位。他曾就職於基特峰國家天文臺,從事計算機程式設計。
Stevens先生不幸病逝於1999年9月1日,他的離去是計算機界的巨大損失。
W. Richard Stevens對我們這些學習Unix/Linux的程式設計師的影響是巨大的,每每捧讀老先生的書都會被感動,不僅被他那豐富的知識所折服,更是被他那一絲不苟,嚴謹治學的態度所傾倒。“他不清楚的,他下決心要弄明白。他知道的,他要努力傳授給所有感興趣的人們!”這就是我們的Stevens!一生能有其一部力作可謂無憾矣!而況七部乎?
一位朋友說:“Stevens的書一定要全部認真地去讀的。”我想他是對的。最後,對Stevens在天英靈說聲:謝謝您!想必這時他正坐在上帝身邊,繼續從事他的寫作。
W. Richard Stevens Biography :http://www.kohala.com/start/bio1.html
W. Richard Stevens' Home Page :http://www.kohala.com/start/
W. Richard Stevens on Wikipedia :http://en.wikipedia.org/wiki/W._Richard_Stevens
Guru of the Unix gurus :http://archive.salon.com/tech/feature/2000/09/01/rich_stevens/index.html
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《用TCP/IP進行網際互連第一卷:原理、協議與結構(第五版)》
《用TCP/IP進行網際互連第二卷——設計、實現與核心》
《用TCP/IP進行網際互連第三卷:客戶-伺服器程式設計與應用(Linux/POSIX套接字版)》
說明:這個系列也是三卷本,和《TCP/IP詳解》三卷本一樣也是經典,區別是 網際互聯 偏重理論 而 詳解偏重實際。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
如果你看了上面2套TCP/IP的書6本還不盡興,還有一套書可以作為提高或者查缺補漏
雖然與W.Richard Stevens TCP/IP詳解 有一定的差距,但仍不失為下一代IPv6網路的參考工具書,值得收藏學習
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《TCP/IP協議原理與應用(第3版)》
寫的非常好,建議一定要買!可作入門,但即使是高手,也應看看,學習作者分析問題的方法和思想。其實是無數次印刷了,經典不能錯過。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《TCP/IP高效程式設計 : 改善網路程式的44個技巧》
很明顯屬於技巧類的書,同樣這本書很老,但是還是很有參考價值,這本書中大量出現Unix網路程式設計的提示,可以作為其補充。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《TCP/IP架構、設計及應用(Linux版)》
談不上經典,可以補充閱讀
----------------------------------------------------------------------------------------------------------------------------------------------------------------
《linux網路體系結構:linux核心中網路協議的設計與實現》
又名: The Linux Network Architecture: Design and Implementation of Network Protocols in the Linux Kernel
書名: Linux網路體系結構
說明:翻譯的很不好,建議看原版,可以下電子版。
一本在kernel實現網路功能的基礎書籍,最好還是看英文版的,翻譯的實在太爛了。有條件的還是看原版吧,沒辦法啊,中國的此類書籍基本上落後老美3-4年。結合linux原始碼分析一書收穫更多。一併把核心結構和各功能在核心中的關係也搞清楚了。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
本人寫的另外系列,配合一起看效果更好,因為C語言是語言,還需要到實際環境Linux中去用,而Linux環境下網路程式設計自然需要TCP/IP的知識: