0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux内核的起始地址查看

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者: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 系统真正的启动地址。

PAGE_OFFSET 是 Linux 内核空间的虚拟起始地址,定义在:

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

图片

注意,这里的地址都很重要,很多地方会用到。当然,这里的地址可能会随着 Linux 内核版本的不同和硬件的不同,会变化。这里没有一个具体的数,因为 VA_BITS 中的数字是可选的,大家可以根据自己的平台算一下。

TEXT_OFFSET 定义在:

linux4.14/arch/arm/Makefile 中:

图片

图片

这个值一般是 0x00008000 ,算出 PAGE_OFFSET 后加上这个值就是 Linux 内核的起始地址。

修改这个偏移量就可以使Linux内核拷贝到不同的地址,自己修改注意内存对齐。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9089

    浏览量

    367423
  • 内核
    +关注

    关注

    3

    文章

    1372

    浏览量

    40282
  • Linux
    +关注

    关注

    87

    文章

    11296

    浏览量

    209366
  • 地址
    +关注

    关注

    1

    文章

    32

    浏览量

    10763
收藏 人收藏

    评论

    相关推荐

    Linux内核自解压过程分析

    uboot完成系统引导以后,执行环境变量bootm中的命令;即,将Linux内核调入内存中并调用do_bootm函数启动内核,跳转至kernel的起始位置。
    的头像 发表于 12-08 14:00 921次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>自解压过程分析

    Linux内核地址映射模型与Linux内核高端内存详解

    的数据可能不在内存中。 Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑
    发表于 05-08 10:33 3453次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b><b class='flag-5'>地址</b>映射模型与<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>高端内存详解

    Linux内核教程

    本章学习目标掌握LINUX内核版本的含义理解并掌握进程的概念掌握管道的概念及实现了解内核的数据结构了解LINUX内核的算法掌握
    发表于 04-10 16:59 0次下载

    如何知道mac地址 怎么查看IP地址

    如何知道mac地址 怎么查看IP地址 步骤如下: 1 在“运行”中输入 cmd 2 在打开的命令提示符界面中输入 ipconfig/all 3 里面的rnet NIC里有你
    发表于 03-21 12:08 5.4w次阅读
    如何知道mac<b class='flag-5'>地址</b> 怎么<b class='flag-5'>查看</b>IP<b class='flag-5'>地址</b>

    怎么查看物理地址

    怎么查看物理地址 点“开始”---“运行”-----输入--"cmd"" --回车---输入--"ipconfig /all" 如下图:
    发表于 09-11 17:24 5863次阅读
    怎么<b class='flag-5'>查看</b>物理<b class='flag-5'>地址</b>

    如何查看Linux中的ip地址

    在排除网络问题,设置新连接或配置防火墙时,了解设备的 IP 地址非常重要。下面我们就来看看Linux查看ip地址的方法吧!
    发表于 05-25 09:35 2895次阅读
    如何<b class='flag-5'>查看</b><b class='flag-5'>Linux</b>中的ip<b class='flag-5'>地址</b>

    虚拟机:Linux查看DNS服务器IP地址的方法

    虚拟机:Linux查看DNS服务器IP地址的方法
    的头像 发表于 06-22 15:12 1.4w次阅读
    虚拟机:<b class='flag-5'>Linux</b><b class='flag-5'>查看</b>DNS服务器IP<b class='flag-5'>地址</b>的方法

    IP地址查看

    IP地址查看器免费下载。
    发表于 07-08 10:19 2次下载

    Linux虚拟地址空间和物理地址空间的关系

    过程,这其实也是MMU的工作原理。 我们知道,在Linux中,每个进程都有自己独立的地址空间,且互不干扰。每个进程的地址空间又分为用户空间和内核空间,但这些
    的头像 发表于 10-08 11:40 1199次阅读
    <b class='flag-5'>Linux</b>虚拟<b class='flag-5'>地址</b>空间和物理<b class='flag-5'>地址</b>空间的关系

    linux系统查看ip地址命令

    Linux系统中,可以使用ifconfig命令来查看IP地址。ifconfig命令被用于配置和显示网络接口的网络参数,包括IP地址。执行以下命令可以
    的头像 发表于 11-08 15:09 2732次阅读

    linux系统查看物理地址

    Linux系统中,访问和查看物理地址是一个非常重要的任务,因为它提供了对硬件设备的直接访问。本文将详细介绍如何在Linux系统中查看物理
    的头像 发表于 11-16 16:47 3465次阅读

    linux 查看网卡状态是否开启

    如何查看 Linux 网卡状态是否开启 在 Linux 系统中,我们可以使用一些命令来查看网卡状态是否开启。本文将详细介绍如何使用这些命令来查看
    的头像 发表于 11-17 10:31 2585次阅读

    linux查看网卡是down还是up

    Linux系统上,可以通过多种方式来查看网卡的状态是否为down或up。下面将详细介绍这些方法,并给出具体的步骤和示例。 ifconfig命令 ifconfig命令是Linux系统上最常用的
    的头像 发表于 11-17 10:34 8949次阅读

    linux怎么查看网卡的收光功率?

    linux怎么查看网卡的收光功率? 在Linux系统中,可以使用一些命令和工具来查看网卡的收光功率。本文将介绍如何使用这些命令和工具来查看
    的头像 发表于 01-31 14:24 3604次阅读

    Linux查看IP地址的方法

    ifconfig是一个网络管理工具,用于配置、控制和查询网络接口。在许多旧的Linux发行版中,ifconfig是查看和配置网络接口的主要工具。
    的头像 发表于 08-07 15:16 7508次阅读
    在<b class='flag-5'>Linux</b>中<b class='flag-5'>查看</b>IP<b class='flag-5'>地址</b>的方法