UEFI Framework - 2 [ Basic EFI Architecture ]



1.The EFI System Table
   很重要的Data Structure,記錄了許多data information 以及 System 的Function Call 。


    包含了以下幾項Services

  1. EFI Boot Services:開機時到還沒呼叫 ExitBootServices時會存在
  2. EFI Runtime Services:開機到進入OS都可以使用
  3. Protocol services:能讓EFI Driver使用,用來註冊Handle。





2.Handle database and protocols
   記錄了可被呼叫的Handle


  Handle 可儲存的資訊類型

  1. 可被執行的image像EFI Application以及 EFI Driver
  2. Network Controller Device 以及 Hard Drive Partition
  3. EFI Service (EFI Decompression 及 EBC Virtual Machine)




Handle 是由一或多個Protocol Interface所組成
而Protocol Interface 則以GUID來做區分


在Handle內部中的Protocol Interface裡有一或多個Function Pointer
這些Function Pointer 會對應到某EFI Driver開放出的Function
像下圖就解釋到許多的觀念,一個EFI Driver能透過許多的GUID分享Function出來





3.EFI images
   佈署好可被執行的格式


      

  1. EFI Application :有自己的memory及status的Image,在APP exit的時後Release
  2. EFI Boot Service  drivers: 在Boot的時後會存在的 Driver,一樣會有自己的Memory及status,在 ExitBootServices後會Release。
  3. EFI Runtime Drivers:自己本身的Memory及status會一直存在。





4.Events
   可用軟體發出的signaled,讓程式能以下面的Event做出想要的事情

  1. Wait Event
  2. Signal Event
  3. ExitBootServices Event
  4. Timer Event
  5. Periodic Timer Event
  6. one-shot timer Event







5.Device paths
   一個Data Structure 描述了Hardware 的Entity,像是Bus 或是 Partition ,EFI Image 在已經Formatted disk的 File Name。簡單的說,也就是在EFI中描述一個Device的Path。




參考文章:http://blog.yam.com/wttmama/article/33757450

留言