很多大公司,一般都會有自己專門的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入門基礎 ACPI
acpi這部分其實比較重要,因為它關係到了電源 功耗 效能。另外,與os關係比較大。1.對bios而言,acpi最直觀的就是電源功耗,從而影響到cpu效能,具體的設定,就在bios setup介面advanced選單下,高階電源管理這塊,會有許多設定選項。還有cpu的一些狀態設定,例如c state...
C 基礎入門
類 類是資料和函式的封裝體,類也是一種資料型別。在類中資料稱為資料成員,函式稱為成員函式。類的定義一般形式 class 類名 資料成員同結構struct中的資料是一致的,成員函式是對類的私有資料成員操作的惟一途徑。類的成員函式宣告的結構如下 型別 成員函式名 參數列 最後的分號不可以省略 成員函式定...
TCP UDP基礎入門
5.1udp例項 udp傳送程式的步驟如下 1.用wsastartup函式初始化socket環境 2.用socket函式建立乙個套接字 3.用setsockopt函式設定套接字的屬性,例如設定為廣播型別 很多時候該步驟可以省略 4.建立乙個sockaddr in,並指定其ip位址和埠號 5.用sen...