【按下電源鍵后,電腦里發生了什么?——BIOS:啟動世界的“第一把鑰匙”】

當你按下電源鍵的瞬間,電腦從一片死寂中“蘇醒”。但你是否想過:是什么讓屏幕亮起、風扇轉動、硬件逐一激活? 這背后,有一個隱藏在主板上的“小程序”在默默掌控全局——它就是 BIOS(Basic Input/Output System)。本文將帶你穿越計算機啟動的“黑暗10秒”,揭開 BIOS 的神秘面紗。


第一階段:電源啟動,BIOS 接管控制權

1. 通電瞬間:硬件的“心跳”開始

  • 按下電源鍵后,主板上的 電源管理芯片(PMIC) 首先被激活,向 CPU、內存、顯卡等核心硬件供電。
  • CPU 的“第一行代碼”:現代 CPU 內部集成了一個微小的引導程序(如 Intel 的 ME Firmware 或 AMD 的 PSP),它會立即執行一個關鍵操作——跳轉到 BIOS 的固定地址(通常是 FFFF:0000)。
  • BIOS 的“復活”:BIOS 代碼存儲在主板的 Flash ROM 芯片 中(類似小型固態硬盤),此時開始運行,成為計算機的“臨時大腦”。

冷知識:即使你拔掉硬盤,電腦仍能啟動到 BIOS 界面——因為 BIOS 本身不依賴存儲設備,它直接“烙”在主板上。


第二階段:POST 自檢——硬件的“體檢報告”

2. POST(Power-On Self-Test):硬件健康大檢查

BIOS 啟動后,第一件事是運行 POST(開機自檢),逐一檢查硬件是否正常:

  • CPU 測試:驗證處理器能否執行指令(若失敗,主板會發出 1 長 3 短蜂鳴)。
  • 內存檢測:掃描 RAM 芯片,統計可用內存大小(若內存故障,屏幕可能顯示 CMOS checksum error)。
  • 顯卡初始化:向顯卡發送指令,點亮屏幕并顯示 BIOS 標志(如華碩的 “ASUS” Logo)。
  • 外設掃描:檢查鍵盤、鼠標、硬盤等是否連接(若鍵盤缺失,部分主板會報警)。

3. 錯誤處理:電腦的“求救信號”

  • 蜂鳴碼:不同錯誤對應不同蜂鳴節奏(如 1 長 2 短 = 顯卡故障)。
  • 屏幕報錯:現代 BIOS 會用文字提示問題(如 “No bootable device” 表示找不到啟動盤)。
  • 恢復模式:若檢測到 CMOS 電池沒電或配置錯誤,BIOS 會重置為默認設置。

案例:某用戶開機后屏幕無顯示,但主機運行正常。經檢查,原來是內存條松動導致 POST 失敗,重新插拔后問題解決。


第三階段:硬件初始化——為操作系統鋪路

4. 加載硬件參數:從 CMOS 中讀取配置

  • BIOS 的配置信息(如啟動順序、超頻設置)存儲在 CMOS 芯片 中(由主板紐扣電池供電)。
  • 啟動時,BIOS 會讀取 CMOS 數據,并根據用戶設置調整硬件行為(例如將啟動順序設為“U盤優先”)。

5. 初始化硬件控制器

  • 硬盤控制器:激活 SATA/NVMe 接口,讓 BIOS 能識別硬盤。
  • USB 支持:加載 USB 驅動,使鍵盤、鼠標在操作系統啟動前即可使用。
  • 網絡功能(可選):部分 BIOS 支持 PXE 啟動,允許通過網絡加載操作系統(常用于無盤工作站)。

技術細節:傳統 BIOS 使用 16 位實模式,內存尋址僅限 1MB,因此初始化過程較慢;而 UEFI 采用 64 位模式,可并行初始化硬件,速度更快。


第四階段:啟動操作系統——傳遞“接力棒”

6. 尋找啟動設備:MBR 與 GPT 的戰爭

  • BIOS 根據 CMOS 中設置的啟動順序,依次檢查設備(如硬盤、U盤、光盤)的 第一個扇區(MBR)
  • MBR 的秘密:512 字節的 MBR 中包含:
    • 引導代碼(446 字節):跳轉到操作系統加載器(如 Windows 的 bootmgr 或 Linux 的 GRUB)。
    • 分區表(64 字節):記錄硬盤分區信息。
    • 結束標志(2 字節):固定為 0xAA55,用于驗證 MBR 有效性。

7. 交接控制權:從 BIOS 到操作系統

  • 一旦找到有效的引導程序,BIOS 會將 CPU 控制權交給它,并加載 操作系統內核
  • BIOS 的“退休”:此時,BIOS 的使命完成,操作系統接管硬件(如 Windows 的 winload.exe 或 Linux 的 vmlinuz)。

對比 UEFI:UEFI 不依賴 MBR,而是使用 GPT 分區表ESP 分區(存放 .efi 引導文件),支持更大的硬盤和更安全的啟動(如 Secure Boot)。


BIOS 的局限與進化:UEFI 的崛起

盡管 BIOS 是計算機啟動的基石,但它也存在明顯短板:

  • 速度慢:POST 和設備檢測需數秒,而 UEFI 可跳過非必要檢查。
  • 安全性差:傳統 BIOS 易被惡意軟件篡改 MBR(如感染“Bootkit”病毒)。
  • 功能受限:不支持鼠標操作、圖形界面或大容量硬盤(>2TB)。

UEFI(統一可擴展固件接口) 的出現解決了這些問題:

  • 圖形化界面:支持鼠標點擊和高清分辨率。
  • 安全啟動:驗證引導程序簽名,防止惡意代碼注入。
  • 快速啟動:并行初始化硬件,縮短啟動時間。

未來趨勢:隨著 ARM 架構和物聯網設備的普及,BIOS/UEFI 正在向 CoreBootSlim Bootloader 等輕量級固件演進。


總結:BIOS——計算機的“幕后總導演”

從按下電源鍵的那一刻起,BIOS 便開始指揮一場精密的“硬件交響樂”:

  1. 喚醒硬件:通電后接管 CPU 控制權。
  2. 自檢報錯:確保所有組件健康運行。
  3. 初始化配置:加載 CMOS 設置并激活設備。
  4. 啟動系統:將控制權交給操作系統。

盡管 UEFI 正在取代傳統 BIOS,但理解 BIOS 的工作原理仍是掌握計算機底層邏輯的關鍵。下一次當你開機時,不妨想象一下:在那個黑暗的 BIOS 世界里,無數行代碼正以納秒級的速度奔跑,只為讓你看到那句熟悉的“正在啟動 Windows”……


注:內容由AI生成

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917342.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917342.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917342.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

局域網五子棋工具 多人對戰無限制

軟件介紹 今天推薦一款經典的PC端五子棋游戲——GoBang,綠色免安裝版本,完全免費,即開即用,輕松享受對弈樂趣。 游戲模式 軟件提供三種對戰模式:人人對戰、人機對抗以及局域網聯機游戲,滿足不同玩家的社…

分布式彈幕系統設計

需求:分布式彈幕廣播分布式方案1:適用redis 發布訂閱來進行不同ws服務器之間的通信優點:適用小系統方案2:對ws服務器進行一致性hash獲取ws服務的接入點優點:大型系統缺點:視頻連接不均勻挑戰點:廣播速度聚合廣播和線程池來進行優化

夢幻花瓣雨

1. 花瓣設計四種花瓣類型:創建了四種不同形狀和顏色的花瓣(粉紅、淡紫、淺粉和藍綠色)自然形態:使用CSS漸變和復雜邊框半徑模擬真實花瓣的不規則形狀柔和陰影:為花瓣添加微妙的陰影增強立體感2. 動畫效果物理模擬&…

React 閉包陷阱及解決方案與 React 16/17/18 版本區別

一、React 閉包陷阱詳解1. 什么是閉包陷阱React 閉包陷阱是指在函數組件中使用 Hook(特別是 useEffect 和 useCallback)時,由于閉包特性導致訪問到舊的 state 或 props 值,而非最新值的現象。2. 典型場景示例function Counter() {…

[BJDCTF2020]EasySearch

首先嘗試了一下sql注入,但是沒有找到不同回顯。直接用sqlmap掃描一下,因為這邊用的是POST請求,所以需要抓包將請求復制到txt文件中然后使用命令sqlmap -p bp.txt。也沒有發現注入漏洞。 再進行目錄掃描試試: [02:33:43] 403 - …

【Linux】基本指令的使用 and 面試常問

1、man 指令使用方法:man Linux指令。功能:相當于字典,查找指令的用法。常用選項:-k:根據關鍵字搜索聯機幫助。num:只在第num章節查找。-a:將所有章節的都顯示出來,比如man printf它…

零基礎 “入坑” Java--- 十六、字符串String 異常

文章目錄一、String1.字符串的不可變性2.字符串的修改3.StringBuilder和StringBuffer4.【字符串練習】4.1 字符串中的第一個唯一字符4.2 字符串最后一個單詞的長度4.3 驗證回文串二、異常1.初識異常2.異常的分類3.異常的處理4.異常處理流程總結5.自定義異常在上一章節中&#x…

梯度下降在大模型訓練中的作用與實現

梯度下降(Gradient Descent)是深度學習中最核心的優化算法之一。大模型(如GPT、BERT)在訓練時需要優化數十億甚至上千億的參數,而梯度下降及其變體(如SGD、Adam)正是實現這一優化的關鍵工具。它…

【JVS更新日志】開源框架、APS排產、企業計劃、物聯網、邏輯引擎7.30更新說明!

項目介紹 JVS是企業級數字化服務構建的基礎腳手架,主要解決企業信息化項目交付難、實施效率低、開發成本高的問題,采用微服務配置化的方式,提供了低代碼數據分析物聯網的核心能力產品,并構建了協同辦公、企業常用的管理工具等&…

Eclipse中導入新項目,右鍵項目沒有Run on Server,Tomcat的add and remove找不到項目

原因分析沒有勾選Dynamic Web Module、Java、JavaScriptDynamic Web Module版本問題解決方法Eclipse中右鍵項目選擇Properties左側點擊project facets勾選Dynamic Web Module、Java、JavaScript,注意Dynamic Web Module版本問題,要和tomcat版本對應。- Dynamic Web …

IntelliJ IDEA 2025系列通用軟件安裝教程(Windows版)

前言 JetBrains系列開發工具(如IntelliJ IDEA、PyCharm、WebStorm等)是程序員們非常喜愛的集成開發環境。2025年最新版本帶來了更多強大的功能和改進。本教程將詳細介紹如何在Windows系統上安裝JetBrains 2025系列軟件。 最近挖到一個寶藏級人工智能學習…

烏鶇科技前端二面

1. 你能給我介紹一下你參與的重要項目,并重點介紹一下做的內容?通俗解釋: 挑一個你覺得最拿得出手、技術含量最高的項目,說說這個項目是干什么的(比如一個電商網站、一個后臺管理系統),你在里面具體負責了…

《c++面向對象入門與實戰》筆記

前年的書,翻出來整理一下7章.指針指針 sizeof為4*指針 sizeof為 所指類型的sizeof注意free后置空,避免野指針11章.類

easyExcel生成多個sheet的動態表頭的實現

在使用 EasyExcel 實現“多個 Sheet 且每個 Sheet 表頭是動態的”需求時&#xff0c;思路如下&#xff1a;? 實現思路概述 EasyExcel 的 ExcelWriter 支持多個 Sheet 寫入。每個 Sheet&#xff1a; 使用 WriteSheet 創建&#xff1b;可以綁定一個動態生成的表頭 List<List&…

SQL 連接類型示例:內連接與外連接

SQL 連接類型示例&#xff1a;內連接與外連接 示例數據表 假設我們有兩個表&#xff1a; employees 表:emp_idemp_namedept_id1張三1012李四1023王五1034趙六NULLdepartments 表:dept_iddept_name101銷售部102技術部104財務部1. 內連接 (INNER JOIN) 內連接只返回兩個表中匹配的…

Ubuntu安裝gpu驅動,cuda

系統初始化 1、安裝基礎軟件 apt-get update apt-get -y install openssh-server openssh-client apt-utils freeipmi ipmitool sshpass ethtool zip unzip nano less git netplan.io iputils-ping mtr ipvsadm smartmontools python3-pip socat conntrack libvirt-clients li…

ctfshow_源碼壓縮包泄露

根據題目信息直接dirsearch解壓下來一個.txt文件&#xff0c;一個index.phpflag{flag_here}不對那么就去看index.php也沒有東西&#xff0c;于是查看wp發現是訪問/fl000g.txt這才是對的還有很多源碼泄露需要去了解? git源碼泄露? svn源碼泄露? DS_Store 文件泄露? 網站備份…

Python 程序設計講義(54):Python 的函數——函數概述

Python 程序設計講義&#xff08;54&#xff09;&#xff1a;Python 的函數——函數概述 目錄Python 程序設計講義&#xff08;54&#xff09;&#xff1a;Python 的函數——函數概述一、函數的類型1、內置函數2、自定義函數二、調用函數Python 提供了函數機制&#xff0c;把實…

學習Python中Selenium模塊的基本用法(3:下載瀏覽器驅動續)

前一篇文章主要介紹下載針對火狐瀏覽器的WebDriver&#xff0c;寫那篇文章時才找到能夠下最新版本Chrome的WebDriver地址&#xff08;參考文獻6&#xff09;&#xff0c;本文繼續學習并驗證針對Chrome瀏覽器的WebDriver下載和使用方法。Chrome的WebDriver版本與操作系統相關&am…

AIDL當Parcelable序列化的數據類通信時報“Class not found when unmarshalling“找不到該類時的解決方案

1. 報錯棧 &#xff1a;cusText這個類找不到 2 16:01:29.796 1044 5718 E Parcel : Class not found when unmarshalling: com.cus.sdk.cusText 08-02 16:01:29.796 1044 5718 E Parcel : java.lang.ClassNotFoundException: com.cus.sdk.cusText 08-02 16:01:29.796 1…