Linux 內核鏡像與啟動組件全解析:從 vmlinux 到 extlinux.conf

🧠 Linux 內核鏡像與啟動組件全解析:從 vmlinux 到 extlinux.conf

在嵌入式 Linux 系統中,啟動流程涉及多個關鍵文件和機制。不同的鏡像格式和配置文件承擔著不同的職責,從內核編譯到 bootloader 加載,再到系統啟動。本文將系統梳理 vmlinux、Image、zImage、uImage、System.map、extlinux.conf 的作用、生成方式及它們之間的關系。


? 一、vmlinux:原始內核文件(調試專用)

📦 是什么?

  • vmlinux 是 Linux 內核編譯完成后生成的 ELF 格式可執行文件
  • 包含完整的符號表、調試信息、段信息
  • 不能直接用于啟動系統,但是調試內核的關鍵文件

🔧 用途:

  • GDB 調試內核
  • crash 工具分析 vmcore
  • 提供 System.map 符號表參考

📁 位置:

通常在內核源碼根目錄下生成:

./vmlinux

? 二、Image:可啟動的內核鏡像(未壓縮)

📦 是什么?

  • Image 是從 vmlinux 中提取出的純內核代碼二進制文件
  • 去掉了調試信息和符號表
  • 可直接被 bootloader(如 U-Boot)加載并啟動

🔧 用途:

  • 嵌入式設備啟動(如 RK3588)
  • 配合 extlinux.conf 或 FIT image 使用

📁 位置:

arch/arm64/boot/Image

? 三、zImage:壓縮內核鏡像(含解壓引導)

📦 是什么?

  • zImageImage 的壓縮版本,附帶一個 boot stub(解壓引導代碼)
  • 啟動時自動解壓并跳轉到內核入口

🔧 用途:

  • ARM 平臺常用,適合空間受限設備
  • 可通過 bootz 命令啟動(U-Boot)

📁 位置:

arch/arm/boot/zImage

? 四、uImage:U-Boot 專用鏡像(加頭信息)

📦 是什么?

  • uImage 是在 ImagezImage 前加上 U-Boot 識別的頭部信息
  • 包含加載地址、鏡像大小、類型等元數據
  • 使用 mkimage 工具生成

🔧 用途:

  • 老版本 U-Boot 使用 uImage 加載內核
  • 新版 U-Boot 已支持直接加載 ImagezImage

📁 生成方式:

mkimage -A arm -O linux -T kernel -C none -a 0x00200000 -e 0x00200000 -n "Linux Kernel" -d Image uImage

? 五、System.map:符號表文件(定位地址)

📦 是什么?

  • System.map 是編譯內核時生成的符號表文件
  • 記錄了所有函數、變量的地址與名稱

🔧 用途:

  • 分析內核崩潰日志(定位 PC/LR 地址)
  • 查找符號是否存在
  • 配合 /proc/kallsyms 做符號對比
  • crash 工具分析 vmcore(需配合 vmlinux)

📁 位置:

/boot/System.map-<kernel-version>

? 六、extlinux.conf:啟動配置文件(U-Boot 菜單)

📦 是什么?

  • extlinux.conf 是 U-Boot 支持的啟動配置文件
  • 定義啟動項、內核路徑、設備樹路徑、initrd 路徑、啟動參數等

🔧 用途:

  • 多啟動項管理
  • 設置默認啟動項、超時、菜單背景
  • 配合 Image 使用,簡化啟動流程

📁 示例配置:

LABEL linux-6.1.118KERNEL /Image-6.1.118FDT /rk3588-firefly.dtbINITRD /initrd-6.1.118APPEND root=/dev/mmcblk0p7 rw console=ttyFIQ0 loglevel=8

🔗 七、它們之間的關系圖解

vmlinux ──? System.map│├──(objcopy)──? Image ──? zImage ──? uImage│                      │           ││                      └──? extlinux.conf 引用└──? GDB / crash 工具調試

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

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

相關文章

【系統分析師】2024年下半年真題:論文及解題思路

更多內容請見: 備考系統分析師-專欄介紹和目錄 文章目錄 試題一:論devops在企業信息系統開發中的應用 試題二:論系統業務流程分析方法及應用 試題三:論軟件測試方法及應用 試題四:論信息系統運維管理 試題一:論devops在企業信息系統開發中的應用 1、概要敘述你參與管理和…

AI GEO 實戰:借百度文小言優化,讓企業名稱成搜索熱詞

在當今數字化浪潮中&#xff0c;企業的線上曝光度和搜索可見性至關重要。百度作為國內占據主導地位的搜索引擎&#xff0c;其推出的大模型文小言蘊含著巨大的潛力。通過巧妙運用 AI GEO&#xff08;生成式引擎優化&#xff09;策略&#xff0c;企業完全有可能讓自己的公司名稱成…

文件操作知識點總結

目錄 1.為什么使用文件 2.什么是文件&#xff1f; 2.1 程序文件 2.2 數據文件 2.3 文件名 3.二進制文件和文本文件 4.文件的打開和關閉 4.1 流和標準流 4.1.1 流 4.1.2 標準流 4.2 文件指針 4.3 文件的打開和關閉 4.3.1 fopen函數 4.3.2 fclose函數 5.文件的順序…

oracle認證有哪幾種?如何選擇

Oracle&#xff08;甲骨文&#xff09;不僅是全球領先的數據庫軟件巨頭&#xff0c;更是企業級數據管理的代名詞&#xff0c;獲得Oracle認證&#xff0c;證明可從事Oracle數據庫服務器的數據操作和管理等工作。下面給大家詳細其主要認證類型及其在職業發展中的含金量&#xff0…

AppTest邀請測試測試流程

相比AppGallery邀請測試&#xff0c;AppTest邀請測試具備以下全新能力&#xff1a;若您同時發布了多個測試版本&#xff0c;AppTest支持測試版本自動升級到最新的測試版本。您可以選擇將當前最新在架版本的應用介紹截圖展示給測試人員&#xff0c;視覺效果更好&#xff0c;提升…

硬件 - oring多電源切換

目錄 一、ORing電路 1.1 ORING 電路 1.2 ORING 電路關鍵部分 二、多電源切換 2.1 主要思路 2.2 適用場景 一、ORing電路 1.1 ORING 電路 中文常稱 “或環電路” 或 “并聯冗余電路”是一種電源并聯冗余拓撲結構 核心功能&#xff1a;將多路獨立電源的輸出 “并聯整合”&a…

Qt多語言翻譯實戰指南:常見陷阱與動態切換解決方案

問題背景 在Qt項目國際化過程中&#xff0c;開發者經常會遇到各種翻譯邏輯問題&#xff0c;特別是需要實現運行時語言動態切換功能時。一個典型場景是&#xff1a;程序默認英文顯示&#xff0c;加載中文翻譯文件后界面變為中文&#xff0c;但再次切換回英文時卻失敗。本文將深入…

機器人要增加力矩要有那些條件和增加什么

機器人要增加力矩要有那些條件和增加什么進行詳細講解 好的&#xff0c;這是一個非常專業且重要的問題。為機器人增加力矩&#xff08;通常指提升關節輸出扭矩&#xff09;不是一個簡單的部件替換&#xff0c;而是一個涉及動力鏈、結構、控制和散熱的系統性工程。 以下將詳細講…

spring集成aes加密、rsa加密

文章目錄spring集成對稱加密spring集成rsa加密spring集成對稱加密 encrypt:key: aaabbb # 只配置這個參數就實現了對稱加密salt: 333444 # 這個可以不配置spring集成rsa加密 例如apollo&#xff0c;如果沒有配置encrypt.key&#xff0c;那么apollo不配置應該也是可以的&#…

OpenSTL PredRNNv2 模型復現與自定義數據集訓練

OpenSTL PredRNNv2 模型復現與自定義數據集訓練 概述 本文將詳細介紹如何復現 OpenSTL 中的 PredRNNv2 模型&#xff0c;并使用自定義的 NPY 格式數據集進行訓練和預測。我們將從環境配置開始&#xff0c;逐步講解數據預處理、模型構建、訓練過程和預測實現&#xff0c;最終實現…

Linux內核IPv4隧道模式封裝機制剖析

概述 在Linux網絡棧中,XFRM(Transform)子系統負責實現IPsec等安全協議的功能。其中,xfrm4_mode_tunnel.c是實現IPv4隧道模式封裝的核心模塊,為IPv4數據包提供隧道模式的封裝和解封裝能力。本文將深入分析這一模塊的實現機制。 模塊架構與功能 該模塊通過注冊到XFRM框架…

OPC Client第10講:實現主界面;獲取初始界面傳來的所有配置信息config【C++讀寫Excel:xlnx;ODBC;緩沖區】

接前面代碼內容&#xff1a; OPC Client第6講&#xff08;wxwidgets&#xff09;&#xff1a;Logger.h日志記錄文件&#xff08;單例模式&#xff09;&#xff1b;登錄后的主界面_wx.logger-CSDN博客 OPC Client第8講&#xff1a;OPC UA&#xff1b;KEPServerEX創建OPC服務器…

快速入門HarmonyOS應用開發(一)

目錄 前言 一、準備工作 二、實戰開發 2.1、Navigation簡介 2.2、頁面路由開發 2.2.1、創建常量 2.2.2、創建字符串資源 2.2.3、創建float資源 2.2.4、創建color資源 2.2.5、創建數據實體 2.2.6、創建頁面路由表 2.2.7、創建Navigation根容器 2.2.8、創建NavDesti…

AI 進課堂 - 語文教學流程重塑

AI 進課堂 - 語文教學流程重塑執教語文十余年&#xff0c;備課案頭的參考書堆得比學生作業本還高&#xff0c;批改作文時紅筆芯換得比粉筆還勤。 直到去年把 JBoltAI 請進課堂&#xff0c;那些重復機械的工作突然有了新解法&#xff0c;連課堂上孩子們的眼神都亮了許多 —— 這…

用戶是否可以同時使用快照和備份來保護云服務器數據安全?

在云計算環境中&#xff0c;云服務器已成為企業和個人數據存儲、應用部署和業務運營的重要平臺。隨著業務數據量的不斷增長&#xff0c;數據安全和業務連續性成為用戶關注的核心問題。云服務器提供的快照和備份功能為用戶提供了有效的數據保護手段&#xff0c;但很多人會疑問&a…

RDS-MYSQL,這個RDS是什么?和mysql有什么區別?

好的&#xff0c;這是一個非常常見且重要的問題。我用最通俗易懂的方式給你解釋清楚。 一、大白話解釋 你可以把 MySQL 和 RDS MySQL 的關系&#xff0c;想象成&#xff1a;MySQL&#xff1a;就像是你自己買零件組裝的一臺電腦。 你需要自己挑選CPU、內存、硬盤、主板&#xff…

arcgis中實現四色/五色法制圖

四色定理是圖論中的一個著名定理&#xff0c;它指出在任何地圖上&#xff0c;只需四種顏色就足以使任何相鄰的區域&#xff08;擁有共同邊界線段&#xff0c;而非單個點&#xff09;顏色不同。五色定理則是另一個更早被證明的、較弱但更易證的定理。在地圖制圖中&#xff0c;這…

Spring如何巧妙解決循環依賴問題

什么是循環依賴&#xff1f;循環依賴是指兩個或多個Bean之間相互依賴&#xff0c;形成閉環的情況。例如&#xff1a;AService依賴BService&#xff0c;而BService又依賴AService。這種場景下&#xff0c;傳統的創建順序無法滿足依賴注入的要求。Spring的三級緩存機制Spring通過…

CUDA 中Thrust exclusive_scan使用詳解

1. 基本概念Thrust 是 NVIDIA CUDA 提供的類似 C STL 的并行算法庫。Scan (前綴和)&#xff1a;給定數組 [a0, a1, a2, ...]&#xff0c;產生前綴和序列。Exclusive Scan (排他前綴和)&#xff1a; 輸出位置 i 存放的是輸入數組中 0 到 i-1 的累積結果。換句話說&#xff0c;結…

Linux -- 信號【上】

目錄 一、信號的引入 1、信號概念 2、signal函數 普通標準信號詳解表 3、前臺/后臺進程 3.1 概念 3.2 查看后臺進程 3.3 后臺進程拉回前臺 3.4 終止后臺進程 3.5 暫停前臺進程 3.6 回復運行后臺進程 4、發信號的本質 二、信號的產生 1、終端按鍵 2、系統調用 2…