歡迎加入運維開發技術分享QQ羣:365534424;數百位業內高手和同行在等你交流 有不少朋友問我,想深刻了解Linux操做系統卻找不到入手點 我給你們的建議是:linux
關於第4點,在知乎上答了一個問題,意外收穫不少贊,但願對你們有幫助nginx
碰巧讀過以前你們提到的一些開源項目 網絡編程:數據結構&數據庫:
- redis是單線程異步網絡編程的範例
- nginx是多進程網絡編程的巔峯,模塊化
- memcached雖然是C++,可是C style的,多線程網絡編程的巔峯
大雜燴類型:
- SQLite,數據理論的範例。注意要去讀非合併源文件版的(爲了方便編譯器優化,有個單文件版的)
找虐:
- Coreutils - GNU core utilities,大多數Linux系統命令的實現
- Python源代碼(CPython,注意不是Cython),多少次遇到百思不得其解的問題,我都是去看看Python是怎麼封裝成簡單可靠的接口的,好比我回答的Linux TCP connect with Select() fails at testserver,還有怎麼實現一個可靠的帶自定義超時的connect(),你均可以從Python源碼裏找到答案。
- The BIRD Internet Routing Daemon Project,宏玩得飛起
- Kernel,很容易挫傷初學者積極性
- glibc、ssh,這類程序都是上個世紀的大神們的做品,從編程風格和總體架構上都屬於晦澀難懂的,代碼風格也是現代編程所不推薦的,建議初學者遠離。