2 6 39發布了 最近關於核心開發的一些感受

2021-05-25 10:43:49 字數 2464 閱讀 5220

linux kernel 2.6.39終於發布了,感覺從rc1到rc7,挺長時間了,這是乙個值得紀念的核心版本。當然,只是對於我而言,是值得紀念的乙個核心版本,從39-rc1開始,決定正式參與核心的開發了,從剛開始不成熟地改了幾個format的錯誤,到後來改了幾處函式錯誤,再到後來為驅動核心寫了注釋,一點點進步了,也越來越專業了。可以說我為開源做貢獻之路是從39這個版本開始的,值得紀念。

其實感受之前也寫過,以前一直覺得核心是個神聖的東西,只能每天以一種朝神的姿態去讀它,去讀懂它,從來沒想到過去改個一句半句的,想都不敢想,覺得那完全是不可能的事情,而這畢業後一年的工作時間,進步真的是太大了,在學校的時候,每天總是有這樣的事,那樣的事,有這樣的作業,那樣的作業,其實真正安心下來看**的時間不多,有時候容易浮燥,沒有大塊大塊的時間去研究乙個東西,而在上班的這段時間裡,本來就做linux 驅動的工作,每天都是在做自己喜歡的事情,看自己喜歡的**,大塊大塊的時候,雖然有時也會被一些蛋疼的事情打斷,但是總體來說重心還是在這個上面。雖然有時間工作的內容有些簡單,畢竟有時候做驅動,只是加一些board device,有時候或許看了好幾天的乙個模組,在改的時候就改幾行,或者改幾個引數就ok了,但是,重要的不是結果,不是這個裝置工作了,正常工作了,而是對這個裝置的理解,對這個驅動的理解,對driver core的理解,對linux kernel整個系統的理解。所以有時候,工作了一樣長的時間,做了一樣的一些工作,有做的好的,有做的不好的人。而且做了同樣的事情,人跟人得到的收穫也不一樣。

比如做乙個簡單的按鍵的驅動,或者觸控螢幕的驅動,可以按照前人加過的**,照著改一改,能工作了,ok,工作做完了,下次做的時候還是一樣的步驟。最後呢,這玩意是個啥,是怎麼工作起來的,不了了之,這樣反而會覺得工作沒有樂趣,沒有一點意思。

而相反,在這樣的裝置工作以後,你可以進一步看看它是怎麼樣工作的,驅動核心是怎麼樣把它們驅動起來的,輸入核心**是怎麼樣實現的,這樣的一層層的核心**是怎麼樣才讓你在寫乙個裝置的驅動的時候如此簡單地就完成了工作?都了解了,在做別的輸入裝置驅動的時候,even在做其它裝置驅動的時候,也許就得心應手了,因為你理解了輸入核心,理解了驅動核心,久而久之,也許對整個系統也了如執掌了,完全可以做優化整個系統的工作了。

這是我的理解,在平時的工作中,我經常從做乙個簡單模組的時候盡量理解得深入一些,這反而增加了不少工作的樂趣。可喜可賀。

以前總是會覺得,kernel那麼大,找出個錯誤多不容易啊,咋能那麼容易就提乙個patch呢,其實很容易,在平時看它的時候,當然前提是要讀**,在讀的時候也許就發現錯誤了,在除錯的時候也許就發現錯誤了,也許這個bug,你fix掉後就被採納了呢。

做核心開發,我覺得必須要有激情,有時候發現乙個bug,我會弄到大半夜去提這個patch,有時候真是生怕被別人搶先fix掉了這個bug,這是乙個充滿激情的地方,在郵件佇列裡,有的是不分日夜在那裡為核心提交patch的大牛們,要向他們學習,學習這種激情。

不知不覺,扯遠了,本來是想說說39核心的,昨天linus加了39的tag後,意味著39正式發布了,然後還發了乙個郵件說接下來兩周 要去日本參加活動,39不能再delay了,本想發個rc8的,還是先發個39,然後開啟40的merge window吧,希望在回來前不會有**煩。就這樣,39就發布了,聽起來並不是那麼的神聖吧,哈哈。

本來這個文章是想寫寫今天發patch的乙個體會的,現在才開始寫,只能當作ps了,哈哈。

1 mkdir temp_kernel

2 3 cd temp_kernel

4 5 git init

6 7 mkdir -p drivers/mtd/

8 9 cp mtdcore.c temp_kernel/drivers/mtd/

10 11 git add *

12 13 git commit -m "init"

14 15 vi temp_kernel/drivers/mtd/mtdcore.c    #然後就是一頓改

16

17 git diff      #看看改的有沒有問題

18 git commit -a    #寫點注釋

19

20 git format-patch -s -1

21 22 git send-email --from "wanlong gao " --to "artem ***" --cc "[email protected]" 0001-****

這樣就發出去了,patch跟直接在linus tree上改的一樣,這樣也很方便,非常方便,免去了clone整個tree的麻煩,因為各個維護者的tree實在是太多了,要是都clone下來,還要每天在改之前pull一下,那就是乙個e夢啊。這是乙個不錯的方法哦,哈哈。提patch的同學可以看看。

題外話,昨天39核心發布後,今天40的window一開啟,瘋子一樣的一頓pull 啊,晚上回來更新了一下linus tree,更新了快兩個m的**,瘋狂的kernel hackers。

嗯,寫得差不多了吧,有點天馬行空,看的將就看吧。

對了,昨天武大對方濱興扔鞋真是大快人心啊,出了很多it人的一口惡氣啊。。。

置頂 qeephp3 0 發布了

qeephp 是乙個快速 靈活的開發框架。應用各種成熟的架構模式和創新的設計,幫助開發者提高開發效率 降低開發難度。主要目標是為開發者建立更複雜 更靈活 更大規模的 web 應用程式提供乙個基礎解決方案。在這之前,我們一直都在使用2.1,這個框架是如此的給力和美好,但是遺憾的是自從2.1之後框架由於...

關於VisualStudio2010發布專案問題

visualstudio2010速度還是很給力的,vs2015開啟機器就雙100 了 vs2010機器上跑起來還是很好用的。今天編譯乙個mvc3.0專案,發布時候出現詭異現象 content資料夾裡面的靜態檔案有不發布的情況。js css image都很ok。唯獨字型ttf woff檔案不能正常發布...

YunTable開發日記(5) 發布0 01版

本文是 yuntable開發日記 的第五篇。在功能方面,0.01版的yuntable還遠算不上是乙個bigtable的轉殖,但基本實現了對資料的持久化儲存,而且底層儲存格式也是基於簡化版的google sstable格式,在介面方面,則提供了insert和show 也就是select 這兩個介面,而...