BIOS入门基础------OS Loader

       很多大公司,一般都会有自己专门的OS小组,但一般都不会有BIOS小组,因为BIOS这玩意,兼容性太强了,以至于常常被人们所忽略。而很多做服务器的公司,有BIOS小组和OS小组,但怎么说了,划分也太清楚。

        在我看来,作为一个合格的BIOS工程师,必须要懂OS;作为一个OS工程师,要了解BIOS(不奢求懂太多,至少要了解)。在BDS阶段,BIOS会选择可启动项,按照设置的顺序,逐一尝试,经过校验之后,加载OS Loader。

 大致流程如下:

  BIOS(BDS阶段)---->OS Loader---->OS

 所谓的OS Loader,就是引导加载程序。具体点来说,以Linux系统为例,就是GRUB。

OS loader可以通过BS(Boot Services)和RT使用UEFI提供的服务,并且将计算机的资源逐渐转移到自己手中,这个过程称之为TSL(Transient System Loader)。一般而言,在这个阶段结束之后,OS Loader会调用ExitBootServices()函数,结束BS并且回收BS占用的资源,然后BIOS会进入RT阶段;再之后,OS loader才会去加载操作系统内核,逐渐进入OS。

      所以很多时候,在grub阶段出现的问题,BIOS和grub都有责任,而不是仅仅划分为该BIOS处理,该OS处理。简单举个例子,目前市面上的服务器,在redhat7.0系统(及更新的Linux Kernel的OS),在grub阶段拔掉U盘,基本都会挂死,浪潮啊,Hp呀,当然,华为的没事(因为它不支持U盘热插拔,不知道该说是精明还是坑)。

      最后,推荐大家一个系列的规范文档,EDS卷2,EDS vol2一般都是介绍寄存器的,分CPU的,比如Haswell、Wellsburg、Broadwell、Skylake等等,这个基本上是BIOS工程师经常看的。

你可能感兴趣的:(BIOS,IT,OS)