21

UEFI新书推荐:《UEFI编程实践》

 3 years ago
source link: https://zhuanlan.zhihu.com/p/407746965
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

UEFI新书推荐:《UEFI编程实践》

中央处理器 (CPU)话题下的优秀答主

借着国产芯片爆发的东风,BIOS这个“古老”的行业也萌发了新的生机。人才短缺、新人入门难的问题普遍困扰着业界上下游厂商。作为一个“偏门”的行业,UEFI相关图书十分稀少。经典书籍说起来,不外乎《Beyond BIOS》、《Harnessing the UEFI Shell》、《Quick Boot》等外文书籍,对英文阅读能力要求颇高。中文书籍到目前只有一本:戴正华所著的《UEFI原理与编程》,但因为成文较久,部分内容和用例已经不能和最新EDKII代码兼容。

UEFI或者说BIOS行业颇为枯燥,需要阅读大量Spec和硬件资料。如何写出既有专业性又兼顾趣味性和实用性的图书,是个十分具有挑战的事情。笔者曾经所在的Intel EDKII内核开发团队原计划写作一本《UEFI与EDKII源代码分析》,但基本成文后出版社反馈只有专业性没有可阅读性,市场接受度不高而最终夭折。

最近非常高兴得获悉,朋友罗冰

结合自己多年BIOS和UEFI Option ROM的编程经验和对UEFI的不懈探索,将多年在CSDN上的博客集结和补充成书,新作《UEFI编程实践》已经在京东和当当等渠道上线,出版社是科技界享有盛誉的机械工业出版社华章分社:

昨天收到了编辑朋友寄来的样书,迫不及待得通读了一遍。全书分为12章节:

v2-77b21736e5b53b96d7080fb62db6c64a_720w.jpg《UEFI编程实践》内容思维导图

《UEFI编程实践》书如其名,注重实践和实用。在介绍了一些基础概念后,开始帮助初学者一步步建立开发和调试环境,并逐步梳理UEFI开发驱动或应用中会遇到的一些相关知识点。在厘清这些基础内容后,图书中段开始在图形图像、外围设备访问等这些驱动开发者比较关心的方向上详细阐述,并提供大量参考代码。图书最后学以致用,并结合现在的热点,在两款国产化平台:龙芯和飞腾上,介绍如何落地相关的开发知识。

《UEFI编程实践》亮点颇多,随书指向大量Robin开发的示例代码,可以供读者参考。最让我眼前一亮的是,在介绍PCI ROM驱动编写的时候,提供了PCI的硬件实验板;在介绍USB访问的时候,也自制了USB实验板。不但完成了程序员最爱挂在嘴边的“Show me the code”,而且做到了“Show me the hardware”和“Show me the behavior”,让读者可以方便得到程序的反馈,加深记忆。最后两章也颇有新意,即可以落地热门国产平台,又借助模拟器绕过了国产平台CRB非常难取得的问题,让普通读者也有机会试玩和实践一下。

最后说几点《UEFI编程实践》可能的缺憾:

  1. 《UEFI编程实践》与《UEFI原理与编程》类似,都是注重UEFI外围使用。对UEFI和它的参考实现EDKII,在内核设计理念和沿革上的阐述略显单薄。
  2. 对BIOS工程师比较关心的部分,尤其是平台初始化的各个阶段的难点和痛点、平台移植的要点等缺乏阐述。
  3. 有少许错误内容,后期可能会修正。

相信Robin也是考虑到该书的受众和实用性,避免枯燥的说教。也许正是这样,才能让这本书的对象不只是“偏门”的BIOS工程师,也可以兼顾UEFI爱好者等人群。总之,瑕不掩瑜,《UEFI编程实践》是本好书,是现在市面上“唯二”的中文UEFI书籍,非常适合BIOS初学者和学生群体。

好消息!感谢华章编辑部的老师,我得到一些《UEFI编程实践》的样书,将会在“UEFIBlog”公众号和我们的卓易云课堂进行抽奖,欢迎大家参加。

加入公众号可以微信搜索“UEFIBlog”或扫描下面的二维码:

云课堂在这里,在云课堂中可以学到UEFI的知识体系:

还可以加我的小号wolfwooxiaoxiao,我拉进BIOS群中(需是BIOS业内人士)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK