当前位置: 首页 > news >正文

kernel header解析

一、kernel header定义: 

======aarch64 kernel header========
u32 code0;          /* Executable code */
u32 code1;          /* Executable code */
u64 text_offset;        /* Image load offset, little endian */
u64 image_size;     /* Effective Image size, little endian */
u64 flags;          /* kernel flags, little endian */
u64 res2    = 0;        /* reserved */
u64 res3    = 0;        /* reserved */
u64 res4    = 0;        /* reserved */
u32 magic   = 0x644d5241;   /* Magic number, little endian, "ARM\x64" */
u32 res5;           /* reserved (used for PE COFF offset) */
====================================

//TEXT_OFFSET是kernel镜像在内存中的偏移量。

注意事项: 

Header notes:

  • As of v3.17, all fields are little endian unless stated otherwise.

  • code0/code1 are responsible for branching to stext.

  • when booting through EFI, code0/code1 are initially skipped. res5 is an offset to the PE header and the PE header has the EFI entry point (efi_stub_entry). When the stub has done its work, it jumps to code0 to resume the normal boot process.

  • Prior to v3.17, the endianness of text_offset was not specified. In these cases image_size is zero and text_offset is 0x80000 in the endianness of the kernel. Where image_size is non-zero image_size is little-endian and must be respected. Where image_size is zero, text_offset can be assumed to be 0x80000.

  • The flags field (introduced in v3.17) is a little-endian 64-bit field composed as follows:

    Bit 0

    Kernel endianness. 1 if BE, 0 if LE.

    Bit 1-2

    Kernel Page size.

    • 0 - Unspecified.
    • 1 - 4K
    • 2 - 16K
    • 3 - 64K

    Bit 3

    Kernel physical placement

    0

    2MB aligned base should be as close as possible to the base of DRAM, since memory below it is not accessible via the linear mapping

    1

    2MB aligned base may be anywhere in physical memory

    Bits 4-63

    Reserved.

 参考:https://github.com/torvalds/linux/blob/ff1176468d368232b684f75e82563369208bc371/Documentation/arm64/booting.rst

相关文章:

kernel header解析

一、kernel header定义: aarch64 kernel header u32 code0; /* Executable code */ u32 code1; /* Executable code */ u64 text_offset; /* Image load offset, little endian */ u64 image_size; /* Effective Image size, little…...

MQ运行时遇到的问题

遇到的问题描述:我在绑定通道的时候发现了通道绑定失败, 原因: 在代码中我第一次创建交换机的时候类型的默认没有修改成topic类型的,导致后面的代码再去进行注册的时候并没有实现那个类型 解决: 更改代码&#xff0…...

EDI是什么?与ERP有何关系

EDI的发展过程 电子数据交换(Electronic Data Interchange,EDI)是一种通过电子方式传输商业文件的技术。EDI的历史可以追溯到20世纪60年代,当时企业开始使用计算机进行数据处理。最早的EDI系统是为解决大型企业间的信息交换问题而…...

【MotionCap】在wsl2 ubuntu20.04构建及运行

https://github.com/MVIG-SJTU/AlphaPose/issues/1157conda create -n alphapose python=3.7 -y conda activate alphapose conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1...

iptables 防火墙(二)

iptables 防火墙(二) 一、SNAT 策略及应用SNAT 策略概述SNAT 策略的应用 二、DNAT 策略及应用DNAT 策略概述 三、规则的导出、导入规则的备份及还原iptables-save 命令iptables-restore 命令 使用 iptables 服务 四、使用防火墙脚本防火墙脚本的构成防火…...

【机器学习】在【PyCharm中的学习】:从【基础到进阶的全面指南】

目录 第一步:基础准备 1.1 Python基础 1.1.1 学习Python的基本语法 1.1.2 控制流 1.1.3 函数和模块 1.2 安装PyCharm 1.2.1 下载并安装 第二步:数据科学基础 2.1 安装必备库 2.1.1 使用pip安装 2.2 数据操作 2.2.1 Pandas基础操作 2.2.2 Nu…...

idea Error running ‘Application‘

1、Error running ‘Application’ Error running ApplicationError running Application. Command line is too long.Shorten the command line via JAR manifest or via a classpath file and rerun.找到 .idea/libraies/workspace.xml 中的 PropertiesComponent 属性&#…...

数据结构和顺序表

什么是数据结构 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 数据元素的三要素 数据结构包括三方面的内容:逻辑结构、存储结构、数据的运算。 逻辑结构 逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。数据的逻辑结…...

【一步一步了解Java系列】:对这个系列的总结以及对缺漏内部类知识的补充

看到这句话的时候证明:此刻你我都在努力 加油陌生人 br />个人主页:Gu Gu Study专栏:一步一步了解Java 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xf…...

TCP和UDP

目录 TCPUDPTCP 传输控制协议(Transmission Control Protocol, TCP)是一种面向连接的,可靠的,基于字节流的传输层通信协议。在该层,另一个重要传输协议是用户数据包协议(UDP)。 数据在TCP层称为流Stream,数组分组称为分段Segment。相对的在IP层,数据称为Datagram, 数…...

【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行

isarsoft / yolov4-triton-tensorrt运行发现插件未注册? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4 对main 进行了重新构建 【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号【ai】tx2…...

类与对象的创建

1.类是一种抽象的数据类型,他是对某一类事务整体描述/定义,但是并不能代表某一个具体的事物 eg:动物,植物,手机,电脑... Person类,Pet类,Car类,这些类都是用来描述、定义…...

基于单片机的 LED 照明灯智能调光系统设计

摘  要: 社会经济的不断发展,推动了智能化生活的进程,智能调光技术开始广泛应用在生活中,人们也逐渐提高了灯光亮灯率等的要求。基于此,笔者主要设计了基于单片机的 LED 照明灯智能调光系统,希望能够为相关…...

客户满意度调查方法有哪些

用户满意度调查作为改进用户体验工作中重要的一项活动,可以帮助企业深入了解客户对产品服务各方面评价。有许多企业想开展客户满意度调查,但是在调查方式上不清楚该用那种方式?另外还要考虑预算,民安智库(公众满意度调…...

为什么企业应用开发,c++干不过java?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! C/C这种东西,根本…...

基于盲信号处理的声音分离——最小化增益的ICA算法

基于最小化增益的ICA算法的算法是依据混合信号经过盲信号分离会产生一定的噪声,为了使得分离后的信号与原信号的比值最小时,叫做增益最小。当增益越小时,分离后噪声越小,分离信号越接近原信号,分离算法的效果越好。这是…...

自动化代码规范检查--Sonarqube部署

参考文档 官方文档安装数据库 官方给出几种数据库: # 我们选用postgres, 拉取镜像 docker pull postgres:16.0# 创建存储卷 docker volume create postgresql-data# 运行容器 docker run -d --name sonarqube-postgres \-p 5432:5432 \-e POSTGRES_DB=sonar_DB \-e POSTGRE…...

基于uni-app与图鸟UI的移动应用模板构建研究

摘要 随着移动互联网技术的迅猛发展,移动端应用已成为企业展示形象、提供服务的重要窗口。本文基于uni-app框架和图鸟UI设计,深入探讨了如何高效构建覆盖多个领域的移动端应用模板。通过对商城、办公、投票、生活服务等多种类型模板的详细介绍&#xff…...

AI智能在Type-C领域的应用

随着科技的飞速发展,Type-C接口凭借其卓越的性能和广泛的应用场景,已成为现代电子设备中不可或缺的一部分。而AI智能技术的兴起,为Type-C领域带来了革命性的变革,推动了其功能的进一步完善和应用领域的拓展。本文将探讨AI智能在Ty…...

INS-GPS组合导航——卡尔曼滤波

系列文章目录 《SAR笔记-卫星轨道建模》 《SAR笔记-卫星轨迹(三维建模)》 《常用坐标系》 文章目录 前言 一、经典卡尔曼滤波 二、扩展卡尔曼滤波 三、无迹卡尔曼滤波 总结 前言 SAR成像仪器搭载于运动平台,平台的自定位误差将影响SAR…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...