0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核的起始地址查看

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:Jasonangel ? 2023-09-28 16:57 ? 次閱讀

我們先看一下入口地址的確定,同一文件。

SECTIONS
{
 /*
  * XXX: The linker does not define how output sections are
  * assigned to input sections when there are multiple statements
  * matching the same input section name.  There is no documented
  * order of matching.
  *
  * unwind exit sections must be discarded before the rest of the
  * unwind sections get included.
  */
 /DISCARD/ : {
  *(.ARM.exidx.exit.text)
  *(.ARM.extab.exit.text)
  ARM_CPU_DISCARD(*(.ARM.exidx.cpuexit.text))
  ARM_CPU_DISCARD(*(.ARM.extab.cpuexit.text))
  ARM_EXIT_DISCARD(EXIT_TEXT)
  ARM_EXIT_DISCARD(EXIT_DATA)
  EXIT_CALL
#ifndef CONFIG_MMU
  *(.text.fixup)
  *(__ex_table)
#endif
#ifndef CONFIG_SMP_ON_UP
  *(.alt.smp.init)
#endif
  *(.discard)
  *(.discard.*)
 }

 . = PAGE_OFFSET + TEXT_OFFSET;
 .head.text : {
  _text = .;
  HEAD_TEXT
 }

這個 SECTIONS 比較長,只放一部分。在這里有個比較重要的東西:

. = PAGE_OFFSET + TEXT_OFFSET;

這一句表示了 Linux 系統(tǒng)真正的啟動地址。

PAGE_OFFSET 是 Linux 內(nèi)核空間的虛擬起始地址,定義在:

linux4.14/arch/arm64/include/asm/memory.h

圖片

注意,這里的地址都很重要,很多地方會用到。當(dāng)然,這里的地址可能會隨著 Linux 內(nèi)核版本的不同和硬件的不同,會變化。這里沒有一個具體的數(shù),因為 VA_BITS 中的數(shù)字是可選的,大家可以根據(jù)自己的平臺算一下。

TEXT_OFFSET 定義在:

linux4.14/arch/arm/Makefile 中:

圖片

圖片

這個值一般是 0x00008000 ,算出 PAGE_OFFSET 后加上這個值就是 Linux 內(nèi)核的起始地址。

修改這個偏移量就可以使Linux內(nèi)核拷貝到不同的地址,自己修改注意內(nèi)存對齊。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9030

    瀏覽量

    366549
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1362

    瀏覽量

    40195
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11215

    瀏覽量

    208749
  • 地址
    +關(guān)注

    關(guān)注

    1

    文章

    31

    瀏覽量

    10738
收藏 人收藏

    評論

    相關(guān)推薦

    Linux內(nèi)核自解壓過程分析

    uboot完成系統(tǒng)引導(dǎo)以后,執(zhí)行環(huán)境變量bootm中的命令;即,將Linux內(nèi)核調(diào)入內(nèi)存中并調(diào)用do_bootm函數(shù)啟動內(nèi)核,跳轉(zhuǎn)至kernel的起始位置。
    的頭像 發(fā)表于 12-08 14:00 ?835次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>自解壓過程分析

    Linux內(nèi)核地址映射模型與Linux內(nèi)核高端內(nèi)存詳解

    的數(shù)據(jù)可能不在內(nèi)存中。 Linux內(nèi)核地址映射模型 x86 CPU采用了段頁式地址映射模型。進(jìn)程代碼中的地址為邏輯
    發(fā)表于 05-08 10:33 ?3437次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>地址</b>映射模型與<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>高端內(nèi)存詳解

    Linux內(nèi)核教程

    本章學(xué)習(xí)目標(biāo)掌握LINUX內(nèi)核版本的含義理解并掌握進(jìn)程的概念掌握管道的概念及實現(xiàn)了解內(nèi)核的數(shù)據(jù)結(jié)構(gòu)了解LINUX內(nèi)核的算法掌握
    發(fā)表于 04-10 16:59 ?0次下載

    如何知道m(xù)ac地址 怎么查看IP地址

    如何知道m(xù)ac地址 怎么查看IP地址 步驟如下: 1 在“運(yùn)行”中輸入 cmd 2 在打開的命令提示符界面中輸入 ipconfig/all 3 里面的rnet NIC里有你
    發(fā)表于 03-21 12:08 ?5.4w次閱讀
    如何知道m(xù)ac<b class='flag-5'>地址</b> 怎么<b class='flag-5'>查看</b>IP<b class='flag-5'>地址</b>

    怎么查看物理地址

    怎么查看物理地址 點(diǎn)“開始”---“運(yùn)行”-----輸入--"cmd"" --回車---輸入--"ipconfig /all" 如下圖:
    發(fā)表于 09-11 17:24 ?5843次閱讀
    怎么<b class='flag-5'>查看</b>物理<b class='flag-5'>地址</b>

    如何查看Linux中的ip地址

    在排除網(wǎng)絡(luò)問題,設(shè)置新連接或配置防火墻時,了解設(shè)備的 IP 地址非常重要。下面我們就來看看Linux查看ip地址的方法吧!
    發(fā)表于 05-25 09:35 ?2856次閱讀
    如何<b class='flag-5'>查看</b><b class='flag-5'>Linux</b>中的ip<b class='flag-5'>地址</b>

    虛擬機(jī):Linux查看DNS服務(wù)器IP地址的方法

    虛擬機(jī):Linux查看DNS服務(wù)器IP地址的方法
    的頭像 發(fā)表于 06-22 15:12 ?1.4w次閱讀
    虛擬機(jī):<b class='flag-5'>Linux</b><b class='flag-5'>查看</b>DNS服務(wù)器IP<b class='flag-5'>地址</b>的方法

    IP地址查看

    IP地址查看器免費(fèi)下載。
    發(fā)表于 07-08 10:19 ?2次下載

    Linux虛擬地址空間和物理地址空間的關(guān)系

    過程,這其實也是MMU的工作原理。 我們知道,在Linux中,每個進(jìn)程都有自己獨(dú)立的地址空間,且互不干擾。每個進(jìn)程的地址空間又分為用戶空間和內(nèi)核空間,但這些
    的頭像 發(fā)表于 10-08 11:40 ?1083次閱讀
    <b class='flag-5'>Linux</b>虛擬<b class='flag-5'>地址</b>空間和物理<b class='flag-5'>地址</b>空間的關(guān)系

    linux系統(tǒng)查看ip地址命令

    Linux系統(tǒng)中,可以使用ifconfig命令來查看IP地址。ifconfig命令被用于配置和顯示網(wǎng)絡(luò)接口的網(wǎng)絡(luò)參數(shù),包括IP地址。執(zhí)行以下命令可以
    的頭像 發(fā)表于 11-08 15:09 ?2575次閱讀

    linux系統(tǒng)查看物理地址

    Linux系統(tǒng)中,訪問和查看物理地址是一個非常重要的任務(wù),因為它提供了對硬件設(shè)備的直接訪問。本文將詳細(xì)介紹如何在Linux系統(tǒng)中查看物理
    的頭像 發(fā)表于 11-16 16:47 ?3291次閱讀

    linux 查看網(wǎng)卡狀態(tài)是否開啟

    如何查看 Linux 網(wǎng)卡狀態(tài)是否開啟 在 Linux 系統(tǒng)中,我們可以使用一些命令來查看網(wǎng)卡狀態(tài)是否開啟。本文將詳細(xì)介紹如何使用這些命令來查看
    的頭像 發(fā)表于 11-17 10:31 ?2398次閱讀

    linux查看網(wǎng)卡是down還是up

    Linux系統(tǒng)上,可以通過多種方式來查看網(wǎng)卡的狀態(tài)是否為down或up。下面將詳細(xì)介紹這些方法,并給出具體的步驟和示例。 ifconfig命令 ifconfig命令是Linux系統(tǒng)上最常用的
    的頭像 發(fā)表于 11-17 10:34 ?8313次閱讀

    linux怎么查看網(wǎng)卡的收光功率?

    linux怎么查看網(wǎng)卡的收光功率? 在Linux系統(tǒng)中,可以使用一些命令和工具來查看網(wǎng)卡的收光功率。本文將介紹如何使用這些命令和工具來查看
    的頭像 發(fā)表于 01-31 14:24 ?3210次閱讀

    Linux查看IP地址的方法

    ifconfig是一個網(wǎng)絡(luò)管理工具,用于配置、控制和查詢網(wǎng)絡(luò)接口。在許多舊的Linux發(fā)行版中,ifconfig是查看和配置網(wǎng)絡(luò)接口的主要工具。
    的頭像 發(fā)表于 08-07 15:16 ?6861次閱讀
    在<b class='flag-5'>Linux</b>中<b class='flag-5'>查看</b>IP<b class='flag-5'>地址</b>的方法