為什麼要閱讀核心原始碼?
有的程式設計師或準程式設計師表示,“我對核心原始碼根本不感興趣”、“與這種老古董相比,我喜歡更現代的作業系統”。
但是《Unix核心原始碼剖析》的作者青柳隆巨集卻不這麼認為,他是閱讀核心原始碼的堅定支持者。這就引發了一個問題,為什麼程式設計師要閱讀核心原始碼呢?
有心得的程式設計師說:“一個專業的程式設計師,總是把程式碼的清晰性,相容性,可移植性放在很重要的位置。他們總是通過定義大量的巨集,來增強程式碼的清晰度和可讀性,而又不增加編譯後的程式碼長度和程式碼的執行效率;他們總是在編碼的同時,就考慮到了以後的程式碼維護和升級。甚至,只要分析百分之一的程式碼後,你就會深刻地體會到,什麼樣的程式碼才是一個專業的程式設計師寫的,什麼樣的程式碼是一個業餘愛好者寫的。而這一點是任何沒有真正分析過標準程式碼的人都無法體會到的。”
青柳隆巨集對此抱有同樣的觀點。
閱讀核心原始碼能夠對計算機系統的全貌有更深入的瞭解
掌握了作為計算機系統核心部分的核心,不僅對作業系統,對計算機的全貌也會有更為深入的認識。對通過大學課程或其他途徑學習的各種領域、各個層面的知識之間的關聯性也會有更清晰的認識,不再是紙上談兵,讓人有醍醐灌頂的感覺。
閱讀核心原始碼讓操作計算機成為一種令人愉快的體驗
理解了計算機系統的全貌,操作計算機本身也會變得更加令人愉快。比如,在計算機上執行某個程式的時候,如果能夠準確把握系統內部所進行的操作,是不是一件很令人興奮的事情呢?這種體驗將加深讀者對計算機的興趣,使讀者更有動力去提高自己的技術水平。
閱讀核心原始碼能夠加深對知識的理解
閱讀程式碼與否,對知識的理解程度會有云泥之差。如果只學習了概要,既容易遺忘也難以應用。相反,理解程式碼能夠使你對學到的演算法和思路舉一反三,使之成為可以受用一生的財富。
閱讀核心原始碼提升技術人員自身的水平
作為計算機行業的技術人員,閱讀並理解了核心原始碼有助於在專業領域裡將自己提升到一個新的層次。儘管在全球範圍內這個領域的從業者不斷增加,但是在瞭解應用層面的同時,對作業系統等底層的知識也有所瞭解,並且能夠對系統做出整體優化的技術人員,仍是鳳毛麟角。但是恰恰是具備這種素質的人,才能在第一線發揮不可替代的作用。如果想拉大與競爭對手的差距,是必須理解系統核心的。
如何?你是否要開始去讀核心原始碼了嗎?
Tips1:先熟悉命令和程式設計環境再閱讀原始碼效果會事半功倍。
Tips2:遇到挫折很正常,循序漸進、反覆鑽研、尋找志同道合的讀友是實在的“笨”辦法。
相關文章
- 為什麼要閱讀原始碼原始碼
- 我們為什麼要閱讀webpack原始碼Web原始碼
- 作為程式設計師為什麼要閱讀原始碼程式設計師原始碼
- 老生常談!程式設計師為什麼要閱讀原始碼?程式設計師原始碼
- petite-vue原始碼剖析-為什麼要讀原始碼?Vue原始碼
- 為什麼建議你常閱讀原始碼?原始碼
- Laravel 原始碼閱讀指南 -- HTTP 核心Laravel原始碼HTTP
- Laravel 原始碼閱讀指南 -- Console 核心Laravel原始碼
- 【原始碼閱讀】AndPermission原始碼閱讀原始碼
- Scrapy原始碼閱讀分析_3_核心元件原始碼元件
- 如何閱讀原始碼–Koa為例原始碼
- 【原始碼閱讀】Glide原始碼閱讀之into方法(三)原始碼IDE
- 【原始碼閱讀】Glide原始碼閱讀之with方法(一)原始碼IDE
- linux核心原始碼閱讀-塊裝置驅動Linux原始碼
- 【原始碼閱讀】Glide原始碼閱讀之load方法(二)原始碼IDE
- 怎麼閱讀原始碼【除錯觀察原始碼】原始碼除錯
- 【核心檔案系統】原始碼閱讀stat.h原始碼
- AmplifyImpostors原始碼閱讀原始碼
- stack原始碼閱讀原始碼
- AQS原始碼閱讀AQS原始碼
- delta原始碼閱讀原始碼
- CountDownLatch原始碼閱讀CountDownLatch原始碼
- HashMap 原始碼閱讀HashMap原始碼
- fuzz原始碼閱讀原始碼
- ConcurrentHashMap原始碼閱讀HashMap原始碼
- HashMap原始碼閱讀HashMap原始碼
- Mux 原始碼閱讀UX原始碼
- ReactorKit原始碼閱讀React原始碼
- Vollery原始碼閱讀(—)原始碼
- NGINX原始碼閱讀Nginx原始碼
- ThreadLocal原始碼閱讀thread原始碼
- 原始碼閱讀-HashMap原始碼HashMap
- Runtime 原始碼閱讀原始碼
- RunLoop 原始碼閱讀OOP原始碼
- PostgreSQL 原始碼解讀(3)- 如何閱讀原始碼SQL原始碼
- 為什麼要虛擬化,為什麼要容器,為什麼要Docker,為什麼要K8S?DockerK8S
- JDK原始碼閱讀:Object類閱讀筆記JDK原始碼Object筆記
- JDK原始碼閱讀:String類閱讀筆記JDK原始碼筆記
- Vollery原始碼閱讀(二)原始碼