不經不覺已經出來工作兩年了,時間還真是過得快。想當年說,工作后還要幹嘛幹嘛的,確實地感覺到歲月是把殺豬刀,把我當年所謂的壯志已經砍的所剩無幾了。再加上工作的兩種極端,要不忙個不停,要不閑得慌。當忙個不停時,只想把工作做完卻沒有去太多的深究;當閑得慌時,就會把時間耗在無聊的資訊上(可能是所謂的難得偷來半日閑,我卻經常偷來閑)。最終發現自己有一種被廢了的感覺,做事認真不起來,而且做得也不好,感覺還遠比不上讀書的時候。
雖然還是算年輕,不過如此下去,最終將成為得過且過的如同行尸走肉般的人(也許有些人嚮往這生活,可我不想)。人是有貪念的,當覺得這個不錯時,會想去嘗試,但卻多數因為一些很小的原因而放棄,其實換句話說,這叫三分鐘熱度,說得天花亂墜,卻做得一塌糊塗。我也是個普通人,做不到所謂的聖人,卻樣樣都想嘗試,但人的精力畢竟有限(讀書時,煩考試;工作時,煩薪水;結婚時,煩沒錢;到老了,煩後代),也許是現在的時勢不及以前,以前的科學家都是萬能的,上知天文,下知地理,無一不精,無一不通。作為一個普通人,為了對得起自己的人生,我又再次pick up以前曾被我信誓旦旦說要學的Linux,“放棄”其他同樣有吸引的新鮮事物(不是指完全放棄,而是把重點放在學習Linux上)。
好了,廢話連篇了,但是我只是想告誡一下以後的自己以及各位博友,做事最怕不專注,三心兩意、懶惰是做不好事的。再允許我再廢話一陣子。我有一個大學同班同學,他做事一向都比較專注,在畢業差不多一年左右,他跟我說想做遊戲(他是嵌入式專業的),想做以前一直嚮往的遊戲,當時我還以為他在開玩笑,因為那段時間我們倆經常打遊戲,以為他被那遊戲的刺激所影響到而已,而且他也是嵌入式專業的,做遊戲感覺要走挺多彎路的,而且最主要是沒人帶入門,什麽都不會,卻什麽都要做。直到有一天,他說去書城去買做3D Max的書,那時,我才感覺到,他是來真的。過後,他每天都在下班后的時間去研究遊戲製作,每天都那個幾個小時去研究,過來個把月,他已經用3D max做出人物模型(雖然他是有美術功底,但這對於行外人來說確實不容易)。再過來一段時間,他已經做去場景與人物,雖然沒有什麽怪物,做人物已經可以在場景中走來走去,場景也是跟著變化的。由於我那朋友做的遊戲是以鬼泣4的血宮模式的模式去做的,所以減少了場景的製作,但對於一個人的製作而言,這工作量也夠了。然後物怪、攻擊樣式、動作也跟著出來了。從無到有,足足用了一年時間,只有一個人的情況下,開發出了一個看似簡單,卻一點都不簡單的遊戲,場景、人物、引擎都是一個人獨立製作的。經過一年時間,我那朋友從嵌入工轉型為遊戲開發,從一個嵌入式的公司的員工,變成騰訊遊戲開發的成員,這不但滿足了他做遊戲的心願,也滿足了他當年想去騰訊的心願。
以上是一個真實的故事,當他去了騰訊后,我一直感歎,自己的不專注導致自己這兩年來一直停滯不前,可能是各種原因導致的,但這也不是最主要的,最主要的是自己的專注力不夠,很容易放棄,正如我QQ簽名上說:“看到別人今日的成就,感覺好慚愧,不是自己沒能力,而是自己根本沒努力過、堅持過”。從根本上沒有專注過、堅持過、努力過。正是因為這原因,我要重拾Linux內核的學習,不但能夠瞭解Linux的內核,也能提高自己的編碼品質及能力。
其實這本來就是一個序,本來就是一個廢話章節,不過這里還得提一提,本人學習的Linux是Linux 0.11,由於這版本比較精簡,所以瞭解起來也相對容易,而且在http://www.oldlinux.org/ ,上也有一些的教程,可以更方便對此版本內核的學習。
以後我會在本欄中,更新我所學習到的東西,我將會把oldlinux教程和我自己所理解的結合在一起,所以可能比較繁雜,如果有寫得不明確及理解錯誤的請向我提出,我會及時更正。由於我也是剛學習,而且我要在我能基本理解后才會發布文章,所以不免更新得慢甚至超慢,望見諒。
希望大家,看到我這篇不入流的廢話能學習到Linux或者找到自己要專注的目標!
下圖為Linux0.11內核文件結構,其中boot是啟動代碼,fs是文件系統,include是內核頭文件,init是內核系統初始化程序,kernel是內核的主要函數,lib是庫文件,mm是內存管理,tools連結工具,Makefile是用於簡化編譯。
下一章將會講述內核的啟動過程,即boot中的三個彙編文件,bootsec.s , setup.s , head.s.