天天看點

linux程式設計-基本概念

學習linux,是為了用而學習,不是學了為用。

首先,要學Linux程式設計,你得會用Linux,也就是得在指令行環境下生存下來。

其次,Linux下開發,兩種基本語言,C和C++;利用Linux的API進行開發;Linux的API是遵循POSIX标準的;POSIX是IEEE為要在各種UNIX作業系統上運作的軟體,而定義API的一系列互相關聯的标準的總稱,其正式稱呼為IEEE 1003,而國際标準名稱為ISO/IEC 9945;它基本上是Portable Operating System Interface(可移植作業系統接口)的縮寫,而X則表明其對Unix API的傳承。

再次,Linux下程式開發幾大塊。檔案操作:這個很重要,Linux下的一個思想叫一切皆檔案,可見檔案讀寫的重要。I/O模型,五大I/O模型,阻塞,非阻塞,複用,信号驅動和異步I/O,最重要的當屬複用,就是select,poll和epoll,要知道他們的适用範圍和優缺點。程序和線程,包括程序和線程的概念和差別,程序和線程的建立,同步,通信,互斥等等。網絡程式設計,就是socket程式設計,Linux程式設計,還得了解一下TCP/IP協定,程式設計方面主要是那幾步,申請socket,bind,listen,accept幾步,要熟悉常見的伺服器模型,程序池線程池方式,多程序方式,複用方式,最重要的是複用方式。

最後,Linux這麼多人用,好處在哪裡;核心源碼,核心的進線程調,核心連結清單。在學習的過程中,要不斷積累和了解最新的東西,最起碼要知道個概念,比如分布式,大資料,雲計算,機器學習,計算機視覺,JIT等等,形成知識鍊,這樣不會導緻你最後不知道學啥。

相關書籍:

《鳥哥的Linux私房菜 基礎篇》

《C程式設計語言》 丹尼斯寫的

《Linux C程式設計一站式學習》 宋勁杉寫的

《Eensstial C++》

《C++ Primer》

《Effective C++》

《Linux網絡程式設計》 宋勁彬寫的

《Unix環境進階程式設計》

《Unix網絡程式設計》 兩部

《Linux進階程式設計》 華清遠見的

《MySQL必知必會》

《資料庫系統概念》

《大話資料結構》

《算法導論》

《Linux核心情景分析》

《深入了解Linux核心》

《深入了解計算機系統》

《現代作業系統》

《深入了解計算機網絡》

《TCP/IP》的三卷經典書

廖雪峰的Python學習網站