闲来无事回头看看,自毕业以来一直都在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. Docker Registry搭建

    一.前言 Docker官方镜像仓库 访问速度很慢,Docker Registry允许搭建我们自己的镜像仓库,为实现镜像拉取.推送提供便利. 二.安装与启动 1.创建目录 mkdir /usr/loca ...

  2. react hooks学习

    接触React项目快两个月了,还在研究摸索各种知识点的过程中,充实且幸福. 在项目中学习新知识,还是很有效率的,一边写项目,一边实验新的知识点,比如react hooks!嘻嘻嘻~~~ 写了好一段时间 ...

  3. java Spring boot项目简单说明

    前言 一直从事.NET开发,但一直有种想去探索Java世界的冲动,今天终于有时间来尝试一下,以下是自己探索过程的简要记录. 一.开发工具 开发工具选用 IntelliJ IDEA社区版(免费),安装教 ...

  4. Oracle使用基础

    1.Oracle的基本概念: 数据库:存储数据的数据库,Oracle一般只有一个全局数据库 XE,ORCL. EX:Express Edition 速成版 ORCL:企业版 SID:SID是Syste ...

  5. 获取impala下所有的数据库建表语句

    方法一: 现在的导出还是有缺陷的,导出的文件中还是存在其他不必要的信息 #!/bin/bash ##获取数据库 databases=$(hive -e "show databases; ex ...

  6. weui 注意事项

    个人随笔日记,还请小心采纳为甚 手机移动web开发必须要做的两点: 1.body中加上ontouchstart,即<body ontouchstart>...</body>: ...

  7. 《Python数据科学手册》

    <Python数据科学手册>[美]Jake VanderPlas著 陶俊杰译 Absorb what is useful, discard what is not, and  add wh ...

  8. HLS manifest standard 翻译: HTTP Live Streaming draft-pantos-http-live-streaming-23

    我为什么要干这种事 Introduction to HTTP Live Streaming 1 OVerview Multimedia presentation : specified by a Un ...

  9. 学习elasticsearch(一)linux环境搭建(1)

    首先安装了Oracle Virtual Box 然后安装了最小版的CentOS.由于vbox自带的操作面板不太好用,于是用了xshell,XShell连接最小版的centOS时遇到的问题记录下. 1. ...

  10. bat 读取 ini 配置文件

    bat 读取 ini 配置文件 config.ini: abc=abc a=a localpath=D:\local\path .bat: @echo off setlocal enabledelay ...