這是一個非常籠統的問題,你們必須沿著向核心貢獻高質量程式碼這條路徑努力走下去。 linux核心是一個龐大而複雜的專案,它在不斷髮展,跟上新技術並改進已經存在的程式碼,在許多情況下已經是最高質量的貢獻了。 對於一個如此龐大的專案,您可能都無法深入瞭解整個系統。 像艾倫·考克斯(Alan Cox)那樣,很少有極有才華的駭客能夠獻出生命中的大部分時間。
您可以將核心視為三個不同的部分。
第一個領域是裝置驅動程式,它佔整個程式碼庫的很大一部分。 如果您以前有在其他平臺上開發驅動程式的經驗,那麼過渡到linux核心就不會太困難。 使用相同的匯流排(例如USB)閱讀您感興趣的相似裝置的驅動程式程式碼。
第二個領域是核心核心子系統,例如CPU排程,中斷處理,I / O,檔案系統和記憶體管理。 這些領域特別艱鉅(有些比其他領域還要艱鉅)。 如果您是作業系統的新手,建議花幾個月的時間對核心進行深度研究,包括購買一些通用的作業系統書籍,我推崇的書籍包括:
是的,英文版的書籍,想進入Linux核心殿堂,英語只是前進路上的一個必要小工具,透過書籍掌握原理才是目的!
無論您是要深入Linux,BSD,FreeDOS,Minix還是任何其他核心,如果不具備作業系統基礎知識和內部知識,您將不會走得太遠。 充分了解計算機體系結構也很重要。 您至少應該知道諸如為何在上下文切換時需要使用無標籤的快取記憶體進行TLB重新整理,或處理器字大小與記憶體定址能力之間的相關性之類的事情。 我建議一些書:
第三個領域是所有核心駭客都應該瞭解並掌握的常規技術: 演算法和資料結構。 其中包括同步(原子操作,自旋鎖,訊號量等),連結串列,樹,核心物件和搜尋功能等。
回到問題,並假設您是一個新手,從小處做起,從事您個人感興趣的事情,保持耐心,堅持不懈,最重要的是: 玩得開心!
很多都是在為公司做事開始搞核心的。國內華為,騰訊,位元組,阿里等都大量部署Linux 核心在生產環境,需要加新功能,解決問題或者改進效能。慢慢就入門了。
這是一個非常籠統的問題,你們必須沿著向核心貢獻高質量程式碼這條路徑努力走下去。 linux核心是一個龐大而複雜的專案,它在不斷髮展,跟上新技術並改進已經存在的程式碼,在許多情況下已經是最高質量的貢獻了。 對於一個如此龐大的專案,您可能都無法深入瞭解整個系統。 像艾倫·考克斯(Alan Cox)那樣,很少有極有才華的駭客能夠獻出生命中的大部分時間。
您可以將核心視為三個不同的部分。
第一個領域是裝置驅動程式,它佔整個程式碼庫的很大一部分。 如果您以前有在其他平臺上開發驅動程式的經驗,那麼過渡到linux核心就不會太困難。 使用相同的匯流排(例如USB)閱讀您感興趣的相似裝置的驅動程式程式碼。
第二個領域是核心核心子系統,例如CPU排程,中斷處理,I / O,檔案系統和記憶體管理。 這些領域特別艱鉅(有些比其他領域還要艱鉅)。 如果您是作業系統的新手,建議花幾個月的時間對核心進行深度研究,包括購買一些通用的作業系統書籍,我推崇的書籍包括:
Stallings, William. Operating Systems: Internals and Design PrinciplesSilberschatz, Abraham. Operating System Concepts.Tannenbaum, Andrew S. Modern Operating Systems.是的,英文版的書籍,想進入Linux核心殿堂,英語只是前進路上的一個必要小工具,透過書籍掌握原理才是目的!
無論您是要深入Linux,BSD,FreeDOS,Minix還是任何其他核心,如果不具備作業系統基礎知識和內部知識,您將不會走得太遠。 充分了解計算機體系結構也很重要。 您至少應該知道諸如為何在上下文切換時需要使用無標籤的快取記憶體進行TLB重新整理,或處理器字大小與記憶體定址能力之間的相關性之類的事情。 我建議一些書:
Hennessy, John L. Computer Architecture: A Quantitative Approach.Patterson, David A. Computer Organization and Design.第三個領域是所有核心駭客都應該瞭解並掌握的常規技術: 演算法和資料結構。 其中包括同步(原子操作,自旋鎖,訊號量等),連結串列,樹,核心物件和搜尋功能等。
回到問題,並假設您是一個新手,從小處做起,從事您個人感興趣的事情,保持耐心,堅持不懈,最重要的是: 玩得開心!