在RK3588上体验UEFI

在RK3588上体验UEFI

Unified Extensible Firmware Interface

UEFI是一种固件技术,源于英特尔,最初的开发代号叫Tiano。项目的开始时间大约在本世纪初,当时的固件代码都很陈旧,主要用汇编语言和C语言编写,繁杂拖沓,难以维护扩展。与此同时,英特尔当时投巨资的安腾项目使用了众多开创性的创新设计,需要在固件层做很多修改,要在陈旧的BIOS上代码做这些修改难度很大。为此,Tiano项目应需而生,引入当时流行的COM技术精华,普遍使用接口技术,使用GUID来表示接口,使用C++代替C语言。

# 大哉,固件

2004年,Tinao项目初步完成,以EFI为正式名字对外发布。在Intel网站,还可以找到当年的一则新闻稿:

Intel Invites Industry In Design Of Technology To Succeed BIOS,Industry Collaboration Key in Addressing Oldest Software Technology in PC Platforms。

标题大意是,Intel引领产业设计取代BIOS的新技术,针对PC平台上的最古老软件技术开展产业合作。

这个标题把BIOS称为PC平台的最古老软件技术是很合适的。的确,BIOS源于已经成为历史的CP/M操作系统和DRI公司,它的发明者是DRI的创始人Gary Arlen Kildall。我在《软件简史》第六篇《亢龙有悔》中详细描述了Gary的传奇人生和他对PC产业和系统软件所作的巨大贡献。

1b01c6f9b1f019e51e5be4b0a0c2847e.png

8abbc1d347de83a88d4fe6de1045a4d5.jpeg

《软件简史》中关于PC软件

和BIOS技术的追根溯源

Kildall是PC技术的开路者,他在Intel开发8086时,就是Intel的软件顾问。他成名时,比尔·盖茨还在找方向,比尔·盖茨曾多次到Kildall的家里登门求教。从下面这张照片可以看出一些微妙的信息。

189af405cc8f6965a8375376cd4c687f.png

比尔·盖茨(中)与Kildall(右)的合影

固件技术的核心价值是隔离硬件差异,让操作系统可以以统一的接口来管理五花八门、不断变化的硬件。这也正是Gary Arlen Kildall当初发明BIOS技术的初衷。这个技术的价值也被比尔·盖茨所心领神会,凭借这个技术,微软的Windows操作系统在PC时代畅通无阻,只要是有BIOS的盒子,就可以安装Windows。

cf8d2a7c26c63b57d8922d9856e50700.png

b5cc422ace23987b4da483691c83b746.png

# 林纳斯大神怒批ARM

2005年,Intel连同几家伙伴一起成立UEFI论坛(UEFI Forum),从此,Tiano技术的成果开始以UEFI的形式发展。UEFI论坛的最初成员有:

AMD, American Megatrends, Inc., Dell Inc., HP, Intel Corporation, International Business Machines Corporation, Insyde Software Corp., Microsoft Corp., and Phoenix Technologies Ltd. to Collaborate

注意,上面的成员列表中没有ARM,原因当然有很多。从ARM玩家的角度看,当时ARM的主要场景还是嵌入式和垂直领域。对于这些场景,通常是像苹果那样,一家公司做整个软件栈,软件兼容的压力不是很大,所以对固件层的需要不是那么迫切。

d8745095a7f5c24b6298111c88615849.png

a1160fc40dd957fb747c6ce3cf0ff41b.png

但随着ARM系统的硬件越来越强大,越来越多的ARM系统开始使用通用的LINUX内核,这时兼容问题便日益严重了。太多厂商不停往Linux内核的代码树上合并看似相同却又不同的适配代码。这种现象持续了几年,导致Linux内核的arch/arm目录不断膨胀,一大堆以mach开头的目录,一眼看不到边,直到今天,这个目录仍然如此。

终于有一天,当一位名叫Tony Lindgren的人想把自己的代码合并到内核代码树时,遇上了林纳斯大神心情不好,大发雷霆。

FromLinus Torvalds <>

DateThu, 17 Mar 2011 19:50:36 -0700

SubjectRe: [GIT PULL] omap changes for v2.6.39 merge window share 292

On Thu, Mar 17, 2011 at 11:30 AM, Tony Lindgrenwrote:

>

> Please pull omap changes for this merge window from:

Gaah. Guys, this whole ARM thing is a f*cking pain in the ass. You need to stop stepping on each others toes. There is no way that your changes to those crazy clock-data files should constantly result in those annoying conflicts, just because different people in different AR

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值