自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (5)
  • 收藏
  • 关注

原创 【解答】关于内核中没开MMU之前的虚拟地址物理地址转换问题

1. 内核没开MMU之前有虚拟地址吗?没有MMU哪来的虚拟地址? 答:有,因为加载时地址和运行时地址不同导致的没打开MMU之前也会有虚实地址问题。 2. 加载时地址和运行时地址什么区别,为什么有这种区别? 答:加载时地址:把可执行文件放到物理内存的内存地址,例如把镜像放到0x80000000地址处,则加载时地址=0x80000000 运行时地址:镜像生成后的虚拟地址,由编译器和连接脚本决定。 内核镜像放到内存中时,放置的地址是任意的,所以要考虑到这种情况,在没打开mmu之前使用内存中的数据都要计算偏移

2014-09-29 10:55:21 4168 4

关于内核动态补丁技术(kpatch)

内核可以在运行时动态执行补丁中的代码(kpatch),而不需要重启后再运行补丁代码。对于kpatch的运行原理,可以参看[3], kpatch基于ftrace技术,可以在内核运行时动态的(即不需要重启)、整体替换某个函数(但需要暂时停止所有运行时进程)。如图1所示,具体的,当内核运行之前,加入原来的内核函数名字为func_original(),则内核编译时就先把patch做好(假设替换函数为func_replace()),同时编译进内核中。本文主要解释从gnu汇编原语角度如何实现kpatch,具体kpatch机制可以参考文献[3]。内核文件arch/arm64/include/asm/alternative.h中有一段汇编,涉及内核动态patch技术。

2018-11-19

SPEC 2017 int rate command lines

SPECCPU 2017 整型测试程序的命令行,从代码中抠出,用于单独运行benchmark进行实验

2018-06-01

Event in gem5

gem5底层如何实现模拟处理器并行执行的?如何实现准确计算cycle数?

2017-01-21

ARMv8 Linux内核异常处理分析

看了 Linaro 提供的开源 ARMv8 Linux 内核源码,发现 ARMv8 异常处理与 ARMv7 及之前的架构有所不同,详细分析之

2014-05-30

ARM上电启动及Uboot代码分析

网上关于ARM的bootloader(以Uboot为例)的启动顺序的资料有好多,但是对于Uboot的地址映射、体系结构级操作介绍很少,都是直接开始Start.s代码的阅读。本文拟详细分析Uboot从上电,到第一条指令的执行,同时分析代码对于cache、TLB等部件的操作过程。 以下内容以u-boot-2012.04.01源码为例,从网上很容易下载该版本。

2014-05-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除