Linux C++後臺開發,想深入和系統的瞭解下,目前高並發伺服器領域的原理和優秀實踐,有哪些經典書籍可以推薦?



Linux環境高級編程

普通用戶只需懂系統操作,軟體開發人員還要懂編程介面。上一階段你已經能夠完成熟練操作Linux系統,知道一些常規的系統命令和服務,並且能夠利用shell script寫一些小工具提高日常開發效率。

我們的目標是星辰大海,作為軟體工程師,還需要更加深入的掌握linux系統編程技巧,學習系統編程介面、系統調用API、內存管理、進程間通信(IPC),這是本階段的學習目的。

推薦書:

《UNIX環境高級編程》 這本是linux編程必看的APUE,強烈推薦通讀一遍,後續值得反覆翻閱。

《Linux/UNIX系統編程手冊》 這本書和APUE有點重複,我看完APUE這本就跳著看了,平常可以看目錄查閱。

TCP/IP協議

目前網路通信中應用最廣泛的協議就是IP TCP協議,後面Unix提供的TCP套接字也是基於協議實現,所以很有必要系統的學習 TCP/IP 協議。

推薦書:

大學的計算機網路教程

《TCP/IP詳解 卷1:協議》

《TCP/IP詳解 卷2:實現》

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

這幾本書很厚,可以先看卷1、卷3

Linux網路編程套接字

在同一臺機器上進程間的通信(IPC)有多種方式,可以是通過消息隊列、FIFO、共享內存等方式。網路編程套接字是指:分佈在不同機器上的程序通過系統提供的網路通信介面,跨越網路將不同機器上的進程連接起來,實現跨機器的網路通信。一般有UDP套接字、TCP套接字、Unix Domain,當然,如果你是通信從業者對SCTP套接字肯定也不會陌生。

推薦書:

《UNIX網路編程 卷1:套接字聯網API(第3版)》

《UNIX網路編程 卷2:進程間通信(第2版)》

更多請參考這篇文章

檸檬橙:Linux後臺開發C++學習路線技能加點?

zhuanlan.zhihu.com圖標


nginx相關的不錯

推薦兩本自己看過的:

  1. 大規模Web服務開發技術,講述一個論壇經歷用戶量激增過程中遇到的各種問題以及相應的處理方法,會學到很多概念,比如為何要分庫,怎麼分,哪些流量引導給爬蟲,等等這樣的問題;
  2. 大型網站技術架構,詳述了大型網站面臨的主要困難,包括性能、高可用等,以及實現各點所需要採取的方法,作者是阿里的專家,有著很多的實戰經驗,看後應能收益良多。


陳碩的書
《Unix網路編程》倆卷
github
推薦閱讀:
相關文章