著作權,未經本作者同意不得轉載,否則視為侵權行為,保留追究責任的權力。
第一篇 勿在浮沙築高塔
對於現在從事軟體開發很多人來說,都是直接接觸的Windows作業系統,一開始學習的東西就是在Windows下的圖形編程,尤其是可以快速開發的諸如VB、Delphi和C++ Builder等語言。它們的程式開發方式就像是作畫一樣,通過將控制項放到對應的表單上,然後設定屬性,完成事件處理過程就可以產生一個像模像樣的Windows程式了。雖然使用這種語言可以很容易的開發出應用程式來,但是卻缺乏了對系統的深入瞭解,只知道怎麼做,卻不知道為什麼這麼做以及它是怎麼實現的。歸根結底,就是缺乏對底層實現原理的知識。正如本章的標題“勿在浮沙築高塔”一樣,缺乏根基總還是底氣不足!不過別擔心,在這部分裡,我將講述我們所需要的一些“根基”。當然如果您已經對這些知識有所瞭解,並且只想看看BREW是個什麼樣子,那麼可以跳過這一部分,而直接進入到第二部分。同時,在我看來,不瞭解硬體結構的程式員不會成為一個最優秀的程式員。因為整個軟體和硬體組成了一個系統,如果我們不瞭解硬體知識,那麼我們也不會瞭解整個軟體的來龍去脈,也就不能從整體上把握程式的特點,要寫出優秀的程式是很困難的。像VB、Delphi和C++ Builder等PME(Property – Method – Event-Driven )語言雖然也給了程式員一定的開發空間,但是缺乏基礎的大廈畢竟築不高!所以我希望每個程式員都能具備一定的硬體知識,這樣才能站得高看得遠。如果您覺得PC太複雜了,那麼您可以研究相對簡單的嵌入式系統。當然並不是所有的嵌入式系統都簡單,比如手機就是一個要比PC系統更為複雜的系統,因為它其中包含了無線通訊部分的內容,只不過我們現在不管這些內容而只是摘取電腦系統相關的內容而已。這一篇的主要內容介紹如下:第一章是硬體基礎,任何軟體平台都離不開硬體平台的支援,而一些裝置的原理卻成為了我們學習的障礙。在這一章裡,我們將獲得一部分硬體的基礎知識,雖然它並不全面,但是我想為了閱讀本書是足夠了。第二章是軟體基礎,在這裡主要講述了C語言的相關知識。這部分屬主要是用我個人的描述方式來講解C語言的細節,希望對我們後續的理解能夠有所協助。第三章是編譯器基礎,從中我們可以瞭解到各種不同類型的編譯器以及它們的區別。更為重要的是它介紹了編譯器對程式中代碼和資料的處理方式,同時使用了一個最小的ARM系統的例子,以此來展示C語言更加本質的東西。
第四章是工程管理(Make File)基礎,在這一章裡將主要講述關於Make File的知識,同時給出了一個可以用於大型系統的Make File架構。設定這一章的主要考慮是到現在除了比較專業的領域外,大多數人都已經接觸不到它了,然而實際上它卻很有用。