2011年5月10日星期二

BIOS修改入门系列之一:初识BIOS

  前些天,弟弟花1000多元买了台二手hp笔记本(带指点杆,指纹,配置不错,成色也很好,值啊),自己从网上下载了hp oem win7自行安装,结果安装后无法激活,请教于草帽。由此,产生了写几篇关于BIOS修改的入门系列文章的想法。
  之所以称之为“入门”,是因为所有的一切都是从网络和书籍中学到的,再加上因为胆子较大敢动手,才略懂皮毛而已;理论知识的缺失、系统教育的贫乏,仅凭胸中点墨,写出来的注定也就是个入门了,呵呵。

  草帽就是个化工厂工人,文化不高,且秉承鲁迅先生教导的“拿来主义”精神,因而这个入门系列文章的内容就从网络上随手拈来,稍加修改,以达滥竽充数之 目的。出于对作者的尊重,文中所引内容,会尽可能的说明出处;然网络文章泛滥成灾,实不敢保证出处均为初始链接或书籍,如果有疏漏,请联系草帽,草帽会逐一修改。
  本文是BIOS修改入门系列的首篇文章,鉴于有些朋友对于BIOS并没有清晰地认识,因此先介绍BIOS的基础知识——连锅碗瓢盆都不知道是什么玩意,怎能做好饭炒好菜?
那么“BIOS”是什么呢?

---------摘自《微型计算器》2009年11月上“跨越BIOS的三重门”一文--------
BIOS是工作在计算机最底层的的基本输入输出系统,它是英文Basic Input/Output System的首字母缩写。从本质上来讲,狭义的BIOS就是指加载在电脑硬件系统上的最基本的软件程式码,如果我们按照功能来划分,BIOS有5大功能:
  1. 开机自我测试:检查中央处理器 (CPU) 及各控制器的状态是否正常;
  2. 初始化动作:针对内存、主板芯片组、显卡及周边装置做初始化动作;
  3. 记录系统设定值:提供各元件的基本设定,如显示器、键盘、处理器、内存等;
  4. 提供常驻程式库:提供操作系统或应用程式呼叫的中断常驻程式,如INT 10H等;
  5. 加载操作系统:从储存装置中加载操作系统到随机存取内存。
通俗来讲,我们可以将BIOS看作是专门与硬件沟通的微型操作系统,通常使用与CPU相容的组合语言来编写(机械语言+高级语言)。但在笔者看来,BIOS既是英文的首字母缩写,同时也具有希腊文字“βιοζ”(生命)的寓意。”
……省略一些不重要的……
可以说,BIOS是整台计算机最核心的灵魂,所以必须找到一个合适的容器来妥善保管;否则一旦魂飞魄散,那整台计算机也就失去了工作的能力。由于特殊 的工作要求,BIOS中的微代码程序必须存放在一个断电后能够不丢失信息的只读存储器中,当系统加电或者被重置时,处理器的第一条指令会将地址定位到 BIOS存储器中,让初始化程序开始执行。
……省略一些不重要的……
对于熟悉硬件的朋友们来讲,一说到BIOS除了前面提到的软件代码,我们还会联想到主板或者是显卡上的芯片——从某种意义上来讲,软件代码是Firmware(固件),而“硬件BIOS”则是存放Firmware的芯片。之前较早期的BIOS芯片是不能够被修改的,也就是一次固化成型;而后使用的是可以用紫外线擦除的EEPROM,发展到现在通常使用的是可以反复擦写的Flash材料。
--------------------------------------------------------------------------

  看到这里,朋友们应该知道“BIOS”指的其实一块芯片,芯片里保存着各种功能模块的软件程序代码。然而经常有朋友使用“CMOS”设置来指代BIOS,那CMOS又是什么,与BIOS有什么关系呢?

---------------摘自BIOS之家网站“什么是BIOS”一文------------------------
  CMOS(本意是指互补金属氧化物半导体存储嚣,是一种大规模应用于集成电路芯片制造的原料)是微机主板上的一块可读写的RAM芯片(草帽注:属于内存的一种),主要用来保存当前系统的硬件配置和操作人员对某些参数的设定。 CMOSRAM芯片由系统通过一块后备电池供电,因此在关机状态后信息也不会丢失。由于CMOSRAM芯片本身只是一块存储器,只具有保存数据的功能,所 以对CMOS中各项参数的设定要通过专门的程序。早期的CMOS设置程序驻留在软盘上的(比如我最早用的 AST/286,现在也有个别品牌机如康柏将CMOS设置程序驻留在硬盘上),使用很不方便。目前多数厂家将CMOS设置程序做到了BIOS芯片中,在开 机时通过按下某个特定键就可进入CMOS设置程序而非常方便地对系统进行设置,因此CMOS设置又通常被叫做BIOS设置。
……省略一些不重要的……
BIOS和CMOS的区别与联系:BIOS是主板上的一块EPROM或EEPROM芯片(草帽注:目前更多的是Flash ROM芯片),里面装有系统的重要信息和设置系统参数的设置程序(BIOSSetup程序);CMOS是主板上的一块可读写的RAM芯片,里面装的是关于系统配置的具体参数,其内容可通过设置程序进行读写。CMOSRAM芯片靠后备电池供电,即使系统掉电后信息也不会丢失。BIOS与CMOS既相关又不同:BIOS中的系统设置程序是完成CMOS参数设置的手段;CMOSRAM既是BIOS设定系统参数的存放场所,又是BIOS设定系统参数的结果
---------------------------------------------------------------------------

  又是摘抄,又是引用,搞了上面一堆。其实对于一般用户而言,无须纠结于BIOS或是CMOS的称谓,很多时候我们可以简单的认为BIOS=CMOS,知道指的差不多是同一个东西就足够了。
  目前大家比较常见的BIOS厂商主要有Phoenix、AMI两家,以前还有个Award BIOS,但已被Phoenix并购(不知“并购”一词是否合适,反正现在是一家了);另外,近几年 Insyde(系微公司)的 Insyde H2O BIOS 在品牌机——尤其是笔记本上频繁出现。与传统BIOS相比,Insyde H2O是系微公司依据目前BIOS新标准架构UEFI 2.0,为取代传统BIOS而研发的新一代PC BIOS。UEFI 架构的BIOS目前在华硕、技嘉等厂商的高端主板都有使用。关于“UEFI”,草帽摘抄《微型计算机》上的一段文字,简单介绍一下:

---------摘自《微型计算器》2009年11月上“跨越BIOS的三重门”一文--------
  英特尔公司在2000年的时候开发出可扩展固件接口(Extensible Firmware Interface),这是一种与BIOS功能上类似,但是编程语言更加高级的开发与控制界面,后被称为EFI规范;由于BIOS在计算机用户的印象中根深蒂固,所以很多时候大家又将EFI称为“EFI BIOS”。为了推广EFI,业界很多著名公司走到一起并成立了统一可扩展固件接口论坛(UEFI Forum),之后英特尔将EFI 2.1规范分享给业界,用以制定新的国际标准UEFI规范,其目前最新的版本为2.1b。根据英特尔公司的预测,今后几年将有超过半数的计算机主板使用 EFI 来编写最底层的操作语言。EFI不同于传统的使用16位编译的BIOS程序,它是基于32位程序的,因此与我们平常使用的操作系统更为接近,可以提供更友好的操作项目与菜单。
--------------------------------------------------------------------------

  不同品牌的BIOS是不能通用的,正常情况下我们是不能将Award BIOS刷入到使用AMI BIOS的芯片中的;之所以强调“正常情况下”,是因为曾有主板厂商通过固件升级将主板原本使用的16位传统BIOS升级成为EFI或UEFI BIOS,如此看来还是有办法实现不通品牌的BIOS间的更换改变的。
  那么我们如何判断BIOS品牌呢?方法很多,草帽简单说几个最常用的。
  1. 启动电脑,进入windows或linux等系统之前会有几个界面(多为黑底白字,具体几个还真忘记了,感兴趣的朋友自己观察一下吧),第一个界面显示显卡如品牌、芯片、显存等相关信息,第二个是post自检界面。自检界面的左上角会出现BIOS厂商的标示和信息,不过由于自检界面跳过的很快,因此不易观察。这时可以按下键盘的“Pause Break”按键,停在自检界面上,待确认BIOS品牌以及主板相关信息后,按下任意按键继续自检过程。注意某些主板(多见于品牌机)开机会有厂商logo,然后直接跳过自检界面,这时可以按下键盘的ESC或Tab键即可显示自检界面。
  2. 按下Del或F2按键,进入CMOS设置界面,在最上方查看BIOS品牌,比如Phoenix-Award CMOS Setup Utility、AMIBIOS New Setup Utility等。 有一些使用intel芯片组的主板(多见于品牌机),自检界面上只有intel的品牌标识,而看不到真正的BIOS厂商标识,我们可以使用第二种方法查看BIOS品牌。
  3. 除了上面两种方法,还可以进入系统之后,使用软件查看BIOS品牌,比如Everest、BIOS Agent等等。
开头说过了,本篇是BIOS修改入门系列的首篇,因此暂时就写这么多。在未来几篇文章中,草帽会继续介绍关于BIOS修改的相关知识。草帽保证,当你看完本系列文章之后,你可以动手提取和修改绝大部分的BIOS,将兼容机改为品牌机,激活各种微软视窗oem系统。
  早在月初就打算要写这个系列,但由于杂事、工作太多,一直未能着手开始;今天终于发布了第一篇,迈出了第一步,第二、第三步也就不远了。