• BIOS中斷調用

    編輯
    本詞條由“匿名用戶” 建檔。

    BIOS中斷調用

    編輯

    BIOS 中斷調是操作系統和應用程序用來調用 IBM PC 兼容計算機上的基本輸入/輸出系統軟件工具。 傳統上,BIOS 調用主要由 DOS 程序和一些其他軟件使用,例如引導加載程序(包括歷史上大多數相對簡單的直接引導并在沒有操作系統的情況下運行的應用程序軟件——尤其是游戲軟件)。 BIOS 運行在 x86 CPU 的實地址模式(Real Mode)下,因此調用 BIOS 的程序要么也必須運行在實模式下,要么必須先從保護模式切換到實模式,然后再調用 BIOS 再切換回來。 出于這個原因,在保護模式或長模式下使用 CPU 的現代操作系統通常不使用 BIOS 中間調試來支持系統功能,盡管它們在引導期間使用 BIOS 中間調試來探測和初始化硬件。 實模式有 1MB 內存限制,現代引導加載程序(例如 GRUB2、Windows 引導管理器)使用虛幻模式或保護模式(并在虛擬 8086 模式下執行 BIOS 中斷調,但僅用于操作系統引導)最多訪問 4GB內存。

    在所有的計算機中,從接通電源的那一刻起,軟件指令就控制著物理硬件(屏幕、磁盤、鍵盤等)。 在 PC 中,預加載在主板 ROM 中的 BIOS 在 CPU 重置后立即接管控制權,包括在加電期間、按下硬件重置按鈕時或出現嚴重軟件故障(三重故障)時 導致主板電路自動觸發硬件復位。 BIOS 測試硬件并初始化其狀態; 查找、加載和運行引導程序(通常是操作系統引導加載程序和歷史 ROM BASIC); 并為機器上運行的軟件提供基本的硬件控制,這些軟件通常是一個操作系統(帶有應用程序),但也可能是一個直接啟動的單一軟件應用程序。

    對于 IBM 而言,他們提供了在對早期 IBM PC 型號(PS/2 之前)進行編程時完全使用其 BIOS 或直接使用硬件并完全避免使用 BIOS 所需的所有信息。 從一開始,程序員就可以根據每個硬件外設選擇是否使用 BIOS。 IBM 強烈鼓勵僅通過 BIOS INT 調用(和 DOS 服務調用)訪問硬件的行為良好的程序的作者身份,以支持軟件與具有不同xxx硬件的當前和未來 PC 型號的兼容性,但 IBM 理解對于某些軟件開發人員來說 和硬件客戶,要求用戶軟件能夠直接控制硬件。 在某種程度上,這是因為 BIOS 服務沒有公開所有硬件特性和功能的重要子集。 舉兩個例子(在許多例子中),MDA 和 CGA 適配器能夠進行硬件滾動,PC 串行適配器能夠進行中斷驅動的數據傳輸,但 IBM BIOS 不支持這些有用的技術特性。

    今天,新 PC 中的 BIOS 仍然支持 IBM 為 IBM AT(于 1984 年推出)定義的大部分(如果不是全部)BIOS 中斷函數調用,以及許多更新的中斷函數調用,以及對某些原始函數的擴展( 例如,擴展的參數范圍)由其他各種組織和協作行業團體頒布。 這與類似程度的硬件兼容性相結合,意味著大多數為 IBM AT 編寫的程序今天仍然可以在新 PC 上正確運行,假設更快的執行速度是可以接受的(這通常適用于所有游戲,但使用 基于 CPU 的時序)。 盡管通過 BIOS 中斷訪問的服務有相當大的局限性,但它們已被證明對技術變革非常有用和持久。

    BIOS 調用的目的

    編輯

    BIOS 中斷調試執行程序請求的硬件控制或 I/O 功能,將系統信息返回給程序,或兩者兼而有之。 BIOS 調用目的的一個關鍵要素是抽象 - BIOS 調用執行一般定義的功能,而這些功能如何在系統的特定硬件上執行的具體細節封裝在 BIOS 中并隱藏在程序中。

    BIOS中斷調用

    因此,例如,想要從硬盤讀取的程序不需要知道硬盤是 ATA、SCSI 還是 SATA 驅動器(或者在早期,是 ESDI 驅動器,或者 MFM 或 RLL 驅動器 也許是 Seagate ST-506 控制器,也許是幾種 Western Digital 控制器類型中的一種,或者是另一個品牌的不同專有控制器)。 程序只需要識別它希望訪問的驅動器的 BIOS 定義編號和它需要讀取或寫入的扇區地址,BIOS 將負責將此一般請求轉換為所需的特定基本操作序列 通過連接到該驅動器的特定磁盤控制器硬件來完成任務。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/196142/

    (1)
    詞條目錄
    1. BIOS中斷調用
    2. BIOS 調用的目的

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久