一個UEFI引導程序的實現
5推薦 收藏
2.0K閱讀

一個UEFI引導程序的實現

《一個64位操作系統的設計與實現》續
田宇 (作者)
本書是《一個64位操作系統的設計與實現》的補充內容,開發環境請參照《一個64位操作系統的設計與實現》相關章節:http://www.vbfyl.tw/book/tupubarticle/26323(免費開放)搭建。
本書作為《一個64位操作系統的設計與實現》的補充內容,講述了一個UEFI引導程序的實現過程。通俗的講,讀者們可以將UEFI理解為一種用于取代BIOS的新型固件程序。與BIOS固件程序相比,UEFI引導程序在性能、可擴展性、安全性和開發效率等諸多方面都得到了提升。

全書首先介紹了BIOS和UEFI兩類固件的結構與啟動流程;然后從UEFI的優點與BIOS的缺點作為切入,講述UEFI取代BIOS的原因;最后通過若干個程序實例,逐步對現有系統進行改造,使其支持UEFI引導啟動。

收藏本書能做什么?

有情況的時候會收到通知,比如電子書發布等。

PS:也會在圖靈社區電報頻道更新

電子書
¥20.00
格式
mobi

出版信息

  • 書  名一個UEFI引導程序的實現
  • 執行編輯關于本書的內容有任何問題,請聯系 楊帆
  • 出版日期2019-07-22
  • 書  號EA040
  • 印刷方式黑白
  • 開  本16開
  • 出版狀態上市銷售
  • 原書名一個UEFI引導程序的實現

所屬分類

本書特色

自《一個64位操作系統的設計與實現》一書問世以來,我們已經收到廣大操作系統愛好者的諸多反饋,有褒獎、有批判也有誠懇的意見。雖然《一個64位操作系統的設計與實現》一書已經向讀者們展示了如何搭建一個操作系統的雛形框架,但是對于一個健壯的操作系統而言,他僅僅邁出了第一步。

本書作為《一個64位操作系統的設計與實現》的補充內容之一,將會繼續對這個64位操作系統進行升級,并逐步引入更多新鮮功能和高級設備驅動程序。

目錄

作者介紹

田宇:Linux內核愛好者,曾在多家大中型軟件公司從事軟件開發工作,參與過多款高端嵌入式產品的開發研制,主要負責Linux內核和驅動的研發,以及開源操作系統環境的深度定制。

大家也喜歡

  • 一個64位操作系統的設計與實現

    田宇  

    本書講述了一個64位多核操作系統的自制過程。此操作系統自制過程是先從虛擬平臺構筑起一個基礎框架,隨后再將基礎框...

  • 跟阿銘學Linux(第3版)

    李世明  

    本書是一本入門級的Linux學習教材,適合初學者閱讀。本教程由淺入深,內容精湛,案例豐富,通俗易懂!書中分兩部...

  • macOS軟件安全與逆向分析

    豐生強   邢俊杰  

    本書深入介紹了macOS系統的軟件安全、逆向分析與加密解密技術,主要包括macOS軟件的開發基礎、macOS系...

  • Linux命令行與shell腳本編程大全(第3版)

    Richard Blum   Christine Bresnahan   門佳   武海峰   譯

    這是一本關于Linux命令行與shell腳本編程的全方位教程,主要包括四大部分:Linux命令行,shell腳...

  • 精通Linux(第2版)

    Brian Ward   姜南   袁志鵬   譯

    <內容簡介> 本書講解了Linux操作系統的工作機制以及運行Linux系統所需的常用工具和命令。根據系統啟動...

  • 下期預告,一個內核模塊化功能的實現
    田宇  發表于 2019-07-22 15:06:24
    推薦
    • 已購買此書,期待下期盡快出!

      VitalyR  發表于 2019-07-29 23:06:18
  • 第一章提到:“開機后,CPU首先跳轉到物理地址0x0FFFF0處執行程序”。

    錯!應該是0x0FFFFFFF0處執行程序。詳情見Intel system developer manuals第三卷第九章Processor Management and Initialization。摘錄如下:

    9.1.4 First Instruction Executed
    The first instruction that is fetched and executed following a hardware reset is located at physical address
    FFFFFFF0H. This address is 16 bytes below the processor’s uppermost physical address. The EPROM containing the
    software-initialization code must be located at this address.
    The address FFFFFFF0H is beyond the 1-MByte addressable range of the processor while in real-address mode. The
    processor is initialized to this starting address as follows. The CS register has two parts: the visible segment
    selector part and the hidden base address part. In real-address mode, the base address is normally formed by
    shifting the 16-bit segment selector value 4 bits to the left to produce a 20-bit base address. However, during a
    hardware reset, the segment selector in the CS register is loaded with F000H and the base address is loaded with
    FFFF0000H. The starting address is thus formed by adding the base address to the value in the EIP register (that
    is, FFFF0000 + FFF0H = FFFFFFF0H).
    The first time the CS register is loaded with a new value after a hardware reset, the processor will follow the normal
    rule for address translation in real-address mode (that is, [CS base address = CS segment selector * 16]). To
    insure that the base address in the CS register remains unchanged until the EPROM based software-initialization
    code is completed, the code must not contain a far jump or far call or allow an interrupt to occur (which would
    cause the CS selector value to be changed).
    hecto2  發表于 2019-07-30 15:43:04
    推薦
    • 是的,根據9.1.4 First Instruction Executed的描述,CPU是從物理地址FFFFFFF0H處開始執行的,但是電腦在啟動的時候A20地址線是關閉的,這就導致超過0x0FFFFF物理地址的訪問都會回環到0~0x0FFFFF范圍內,所以CPU才會從物理地址0x0FFFF0處執行程序。

      田宇  發表于 2019-07-30 21:21:45
    • @田宇 你理解錯了,開機時不會回環,A20關閉不影響CPU在FFFFFFF0H處執行。不信你用VMWare調試一下第一條指令,地址就是FFFFFFF0H。固件必須將第一條指令掛載到FFFFFFF0H,不然也得不到執行。CPU reset時,CS和背后的基址是不一致的,基址并非CS左偏移4位,也就是說這時CPU執行地址不用CS << 4 + IP計算,更不用提A20了。當CPU執行到第一條long jmp之后,CS的值得到刷新,背后的基址部分置為CS左偏移4位,這是A20才起作用。

      hecto2  發表于 2019-07-31 11:02:29
    • @hecto2 我又調查了一下,在386以后的CPU是從物理地址FFFFFFF0H處開始執行的,但是芯片組好像會有比較復雜的映射,將物理地址0x0FFFFF處的BIOS跳轉程序映射到FFFFFFF0H,這個錯誤我已經更正了,感覺您的關注。

      田宇  發表于 2019-07-31 22:01:45
  • 感謝,終於出版了。
    descent  發表于 2019-07-22 16:30:22
    推薦
    • 謝謝關注與支持

      田宇  發表于 2019-07-24 10:12:17
  • 不是每周半價么。怎么是15/20?
    Wenyang  發表于 2019-07-24 01:49:46
    推薦
    • 這是本新上市的電子書,15/20是上市的限時優惠活動

      田宇  發表于 2019-07-24 10:11:31
  • 要求提供PDF版本,mobi在電腦上真的不容易閱讀(Mac電腦上也沒有比較好的mobi閱讀器)
    zysyyz  發表于 2019-08-09 01:41:53
    推薦
10000炮李逵劈鱼下载 大乐透云南9345万大奖 急速赛 四川快乐12500期走势图 期本期特码 极速赛走势图 百胜彩票APP 任选九最低奖金 白姐透码波色网 北京pk走势图助手 四川快乐12选5推荐号码