小華的部落格: 2014/2/9 - 2014/2/16

搜尋此網誌

星期三, 2月 12, 2014

Python v.s UEFI EDK2 (EDKII)

這篇文章主要是幫自己紀錄一下學習EDK2 build process時的前置準備動作有哪些,後面會陸陸續續把這篇文章補齊,所以先留下個紀錄吧~

學習方式

    對於EDK2來說最大的轉變就是我一直提到的Build process,我常跟我周遭朋友說如果你要學好BIOS或是其他大型軟體專案,中間的『眉角』就是要把大型專案的學習方式分成:

     BUILD + CODE

當你有辦法分辨以及分開學習時,你才可以精準的掌握住甚麼是BUILD? 甚麼是CODE?
舉例來說,BUILD的部分就是屬於build rule/compiler rule/package rule ,簡單的說就是透過一些方式來把程式碼產生成binary,依照一些特定的layout來產生成一個BIOS ROM image;至於CODE的部分就屬於程式語言,像是C語言,組合語言的學習! 你唯有了解彼此之間的關係,你才能掌握關鍵處! 這也是我常跟朋友開玩笑說,你真的會"build+code"嗎?!

至於BUILD PROCESS的概念中,我也常常教導朋友去思考為什麼要這樣子做? 他解決了甚麼問題? 有沒有其他方式? 因此我常常由一個批次檔的概念外加一些淺而易懂的範例來讓他們知道說原來BUILD PROCESS原理是如此簡單,不過我沒打算在這邊寫詳細的解說,因為配合著畫圖邊解釋效果比較佳,如果大家有興趣又剛好在業界遇到我時再來跟我討論吧! ^^

所以記得,學習的方式就是BUILD + CODE分開來學!!!

前置動作
   有鑑於EDK2 BUILD PROCESS主要的部分已經改成Python 2.5/2.7開發,美其名是為了跨平台而準備,但是實際上卻沒有達成!  畢竟,EDK2在x86中並沒有拿Python 將所有win32 的工具重新寫一次,導致在x86平台中有一部分的python tool跟一部份的win32 tool,所以只能說『某些BUILD TOOLS』跨平台而已! 但是木已成舟,所以現在的x86上就變成了這個怪胎情況了!

   雖然我不討厭Python,但也不是擁護者,因為跨平台方式有很多種,他也不是最好的一種! 但是因為EDK2都選擇了Python,所以我也要強迫自己來學習他,秉持著工欲善其事,必先利其器的方式,我們先把除錯工具安裝好,以方便我們去分析與研究EDK2's Build.py

那有哪些東西要先安裝呢? 我個人偏好Visual Studio,因此我選擇了VS2010+PTVS 來當作是Debugger,安裝簡單! 當然你也可以選擇使用Eclipse Classic IDE + PyDev 的除錯方式 (感謝鳥公司John大大傾囊教學)!

所以如果你也想學Python,請跟著我一起安裝:

1. VS2010

2. Python tool for Visual Studio
https://pytools.codeplex.com/

3. Python 2.7.6 (目前EDK2還沒支援到Python 3.x,建議是安裝2.5.x/2.7.x)
http://www.python.org/download/releases/2.7.6/

Eclipse Classic IDE+PyDev

VS2010+PTVS


(未完待續...)