你為什麼學習 Linux 內核?
12-30
如題,你學習 Linux 內核的原因是什麼,想實現什麼樣的效果,有什麼好的學習方法
學linux 內核是因為工作需要啊. 客戶要求修的bug, 要修好才行啊. 比如最近兩天突然我客戶讓我修個drm/i915的bug, 我就得乖乖的去看代碼去. 綜上所述, 為了錢.
好的學習方法啊? 我來說說, 首先, 跳過boot loader跳過所有彙編跳過所有體系結構相關代碼. 那部分投入是幾乎沒有回報的. 會打擊你學下去的興趣和自信心.
其次, 什麼0.12內核啊, 不能提高你的水平. 相信我. 直接去看毛德操. 在看毛德操之前, 我覺得內核代碼那麼多, 無從下手. 看完了毛德操(的一部分), 我才發現原來讀代碼只不過是個耗費時間的工作, 有時間就可以讀, 並不是什麼高不可攀的.然後, 不要嘗試給上游發送什麼格式修復, 注釋的標點符號修復這類patch. 幫人家修復個標點符號絕對不是你學kernel的初衷. 不要在這方面浪費時間甚至沾沾自喜. 這種格式/標點符號修復的機會留給我就好了~1.因為90%的程序員不懂Linux內核,所以我就學內核2.因為我比較懶,這種變化不劇烈並且開源的東西可以讓我長年累月的學習並且能有所積累,而ios安卓就不一樣,API經常變,哪天我失憶一年再找回記憶,ios就變得我都不會了,幾年的積累全沒了,而Linux內核就不會。:)
因為成為內核核心開發者是一件很酷的事情。以後找個容身的企業能夠養活自己,業餘時間往內核上游提交點代碼,這就是我想要的生活。
內核水太深,沒有強烈的興趣推動會半途而廢的。學內核不是為了工作和賺錢,而是一種愛好和生活方式,就像Linus一樣,一切為了好玩,不摻雜質。學內核已然是一種生活態度。
just for fun.
喜歡
這些東西是類似素養,軟實力的東西。
比如你會寫C語言,在Linux上面寫應用,突然有天遇到奇怪的問題,這時候就派上用場了,不懂的可能要搞個十天半把月,如果懂可能就是分分鐘的事情。
看到money no的回答我直接醉了。。。。我就是他說的,看彙編,看體系結構,看boot loader的,看0.12內核的。。。。 @Money No 多謝建議。
學習linux內核,還是為了更好的了解操作系統吧。之前看linux系統編程,看了一大堆介面不知道該用在哪,看了操作系統原理,一大堆理論的東西不知道具體什麼實現,這時候就應該讀一個實際的操作系統源碼看完USB標準文檔之後,為了對相關的概念有更加直觀深入的理解,Linux內核內對USB協議棧的實現非常嚴謹,代碼清晰易懂,是不錯的學習對象。
最初只是想知道電腦是怎麼啟動的。
我是如何入門的可憐我一直還是渣渣
http://drock.sinaapp.com/?p=345
感覺可以假裝自己非常屌。。。。(?`?ω?′)!!
因為我發現很多上個世紀偉大的軟體工程師不是寫UNIX就是寫GCC,(你可以認為我說的就是里奇),個人覺得操作系統和編譯器就是計算機世界的基石呀,這是解決我們從哪來的問題.
為了裝逼。
以前,裝了個ubuntu,學了點命令行操作,感覺自己瞬間牛逼哄哄的。 後來,發現這樣裝逼沒啥水平,就滾去學習內核源碼了……如果決定學習了,可以像我一樣看看這個,對理解內核的調用流很有幫助,同時鍛煉自己的動手能力。GitHub - vonnyfly/kernel_visualization: Automaticly draw callgraphs for Linux/Solaris/FreeBSD kernel functions
之前一直做應用,總感覺前面是黑的,想看看內核明白數據流是如何轉發的,如何到我應用這的,明白了這些才不枉做linux開發吧,才開始,希望我可以做到。
權且不論Kernel有多高深,但看代碼風格(雖然有的風格不一樣),但是全世界最優秀的Coder寫的就是一件藝術品。而且還很實用。為什麼不學呢?
因為裝機和服務配置已經不能滿足我了,於是開始學習操作系統課程和lkd
因為我要給Linux內核提供進程調度的代碼
工作需要~ 也可以裝逼~
為了工作……為了混口飯吃
定位了兩年的內核問題 現在開始準備看內核代碼了
推薦閱讀: