加载linux内核的基地址

2024-04-17

我对内核如何加载到内存有一些疑问。检查后/proc/kallsyms我能够找到内核中各种符号的地址。

$ cat /proc/kallsyms | head -n 10
00000000 t __vectors_start
80008240 T asm_do_IRQ
80008240 T _stext
80008240 T __exception_text_start
80008244 T do_undefinstr
80008408 T do_IPI
8000840c T do_DataAbort
800084a8 T do_PrefetchAbort
80008544 t gic_handle_irq
800085a0 T secondary_startup
  1. 有什么方法可以找到加载内核的基地址吗?
  2. 在用户空间中,假设我使用 libcputs函数位于偏移量 0x200 处。当加载到内存中时,指定地址0x8048000,我将能够找到已解决的puts at 0x8048000 + 0x200。对于内核也同样适用吗?即内核映像是否作为 1 个连续的加载到内存中.text部分?

for MIPS建筑学

file Platform包含分配有物理地址空间中的位置的字段/变量“load-...”。

example:

openwrt/build_dir/target-mips_mips32_musl-1.1.16/linux-brcm63xx_smp/linux-4.4.14/arch/mips/bcm63xx/平台

#
# Broadcom BCM63XX boards
#
platform-$(CONFIG_BCM63XX)  += bcm63xx/
cflags-$(CONFIG_BCM63XX)    +=                  \
    -I$(srctree)/arch/mips/include/asm/mach-bcm63xx/
load-$(CONFIG_BCM63XX)      := 0xffffffff80010000

for ARM建筑学

file 生成文件.boot包含分配有物理地址空间中的位置的字段/变量“zreladdr-y”。

example:

openwrt/build_dir/target-mips_mips32_musl-1.1.16/linux-brcm63xx_smp/linux-4.4.14/arch/arm/mach-omap1/Makefile.boot

   zreladdr-y       += 0x10008000
params_phys-y       := 0x10000100
initrd_phys-y       := 0x10800000

for 微火建筑学

file Makefile包含分配有物理地址空间中的位置的字段/变量“UIMAGE_LOADADDR”(从 Xilinx ISE 导出)。

example:

openwrt/build_dir/target-mips_mips32_musl-1.1.16/linux-brcm63xx_smp/linux-4.4.14/arch/microblaze/boot/Makefile

UIMAGE_LOADADDR = $(CONFIG_KERNEL_BASE_ADDR)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加载linux内核的基地址 的相关文章

  • 从 TestContainer 访问 Podman REST API

    我使用 Maven 3 和 Podman 1 8 0 开发一个 Java 应用程序 据我了解 Podman 提供了与 Docker 兼容的 REST API Java集成测试使用TestContainer框架 TestContainer 无
  • 为什么当设置为 TLS 选择器时,ES 和 DS 在 64 位内核上最终会归零?

    下面的 32 位程序调用set thread area 2 http linux die net man 2 set thread area在 GDT 中创建一个条目 该条目旨在用于 TLS 通常将结果选择器放入FS or GS并成功使用
  • 检查 VT-x 是否已激活而无需在 Linux 中重新启动?

    我有一台配备 Intel Core i5 M 450 2 40GHz 的笔记本电脑 显然有 VT x 但没有 VT d 我有 Ubuntu 12 04 32 位 但希望在其上运行基于虚拟 64 位终端的 Linux 我如何知道 BIOS 是
  • 如何有效地将许多文件移动到新服务器?

    我正在更换托管提供商 需要将数百万个上传的文件传输到新服务器 所有文件都位于同一目录中 是的 你读对了 过去我这样做过 压缩源服务器中的所有文件 scp到新服务器的 zip Unzip Move directory to appropria
  • 系统调用:sys_exit()、SYS_exit 和 exit() 之间的区别

    SYS exit sys exit 和 exit 之间有什么区别 我的理解是 Linux内核提供了系统调用 这些调用在man 2 syscalls 这些系统调用的包装函数由glibc它们的名称与系统调用大多相似 我的问题 在man 2 sy
  • 无法从外部 bash 脚本正确设置 MySQL 密码

    我有两个脚本 主要的一个脚本执行一些不同的操作并调用第二个脚本 第二个脚本安装 MySQL 从我的主脚本中我做了这样的事情 read p Set the password for the database min 4 characters
  • Plink 通过 C# 返回不需要的字符

    通过 C 使用 Plink 时 我在结果前后收到不需要的字符 Command ls l informatica tgtdynamicparams out grep vaulttest grep Sep 1 awk print 9 sort
  • 访问单个结构体成员是否会将整个结构体拉入缓存?

    我一直在读乌尔里希 德雷珀的书 每个程序员都应该了解的内存知识 http lwn net Articles 250967 并在部分3 3 2 缓存效果的测量 http lwn net Articles 252125 页面中间 它给我的印象是
  • Ansible 权限问题

    我正在尝试将当前用户添加到系统中的某个组 然后执行需要该组权限的命令 我的剧本是这样的 name Add this user to RVM group sudo true user state present name vagrant ap
  • 如何保护Linux中的堆内存?

    我想将一块堆内存设置为只读 为此我尝试过memalign with mprotect 但是从 memalignment 中我能得到什么 memalign 从进程堆中分配内存 我想将堆的某些部分设为只读 有什么帮助吗 malloc gt mm
  • time_t 最终的 typedef 是什么?

    我搜索了我的 Linux 机器并看到了这个 typedef typedef time t time t 但我找不到 time t定义 The 文章对此进行了一些阐述 底线是类型time tC 规范中不保证 The time tdatatyp
  • 减少内存分配GCC命令

    今天 在我的计算机科学课上 我被告知我可以调整程序在编译期间可以分配的内存量 使用 GCC Linux 该数量默认设置为最佳模式 这意味着尽可能多 在调试应用程序期间 我可以从这个编译器功能中受益匪浅 因为我需要正确处理分配错误 这在我的
  • Linux 上的 头文件在哪里?为什么我找不到 ? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在Linux中实现C的getch 函数 https stackoverflow com questions 3276546 how to implement getch function of c
  • Qt 的 sysroot 和前缀选项的实际示例是什么

    我正在查看可以运行的所有选项configureQt 提供的脚本 特别是 qt everywhere opensource src 5 2 0 经过大量搜索后 我确定这些东西充其量记录很少 所以我希望我能得到一些帮助 当我查看描述时prefi
  • 如何找到某个命令的目录?

    我知道 当您使用 shell 时 唯一可以使用的命令是可以在 PATH 上设置的某些目录中找到的命令 即使我不知道如何查看 PATH 变量上的目录 这是另一个可以回答的好问题 我想知道的是 我来到 shell 并写道 lshw 我想知道 s
  • 在C中获取终端宽度?

    我一直在寻找一种从 C 程序中获取终端宽度的方法 我不断想出的是这样的东西 include
  • 在我的 Linux 机器上安装 lisp

    我使用 Vim 作为我的编辑器 Practical common Lisp 建议安装 Lispbox 我不知道如何使用 emacs 不知道如何用那个 T T 运行 lisp 代码 之后我找到了一个名为 limp vim 的 vim lisp
  • 窗口放置:适用于 Linux (KDE) 的类似 WinSplit Revolution 的应用程序? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 适用于 Linux KDE 的类似 WinSplit Revolution 的应用程序是什么 或者也许 KDE 中有一个我缺少的功能 平铺通常是窗口管
  • Java Linux 非阻塞套接字超时行为

    我有一个 Java 非阻塞服务器 它跟踪选择器中的所有套接字通道 然后我与服务器建立 500 个连接并定期发送数据 服务器接收到的每条数据都会回显给客户端 问题来了 测试工作了几个小时 然后突然逐渐地 服务器管理的所有套接字在尝试读取数据时
  • 您可以bind()和connect() UDP连接的两端吗

    我正在编写一个点对点消息队列系统 它必须能够通过 UDP 运行 我可以任意选择一侧或另一侧作为 服务器 但这似乎不太正确 因为两端都从另一端发送和接收相同类型的数据 是否可以绑定 和连接 两端 以便它们只能彼此发送 接收 这似乎是一种非常对

随机推荐

  • 终止设备上的调试

    我对设备上的调试有点困惑 当我使用模拟器时 在调试会话之后 我只需关闭模拟器窗口 但是在我的设备上调试时 如何关闭会话 只需断开 USB 电缆即可 并且安装的 apk 由Eclipse安装 应该手动删除 您可以通过转到 调试 视角 右键单击
  • 当 readdir() 返回文件名时,stat() 错误“没有这样的文件或目录”

    我无法识别 stat 引发的错误 下面的程序读取目录中的所有文件并打印文件名 DIR dp struct dirent dirp struct stat sb if dp opendir argv 1 NULL perror can t o
  • WPF - MVVM - 组合框选定项

    I have ViewModel 实施的INotifyPropertyChanged 在后台和类中Category它只有一个 type 属性string 我的 ComboBox SelectedItem 绑定到类别的实例 当我更改实例的值时
  • 如何更改导航视图中的分隔符颜色?

    我正在尝试使用 NavigationView 来实现 NavigationDrawer 我通过在菜单中设置组 ID 添加了分隔符 但是我看不到分隔符 我想这是因为分隔符颜色与背景相同 所以我想改变分隔符的颜色 但我找不到办法改变它 谁能帮我
  • 如何迭代大型输入文件?

    我正在尝试访问通过输入字段上传的文件内容的迭代器 我可以通过 web sys 将 JS 文件传递 到 Wasm 中 但是我一生都无法弄清楚如何访问 Rust 中传递的文件的长度和名称之外的任何内容 我想我可以将整个文件作为 ByteArra
  • Windows npm 中的 Glob 通配符

    我试图让 npm 在脚本文件夹上构建 browserify 问题是 我在 Windows 上 执行folder js 似乎不起作用 我尝试过全局安装 glob 但每当我运行构建命令时 都会返回错误 提示 找不到模块 c www projec
  • 如何从 Web 服务响应中读取 HTTP 响应标头?

    如何从 C 中的 Web 服务响应中读取 HTTP 响应标头 在深入研究 MSDN 之后 我所需要做的就是覆盖GetWebResponse方法 然后我可以访问响应头 public class MyWSProxy HttpWebClientP
  • 执行多尺度训练(yolov2)

    我想知道多尺度训练如何YOLOv2 https arxiv org pdf 1612 08242 pdf works 论文中指出 原始YOLO使用的输入分辨率为448 448 通过添加锚框 我们将分辨率更改为416 416 然而 由于我们的
  • CodeIgniter:帮助从网页获取元标记的类/库?

    我正在使用代码点火器 我想我使用哪个 php 框架并不重要 但在我编写自己的类之前 已经编写了另一个类 该类允许用户获取任何站点的页面标题和元标记 关键字 描述 如果有的话 任何能够做到这一点的 PHP 类都很棒 谢谢大家 你应该看看这个类
  • 如何设置文本字段字符限制 SwiftUI?

    我正在使用 SwiftUi 版本 2 进行应用程序开发 我遇到了 SwiftUI 中可用文本字段的问题 我不想再使用 UITextField 了 我想限制文本字段中的字符数 我搜索了很多 找到了一些与此相关的答案 但这些答案不适用于 Swi
  • Docker:基础镜像

    我试图理解 Docker 概念 但我无法理解一件事 据我了解 镜像 即容器 可以从不同的 Linux 发行版实例化 例如 Ubuntu CentOS 等 假设我在主机上运行标准 Ubuntu 14 04 What happens if I
  • 卷曲总是返回 false

    下面的代码总是回显 false 我错过了什么吗 url https www google nl ch curl init curl setopt ch CURLOPT URL url curl setopt ch CURLOPT RETUR
  • 找不到如何使用 HttpContent

    我正在尝试使用HttpContent HttpContent myContent HttpContent Create SOME JSON 但我没有找到定义它的 DLL 首先 我尝试添加对Microsoft Http也System Net
  • Scrapy 使用带有规则的 start_requests

    我找不到任何使用 start requests 与规则的解决方案 我也没有在互联网上看到任何关于这两个的示例 我的目的很简单 我想重新定义 start request 函数以获得捕获请求期间所有异常的能力 并在请求中使用元 这是我的蜘蛛的代
  • 结果在同一个文件夹中

    我尝试执行以下命令来对文件夹内找到的数据进行分析 但是 它将它们保存在我执行该行的文件夹中 如何将结果保存在文件所在的文件夹中位于 sed n 14 71p fastqc fastqc txt awk print 1 2 awk sum 2
  • 如何在golang中$push嵌套数组?

    我尝试使用以下方法将一些数据推送到嵌套数组中 push 这是我的 json 文件 id ObjectId 57307906f051147d5317984e user firstName chetan lastName kumar age 2
  • Composer PSR-4 自动加载“找不到类”调试

    是的 另一个关于 找不到类 错误的问题 要么是我遗漏了什么 要么是我误解了 PSR 4 逻辑 我的作曲家库目录结构 扫描仪 gt src gt Test php Test php namespace MyNS class Test 作曲家
  • firebase 的 addValueEventListener() 和 addListenerForSingleValueEvent() 之间的区别

    正如标题所说 我想知道两者之间的区别addValueEventListener and addListenerForSingleValueEvent Firebase 的 addValueEventListener 继续侦听其附加的查询或数
  • 从类定义中省略“private”关键字是否会造成混淆?

    我最近删除了一个private从类定义中指定 因为它位于顶部 紧接在class关键词 class MyClass private int someVariable 我认为这是多余的 一位同事不同意这一点 称这实际上 隐藏 了private数
  • 加载linux内核的基地址

    我对内核如何加载到内存有一些疑问 检查后 proc kallsyms我能够找到内核中各种符号的地址 cat proc kallsyms head n 10 00000000 t vectors start 80008240 T asm do