BIOS简介
基本输入输出系统BIOS(Basic Input Output System),是加载在计算机硬件系统上的最基本的软件代码。BIOS是在操作系统OS(Operating System)之下的底层运行程序,BIOS是计算机硬件和OS之间的抽象层,用来设置硬件,为OS运行做准备,BIOS在系统中的位置如下图所示。
图1-33 BIOS在系统中位置
BIOS主要功能是上电、自检和检测输入输出设备和可启动设备。包括内存初始化,硬件扫描和寻找启动设备,启动系统,目前都是使用SPI(Serial Peripheral Interface)Flash存储BIOS。
BIOS本质上是固化到主板ROM中的一组程序代码,提供最底层的、最直接的硬件配置和控制,负责硬件检测和初始化并完成操作系统引导。
TaiShan服务器是以Linaro的UEFI基础代码为基础开发的,具有自主知识产权和专利的BIOS产品,具有可定制化和丰富的带外带内配置功能及可扩展性特性。
UEFI
UEFI:universal Extensible Firmware Interface(统一可扩展固件接口)。
UEFI组织成员已从2005年成立时的11家发展到2009年130多家,大多是世界知名软硬件厂商。
2009年7月基于UEFI2.3规范,支持ARM Cortex-A8处理器的EFI BIOS版本发布,标志着EFI BIOS正式支持非X86架构的处理器。
UEFI BIOS发展历程如下图所示:
图1-34 UEFI BIOS发展历程
UEFI-conts
UEFI实现一般分为两部分:
平台初始化(遵循Platform Intialization标准,同样由UEFI Forum发布)。
固件和操作系统接口。
图1-35 UEFI启动过程
PEI-Core、PEIM、PPI、Dispatch、Services
PEI阶段主要完成内存初始化,为驱动执行环境做准备。
PEI CORE提供了7种Pei services:
PPI Database服务:主要是为了实现不同PEI驱动模块之间功能的调用,它们通过PPI服务达到模块之间的相互调用。
Boot Mode服务:管理启动模式,如正常模式、诊断模式。
HOB服务:主要是一种将PEI阶段的平台信息和配置数据传递到DXE的机制。
Firmware Volume服务:主要是提供一种固件文件系统管理,在固件flash中如何找到需要安装的PEIM。
PEI Memory服务,PEI阶段内存不用,因此PEI Core提供了在内存初始化前后的内存管理服务,以便驱动的初始化所需。
Status Code服务:提供系统通用的处理和错误码上报等服务。
Reset服务:提供热复位和冷复位的方法。
图1-36 PEI阶段
DXE-Core、Driver、Dispatcher、AP、System Table
初始化EFI Boot Services、EFI Runtime services等。
遍历固件中的所有Driver并执行(依赖关系)。
找到BDS入口函数,进入BDS阶段。
图1-37 DXE阶段
BDS:Connect
BDS连接DXE阶段安装的驱动;OEM and IBV可以定制BDS的启动策略。
BDS产生各种启动选项,并进行引导。
图1-38 BDS阶段
Kunpeng与x86的BIOS差异
Kunpeng 和x86的BIOS差异及其他注意点。
TaiShan 2280 BIOS与x86 BIOS差异比较大,但是部分设置选项类似,需要重点注意以下几点:
TaiShan BIOS只支持UEFI模式,不支持legacy模式 。
在UEFI模式下,没有设置默认启动盘的说法,只有legacy模式才有设置默认启动盘的说法。
只有加载了TaiShan服务器所支持的OS的镜像的光驱,才会被识别为启动项。例如kvm虚拟光驱挂载的x86的OS镜像,BIOS是识别不到光驱这个启动项的。
服务器BIOS的发展及技术小结
------------------------------------------------------------------------------------------------------------------------------------------------
BIOS是计算机启动时首先运行的一组程序,它是硬件和软件之间的接口,也是操作系统与硬件之间的接口。BIOS主要负责初始化硬件设备、加载引导程序以及提供一些基本的输入/输出功能。在服务器领域,BIOS的重要性不言而喻,它对于服务器的稳定运行、性能发挥以及故障排除都起着至关重要的作用。
一、服务器BIOS的发展历程
1. 传统BIOS
传统BIOS是由一系列汇编语言程序组成的,它直接对硬件进行操作,包括对内存、硬盘、键盘、显示器等设备的初始化和配置。由于汇编语言对硬件的直接控制能力,传统BIOS具有高效、快速的特点。但是,由于其使用汇编语言编写,开发难度大,且更新和维护都较为困难。
2. UEFI(Unified Extensible Firmware Interface)
UEFI是继传统BIOS之后的一种新型固件接口。它采用了模块化设计,由多个规范和协议组成,例如GPT(GUID Partition Table)和ACPI(Advanced Configuration and Power Interface)。UEFI具有更高的灵活性和可扩展性,支持使用C语言等高级语言进行开发。同时,UEFI还提供了更为强大的功能,如网络支持、文件系统和安全性等。
二、服务器BIOS的主要技术特点
1. 硬件初始化
BIOS在服务器启动时负责初始化硬件设备,包括CPU、内存、硬盘、显卡等。BIOS会根据硬件设备的规格和参数进行配置,以确保设备的正常运行。在这一过程中,BIOS还需要对硬件设备进行自检,以检测是否存在硬件故障。
2. 引导程序加载
BIOS在初始化硬件后,会加载操作系统的引导程序。在这一过程中,BIOS需要识别操作系统的启动方式(如从硬盘启动、从USB设备启动等),并将控制权交给相应的引导程序。引导程序会加载操作系统的核心文件,并最终将控制权交给操作系统。
3. 高级功能
除了硬件初始化和引导程序加载外,现代的服务器BIOS还提供了一些高级功能。例如:
(1)远程管理:BIOS可以通过网络远程接管服务器,方便管理员进行远程管理和维护。
(2)安全功能:现代的服务器BIOS通常具有安全芯片或加密算法,可以对引导程序和操作系统核心文件进行保护,防止未经授权的访问和篡改。
(3)能源管理:服务器BIOS可以监控服务器的能源消耗情况,并根据需要进行调整,以达到节能的目的。
三、服务器BIOS的未来发展趋势
1. 安全性增强
随着网络安全问题的日益突出,服务器BIOS的安全性也受到了越来越多的关注。未来的服务器BIOS将会更加注重安全性,采用更加严格的加密算法和安全协议来保护服务器的引导程序和操作系统核心文件。同时,服务器BIOS还需要加强对外部攻击的防范能力,以防止恶意软件对服务器的攻击和入侵。
2. 智能化管理
随着云计算和大数据技术的快速发展,服务器集群的应用越来越广泛。未来的服务器BIOS将会更加注重智能化管理,通过与云平台和大数据技术的结合,实现对服务器集群的集中管理和监控。这样不仅可以提高服务器的管理效率,还可以降低运维成本和管理难度。
3. 可定制化发展
不同的应用场景对服务器的需求也不同。未来的服务器BIOS将会更加注重可定制化发展,根据不同的应用场景和客户需求,提供个性化的解决方案。例如,针对高性能计算场景的服务器BIOS可能会更加注重并行处理和内存扩展能力;针对数据中心场景的服务器BIOS可能会更加注重能源效率和网络性能等方面。
--------------------------------------------------------------------------
IBM PC兼容BIOS的技术
BIOS在IBM PC兼容系统上,是一种业界标准的固件接口。
BIOS这个字眼是在1975年第一次由CP/M操作系统中出现。
BIOS是个人电脑启动时加载的第一个软件。
BIOS是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。
BIOS的主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,BIOS还向操作系统提供一些系统参数。
系统硬件的变化最早由BIOS感知,早期的操作系统使用BIOS功能而不是直接控制硬件。而现代操作系统会忽略BIOS提供的抽象层而直接驱动并控制计算机硬件。
BIOS的主要功能有三个
第一个部分是用于电脑刚接通电源时对硬件部分的检测,也叫做加电自检(Power On Self Test,简称POST),
功能是检查电脑是否良好,通常完整的POST自检将包括对CPU,640K基本内存,1M以上的扩展内存,ROM,主板,CMOS存储器,串并口,显示卡,软硬盘子系统及键盘进行测试,
一旦在自检中发现问题,系统将给出提示信息或鸣笛警告。自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;
对于非严重故障则给出提示或声音报警信号,等待用户处理。
第二个部分是初始化,包括创建中断向量、设置寄存器、对一些外部设备进行初始化和检测等,
其中很重要的一部分是BIOS设置,主要是对硬件设置的一些参数,当电脑启动时会读取这些参数,并和实际硬件设置进行比较,如果不符合,会影响系统的启动。
第三个部分是引导程序,功能是引导DOS或其他操作系统。
BIOS先从软盘或硬盘的开始扇区读取引导记录,如果没有找到,则会在显示器上显示没有引导设备,
如果找到引导记录会把电脑的控制权转给引导记录,由引导记录把操作系统装入电脑,在电脑启动成功后,BIOS的这部分任务就完成了。
BIOS的作用:
BIOS在计算机启动时负责和所有硬件沟通,并将计算机呈现在用户面前.
BIOS与南/北桥:
北桥主要控制内存和CPU,而南桥主要负责PCI,PCI-E,USB,VGA等所有外围设备.
在南桥里面有一块特殊的区域,负责存储CMOS的信息,CMOS是用户存储BIOS设备的地方.
BIOS的引导过程:
1)开启电源.
2)CPU先被激活并去寻找BIOS.
3)BIOS会初始化各种主板芯片组.
4)BIOS初始化键盘控制器8042.
5)初始化中断向量,中断服务例程.
6)初始化VGA BIOS控制器.
7)显示BIOS的版本和公司名称
8)扫描软驱和各种介质容量
9)读取CMOS的启动顺序配置,并检测启动装置是否正常
10)调用INT 19H的2号功能来读出硬盘MBR扇区的内容,将其读入到内存0000:7C00h,并跳转至此处执行.