有關核心的書籍可以用汗牛充棟來形容,不過只有一些經典的神作經住了考驗。首先是5本久經考驗的神作(個人概括為「2+1+2」,第乙個2是指2本全面講解核心的書,中間的1指1本講解驅動開發的書,後面的2則指2本有關核心具體子系統的書,你是否想到了某某廣告裡三個人突然站起單臂齊舉高呼「1比1比1」的場景?)。
一、《linux核心設計與實現》
簡稱lkd,從入門開始,介紹了諸如程序管理、系統呼叫、中斷和中斷處理程式、核心同步、時間管理、記憶體管理、位址空間、除錯技術等方面,內容比較淺顯易懂,個人認為是核心新人首先必讀的書籍。新人得有此書,足矣!
二、《深入理解linux核心》
簡稱ulk,相比於lkd的內容不夠深入、覆蓋面不廣,ulk要深入全面得多。 前面這兩本,一本提綱挈領,一本全面深入。
三、《linux裝置驅動程式》
簡稱ldd,驅動開發者都要人手一本了。
四、《深入理解linux虛擬記憶體管理》
簡稱lvmm,是一本介紹linux虛擬記憶體管理機制的書。如果你希望深入的研究linux的記憶體管理子系統,仔細的研讀這本書無疑是最好的選擇。
五、《深入理解linux網路內幕》
一本講解網路子系統實現的書,通過這本書,我們可以了解到linux核心是如何實現複雜的網路功能的。
這5本書各有側重,正如下面的圖所展示的那樣,恰好代表了個人一直主張的核心學習方法:首先通過lkd或ulk了解核心的設計實現特點,對核心有個整體全域性的認識和理解,然後可分為兩個岔路,如果從事驅動開發,則鑽研ldd,如果希望對核心不是泛泛而談而是有更深入的理解,則可以選擇乙個自己感興趣的子系統,仔細分析它的**,不懂的地方就通過社群、郵件列表或者直接發email給maintainer請教等途徑弄懂,切勿得過且過,這樣分析下來,對同步、中斷等等核心的很多機制也同樣會非常了解,俗話說的一通則百通就是這個道理。當然,如果你選擇研究的是記憶體管理或者網路,則可以有上面的兩本書可以學習,如果是其他子系統,可能就沒有這麼好的運氣了。
linux下開發必備的工具
strace 可用於跟蹤乙個程式裡使用了哪些系統程式設計函式 用法 strace 程式名 程式執行時的引數 ltrace 可跟蹤程式裡呼叫的庫函式 用法 ltrace 程式名 file 可檢視乙個檔案的型別 用法 file 檔名 如果file檢視的是乙個程式,可以檢視到程式的位數,大小端,是否依賴動...
linux後台開發必備技能
一 linux和os 1 命令 netstat tcpdump ipcs ipcrm 這四個命令的熟練掌握程度基本上能體現實際開發和除錯程式的經驗 2 cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網路狀態檢視 各程序狀態 抓包相關等相關命令 必須熟練掌握 3...
量化交易初學者5本必備書籍
閱讀原文 京東金融官方資訊qq群 456448095 有什麼想諮詢的都可以來詢問我們 演算法交易是乙個極其複雜的領域,涉及學科眾多,對於數學及統計學都有很高要求,對於初學者來說,難以入門往往會帶來深深的挫敗感。但事實上,整體概念上還是比較直接易懂的,但細節方面則需要迭代漸進式的學習才能掌握。而演算法...