前序
研究目標:學會、學好Linux下網絡編程
研究對象:Linux網絡原理及編程技術
研究方法:研習理論原理,實踐應用技術方法
參考書目:《Linux網絡編程》--宋敬彬,孫海濱等編著--清華大學出版社出版(2010)
本文及後文,均爲學習《Linux網絡編程》一書後的學習記錄。整記以備。
先是一些鋪墊,且看。
1、Linux發展歷史
1991年,Linus Torvalds。
2、Linux發展要素
- UNIX操作系統
貝爾實驗室,1969年,Ken.Thomson, B語言;1972年,Dennis Ritchie,C語言。
- Minix操作系統
荷蘭,Andrew S.Tanenbaum,1987年。
- GNU計劃
- POSIX標準
IEEE和ISO,Portable Operating System Interface for Computing Systems。
- Internet網絡
3、Linux與UNIX的異同
4、OS類型選擇和版本的選擇
Linux內核編號形式:
書中參考: Debian Linux-2.6.18.3-686
5、Linux系統架構
Linux系統從應用角度來看,分爲內核空間和用戶空間兩個部分。
<1> Linux內核的主要模塊
Linux的內核主要由5個子系統組成:
- 進程調度
Linux下的3種調度策略:SCHED_OTHER(普通進程時間片輪轉調度)、SCHED_FIFO(實時進程隊列/先進先出調度)、SCHED_RR(實時進程時間片輪轉調度)
Linux進程調度採用的是“有條件可剝奪”的調度方式。普通進程採用SCHED_OTHER方式調度,實時進程可以剝奪普通進程。如果普通進程在用戶空間運行,則普通進程立即停止運行,將資源讓給實時進程;如果普通進程運行在內核空間,需要等系統調用返回用戶空間後方可剝奪資源。
- 內存管理
內存管理是多個進程間的內存共享策略。在Linux中 ,內存管理的主要概念是虛擬內存。
- 虛擬文件系統
- 網絡接口
Linux支持多種網絡接口和協議。網絡接口分爲網絡協議和驅動程序,網絡協議是一種網絡傳輸的通訊標準,而網絡驅動則是對硬件設備的驅動程序。
- 進程間通信
Linux下進程間通信方式主要有管道、信號、(信號量)、消息隊列、共享內存和套接字。
<2> Linux的文件系統
根目錄,用“/”代表。Linux通過“掛載”的方式把所有分區都放置在“根”下各個目錄裏。
6、GNU通用公共許可證——GPL
GPL,Richard Stallman。
GPL v1,1989年1月
GPL v2,1991年6月
GPL v3,2007年6月
7、Linux軟件開發的可借鑑之處
集市模式:原型、改進、協作、溝通交流
Linus的一種觀點:用聰明的數據結構和笨拙的代碼的搭配方式要比相反的搭配方式更好,可以作爲軟件開發的一種基本的常識。
本章節概述完畢,後續之。
[注:] 截圖來源於參考書目之中。
——脈清心愛
2017年12月4日 PM