2016年3月16日 星期三

[books]: UEFI原理与编程

20150306 購於台南若水堂 463 nt/89 rmb
《UEFI原理与编程》這本書真是不簡單, 我查閱 amazon.com, amazon.jp, 這兩個網站中相關 uefi 主題的書籍也不多 (20150311), 沒想到中國就出了一本, 重點是中文的。

會對 uefi 有興趣單純只是想寫個 bootloader, 因為傳統 biso 0xc7000 那個方法已經快要過時了, 寫了一個 simple os kernel 的我還想讓這個 simple os kernel 能在新的 x86 上執行, 自然得學習 uefi/edk2 了。

可以把 uefi 想成是一個小型的 os, 我們寫的 uefi 程式就和在 dos, windows, linux, 下的執行檔一樣, uefi 也提供很多豐富的 api 讓我們使用, 就和 bios 的中斷編號一樣, 只是改成 c function。

edk2 是 uefi 的開發工具, 和傳統 biso bootloader 不同, 已經不能很單純的用 gcc 來開發了, 我覺得這不算好事, 但也不是壞事, 不過第一版的 edk 只能用 ms vc 來開發那就不是好事了, 而 efi 執行檔是 pe 也讓我覺得格格不入, 不太爽。

而沒有支援 c++ 讓我更是不爽中的不爽, 這個開發工具用了很多 oo 觀念, 卻硬是要用 c 來模擬, 而不乾脆的支援 c++。好在作者在第十章提供了使用 c++ 編譯器的方法, 總算讓我有機會使用 c++。

第一章介紹了 uefi 啟動過程, 有哪些階段。第二章則是介紹 edk2 開發工具, 有 windows, linux 兩個本版, 還有模擬器, 方便用來除錯。

第三章很重要, 介紹怎麼開發 uefi 程式, edk2 需要編寫 3 個檔案, 類似 makefile, 不過 makefile 只要一個, edk2 要寫 3 個 (dsc, dec, inf), 很累人。還有各種 uefi 程式種類, 這章得要仔細閱讀, 才能理解整個 uefi/edk2 開發流程。

書中範例: https://code.google.com/p/uefi-programming-guider/wiki/Download

ref:
UEFI实战(1)

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。