4 無知則無畏
當我們打算開發操作系統時,總會有人從旁邊跳出來,羅列出一大堆專業術語,問這問那,像內核怎么做啦,外殼怎么做啦,是不是單片啦,是不是微內核啦,等等。雖然有時候提這些問題也是有益的,但一上來就問這些,當然會讓人無從回答。
要想給他們一個滿意答復,讓他們不再從旁指手畫腳的話,還真得多學習,拿出點像模像樣的見解才行。但我們是初學者,沒有必要去學那些麻煩的東西,費時費力且不說,當我們知道現有操作系統在各方面都考慮得如此周密的時候,就會發現自己的想法太過簡單而備受打擊沒了干勁。如果被前人的成果嚇倒,只用這些現有的技術來做些拼拼湊湊的工作,豈不是太沒意思了。
所以我們這次不去學習那些復雜的東西,直接著手開發。就算知道一大堆專業術語、專業理論,又有什么意思呢?還不如動手去做,就算做出來的東西再簡單,起碼也是自己的成果。而且自己先實際操作一次,通過實踐找到其中的問題,再來看看是不是已經有了這些問題的解決方案,這樣下來更能深刻地理解那些復雜理論。不管怎么說,反正目前我們也無法回答那些五花八門的問題,倒不如直接告訴在一旁指手畫腳的人們:我們就是想用自己的方法做自己喜歡的事情,如果要討論高深的問題,就另請高明吧。
■■■■■
其實反過來看,什么都不知道有時倒是好事。正是因為什么都不知道,我們才可能會認真地去做那些專家們嗤之以鼻的沒意義的“傻事”。也許我們大多時候做的都沒什么意義,但有時也可能會發掘出專家們千慮一失的問題呢。專家們在很多方面往往會先入為主,甚至根本不去嘗試就斷定這也不行那也不行,要么就淺嘗輒止。因此能夠挑戰這些問題的,就只有我們這種什么都不知道的門外漢。任何人都能通過學習成為專家,但是一旦成為專家,就再也找不回門外漢的挑戰精神了。所以從零開始,在沒有各種條條框框限制的情況下,能做到什么程度就做到什么程度,碰壁以后再回頭來學習相關知識,也為時未晚。
實際上筆者也正是這樣一路磕磕絆絆地走過來,才有了今天。筆者沒去過教授編程的學校,也幾乎沒學什么復雜的理論就開始開發操作系統了。但也正是因為這樣,筆者做出的操作系統與其他的操作系統大不相同,非常有個性,所以得到了專家們的一致好評,而且現在還能有機會寫這本書,向初學者介紹經驗。總地說來,筆者從著手開發直到現在,每天都是樂在其中的。
正是像筆者這樣自己摸著石頭過河,一路磕磕絆絆走過來的人,講出的東西才簡單易懂。不過在講解過程中會涉及失敗的經驗,以及如何重新修正最終取得成功,所以已經懂了的人看著可能會著急。不好意思,如果碰到這種情況請忍耐一下吧。
讀了這部分內容或許有人會覺得“是不是什么都不學習才是最好的啊”,其實那倒不是。比如工作上需要編寫某些程序,或者一年之內要完成某些任務,這時沒有時間去故意繞遠路,所以為了避免不必要的失敗,當然是先學習再著手開發比較好。但這次我們是因為自己的興趣而學習操作系統的開發的,既然是興趣,那就是按自己喜歡的方式慢慢來,這樣就挺好的。
- Linux網絡管理與配置(第2版)
- Implementing Cisco UCS Solutions
- 大學計算機應用基礎實踐教程(Windows 7+Office 2013)
- BPEL and Java Cookbook
- SOA實踐者說
- 嵌入式應用程序設計綜合教程(微課版)
- PLC控制系統應用與維護
- Installing and Configuring Windows 10:70-698 Exam Guide
- 移動應用UI設計模式(第2版)
- Linux系統安全基礎:二進制代碼安全性分析基礎與實踐
- 嵌入式實時操作系統:RT-Thread設計與實現
- 8051軟核處理器設計實戰
- Hands-On UX Design for Developers
- 跟老男孩學Linux運維:Shell編程實戰
- 程序員必讀經典(算法基礎+計算機系統)