闲来无事回头看看,自毕业以来一直都在BIOS这个行业打转,目前的各种新闻来看全球的IT行业都似乎不太景气,PC出货量一泻千里,想要有所转机看起来不是一天两天的事情,想来无事来看看做过的几个UEFI BIOS方案有什么不同。目前市面上常见的X86平台的UEFI实现方案大致分为几个,AMI,Insyde,phoenix还有一个就是号称是国产的百敖软件,再者就是intel自己的tiano,亲自见到并用过的有两家,AMI的Aptio以及Insyde的H2O,以下就自己的体会做一个梳理。

    AMI方案:(8分)这个是本人用的时间最长的一个,大概用了5年多,从Core 8时代开始AMI就是BIOS领域的龙头,到APtio 4以及Aptio V更是占领了大部分的市场份额。它在各个OEM厂商中得到了比较大的支持。
AMI方案优点:
    1.有比较友好的编译编辑工具支持Veb是AMI开发的针对aptio的一个比较方便的编辑,编译与代码版本控制工具。它除了提供普通的文本编辑功能之外,还有提供了类似于Token,Elink,IO,PCI,等各种方便OEM修改的功能,当然这些东西最好是少用,用的越久就会越傻,慢慢的就变得只知token的token工程师了,当然这个不是咱们这种喜欢寻根问底的人所希望的,最好的方法是通过编译产生的中间文件,找出当你修改某个token或者是选中某个钩钩的时候,系统会生成什么样的配置文档,一般来说这些选项和钩钩都会生成一个文本文档,最终都会通过批处理或者是makefile转换成标准EDK的配置文档inf,dec,dsc,fdf这些配置文档识别的格式,然后插入到这些配置文档当中,在最后的make步骤当中被EDK的build程序所调用,最终达到方便修改的目的。当然如果你只是做项目的话,只改改toke如果只是一些小公司或许在要求不高的情况下就能对付过去了,不过这种方法肯定不会长久,一旦你找不到token就傻眼了。
    2.刚刚说到的AMI的方案的最大的优点是开发流程方便,友好,还有就是AMI的技术支持也还是不错的前提是你大厂,有跟他们签协议,一般的问题报EIP之后他们会比较快速给你提供支持。
    3.AMI的代码写的比较规范包括命名,注释什么的这些都是体现一个软件公司的实例。
    4.AMI提供了许多的OEM portting的指导规范,一般的OEM功能的porting基本都能从他们提供的文档上找到操作方法,一般都是比较傻瓜的,稍微有点基础的人都能做得到。
AMI方案的缺点:
    1.最大的缺点是太傻瓜,做的太过于面面俱到,以至于新手入门简单改改token就能完成任务,但是很难理解到其内部的精髓,它把大量的UEFI内部的细节给隐藏起来,以至于即使是他们提供的porting文档也只介绍如何使用他们经过封装之后的API和token,让人很难去看到本质。
    总之,优点在于实力雄厚,代码规范,入门简单,操作方便,缺点在于一叶障目难见泰山真面目。
    Insyde方案:(6分)这个是近一年左右接触到的方案,Insyde作为intel的亲儿子最开始据说是做EC起家的,读过他们的EC代码还不错,但是如果读他们的H2O的话你会有一种要撞墙的感觉,简直就是狗屎,当然我不是说代码本身写的不好,而是代码里面的调理,注释,各种乱七八糟的注释,完全不知道那是代码,那是注释,你会有要吐的感觉。
 Insyde方案优点:
    1.虽说代码读起来有要吐的感觉,但是并不是毫无优点,它最大的优点在于比较完整的保持了UDK的代码结构,这样如果你熟悉UDK的话会发现比较容易找到你想要找到的东西。参照标准的UEFI和UDK的文档你会比较容易读懂代码。
    2.好像没有其他优点了
Inyde方案缺点:
    1.没有比较友好的编辑编译界面,只能在CMD下编译,用edit或者SI修改,代码搜索不方便。
    2.代码编写注释混乱,影响阅读代码的心情。
    3.入门相对AMI比较难。
    4.部分的代码不提供给OEM,只提供了EFI格式或者是bin档,显得非常小家子气,这个是最让人鄙视的。
    4.每一个平台没有一个比较同一的编程接口提供给用户,方便porting和阅读。虽然也有类似的core,chipset ,oem这种层次,但是不够清晰。
    总之,缺点大过优点,不过鉴于insdye是intel的亲儿子,在自己的努力和intel的支持之下,在众多的平板笔记本领域还是有自己的一席之地。初学者不建议玩这个。
    UDK方案,这个是开源方案,主要由intel发起与贡献,后期在tinao的基础上得到了各个软件硬件厂商的支持不断扩大发,成为现在的UDK,基本上是UDK+RC+OEM lib+CSM就构成了一个完整的BIOS
基本上insyde的方案就是这种,它的最大优点在于有详尽的文档,规范的编码风格,开源的代码,有众多的人参与到社区讨论学习,贡献自己的代码,甚至包括编译工具都是开源的,用户可用自行修改(AMI就是这么干的),缺点在于如果想要用UDK直接来开机,需要比较强的实例和芯片原厂的支持比如RC,OPROM等需要NDA才能拿到,一般的小公司是没有这个实例和渠道的。
    其他方案:没用过,不好评论。
OK,以上仅为个人观点,不喜勿喷。
 
转载请注明出处
Cstyle.z.zhou@outlook.com  //  http://blog.csdn.net/CStyle_0x007

转载 AMI方案和Insyde方案的更多相关文章

  1. SEO诊断方案以及执行方案

    http://www.wocaoseo.com/thread-127-1-1.html 今天和大家一起讨论一下SEO诊断方案以及SEO执行方案要怎么写,主要从哪些方面进行呢,做SEO的朋友们一直在探讨 ...

  2. 【转载】Android推送方案分析(MQTT/XMPP/GCM)

    http://m.oschina.net/blog/82059 本文主旨在于,对目前Android平台上最主流的几种消息推送方案进行分析和对比,比较客观地反映出这些推送方案的优缺点,帮助大家选择最合适 ...

  3. [转载]SecureCRT 绝佳配色方案, 保护你的眼睛

    FROM:http://blog.csdn.net/zklth/article/details/8937905 SecureCRT 绝佳配色方案, 保护你的眼睛   关键词:SecureCRT配色,  ...

  4. 空间搜索(圆范围)中Geohash编码方案和网格编码方案对比探讨

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 多个项目中实现范围(圆)搜索的方案为:依赖库表中的X和Y字段构 ...

  5. 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽)

    我的这个升级篇的代码适用于自己所有的带WIFI和GPRS模块的开发板,升级功能实质上是通过MQTT把数据发给WIFI和GPRS模块,然后模块进行保存和运行. 这个升级程序是当时自己花了两个星期的时间写 ...

  6. 解决IE6中 PNG图片透明的终极方案-八种方案!

    “珍惜生命,远离IE6”,IE6中的bug令很多Web前端开发人员实为头疼,因此不知道烧了多少脑细胞,在众多的Bug中最令人抓狂的就是IE对png图片的不支持,导致设计师和重构师放弃了很多很炫的效果, ...

  7. Ubuntu分区方案(菜鸟方案、常用方案和进阶方案)

    菜鸟方案 “/”与swap两个分区就可以应付绝大多数的应用 常用方案 分为3个区 1. 挂载点/:主分区:安装系统和软件:大小为30G:分区格式为ext4: 2. 挂载点/home:逻辑分区:相当于“ ...

  8. CS5218替代AG6310方案|设计DP转HDMI转换方案|替代AG6310方案

    AG6310是一款实现显示端DP口转HDMI数据转换器.AG6310是一款单芯片解决方案,通过DP端口连接器传输视频和音频流,其DP1.2支持可配置的1.2和4通道,分别为1.62Gbps.2.7Gb ...

  9. CS5218|DP转HDMI4K30HZ方案|CS5218应用方案

    Capstone CS5218是一款单端口HDMI/DVI电平移位器/中继器,具有重新定时功能.它支持交流和直流耦合信号高达3.0-Gbps的操作与可编程均衡和抖动清洗.它包括2路双模DP电缆适配器寄 ...

随机推荐

  1. JS基础_实参可以是任何值

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. ember server禁用Livereload server on http://localhost:49152

    ember server --live-reload=false

  3. 基于Vue实现拖拽效果

    参考地址:基于Vue实现拖拽效果 参考链接中讲的比较详细,我只使用了其中自定义指令的方法.整体代码如下: <template> <!-- 卡片 --> <div clas ...

  4. Linux安装配置go运行环境

    1. 下载go,解压 gz包 wget https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz tar zxvf go1.7. ...

  5. DS1302时钟

    采用串行数据传送方式,SPI 3线接口 SPI总线 SPI接口是以主从方式工作的,通常有一个主器件和一个或多个从器件 MOSI – 主器件数据输出,从器件数据输入 MISO – 主器件数据输入,从器件 ...

  6. 如何用Visual Studio Code远程调试运行在服务器上的nodejs应用

    假设我有一个nodejs应用,运行在AWS - 亚马逊云平台上(Amazone Web Service).我想用本地的Visual Studio Code来远程调试服务器端的nodejs应用. Vis ...

  7. InnoDB意向锁的作用

    https://www.zhihu.com/question/51513268?sort=created IX,IS是表级锁,不会和行级的X,S锁发生冲突.只会和表级的X,S发生冲突. 意向锁是一种快 ...

  8. 第一章、接口规范之Restful规范

    阅读目录 2.1 数据的安全保障 2.2 接口特征表现 2.3 多数据版本共存 2.4 数据即是资源 2.5 资源操作由请求方式决定 3.1 正常响应 3.2 重定向响应 3.3 客户端异常 3.4 ...

  9. 前端基础(九):SweetAlert(弹出框)

    简介 SweetAlert是一款很好用的弹出框框架 下载 点我下载 导入 博主用的是bootstrap-sweetalert,所以要依赖bootstrap,导入前先导入原生jQuery以及bootst ...

  10. selenium检测webdriver封爬虫的解决方法

    有不少朋友在开发爬虫的过程中喜欢使用Selenium + Chromedriver,以为这样就能做到不被网站的反爬虫机制发现. 先不说淘宝这种基于用户行为的反爬虫策略,仅仅是一个普通的小网站,使用一行 ...