如何才能成為一名合格的UEFI固件工程師

UEFI固件是電腦啟動的第一步,如何更快啟動OS,在硬體平台和OS之間起到準確而高效的溝通作用,考驗固件工程師的能力和水平。而且很多時候,固件工程師需要和硬體工程師一起來Power On/Boot某些新做出來的主板甚至晶元,期間會遇到各種千奇百怪的問題,如何快速定位問題,在更短的時間內交付固件是衡量一個固件工程師綜合素質的煉金石。畢竟出了問題,硬體工程師會找你,OS甚至應用軟體工程師也會怪罪你,真是個吃力的角色!做UEFI固件又要知道OS知識,還需要讀完各種spec,那有什麼好處呢?我就不打算用「挑戰性」這個被用爛了的洗腦說辭了,總的來說,做UEFI固件門檻比較高,但是正因為門檻比較高造成比較小眾,競爭壓力小,而知識更新幅度相對上層來說比較緩慢,你可以看到很多美國白髮蒼蒼的BIOS工程師還戰鬥在第一線的崗位上。

言歸正傳,如何成為一名合格的UEFI固件工程師呢?首先必須熟練掌握C和彙編語言,這是入門必須,懂一點C++會對將來設計模塊有所幫助。

1. 必須了解以下spec:

A. UEFI spec和PI Spec。

B. ACPI Spec.

C. PCI/PCIe Spec

D.IA-32 Software Developers Manual 三卷,重點是第一和第三卷。第二卷可以當寫彙編的手冊使用。

E. 至少完整了解一個Intel或者AMD平台的所有硬體spec,包括主板原理圖,晶元手冊等。

2. 軟實力:

A. 讀一本Linux著作。推薦Linux driver model和毛德操的Linux內核源代碼情景分析。會對調試Linux啟動問題有所幫助。

B. 讀一本Windows著作。推薦潘愛民的Windows內核原理與實現和Windows Internals。會對調試Windows啟動有所助益。

C. 隆重推薦一本好書:程序員的自我修養。看完了比對下UEFI庫函數的一些實現就可以兩相參照了。

以上。其他想到了再補充。

用微信掃描二維碼加入UEFIBlog公眾號

推薦閱讀:

問題列表:如何評估潛在僱主
高管跳槽,是要高年薪還是要高職位?
關於求職類問題的一種解答和一個思考框架
3月底4月初出生的人,適合什麼工作?
判斷運營Offer是否靠譜,只需3個條件

TAG:固件 | 编程 | 职业选择 |