Fork me on GitHub
侧边栏
上一页 1 ··· 101 102 103 104 105 106 107 108 109 ··· 135 下一页
摘要: 用户进程的内存页分为两种: file backed pages(文件背景页) anonymous pages(匿名页) 比如进程的代码段、映射的文件都是file backed,而进程的堆、栈都是不与文件相对应的、就属于匿名页。 file backed pages在内存不足的时候可以直接写回对应的硬盘 阅读全文
posted @ 2019-04-08 11:18 yooooooo 阅读(1505) 评论(0) 推荐(0)
摘要: 1. 第二个start.S 从 开始,在 中有包含 在config.h中: 在 中: 在 中,看到了 的宏 查看u boot.map在这里又来到了上一层的start.S中来,所以可以知道这两个是由两个文件组成的,一个是u boot.bin和reg_info.bin,就是说两个不同的start.S的流 阅读全文
posted @ 2019-04-04 20:38 yooooooo 阅读(6184) 评论(1) 推荐(0)
摘要: 第一阶段 start.S 首先我们可以在u boot.lds中看到 ,即指定了入口 ,`_start start.S`的最开始; 1. reset 在 中的 注意x30在ARMV8中代表lr寄存器 normal_start_flow: / set stack for C code / ldr x0, 阅读全文
posted @ 2019-04-03 15:41 yooooooo 阅读(8175) 评论(2) 推荐(1)
摘要: armv8 1.前言 本文的主要内容来源于ARMV8白皮书v5,对ARMV8做一个概述。包含如下的内容: 首先从背景谈起,讲述ARM的发展历程; 之后介绍ARMV8体系结构的基本特征; 介绍A64指令集 介绍异常级别 介绍内存管理单元 介绍编程寄存器 介绍DEBUG相关 ARMV8生态系统的演化 2 阅读全文
posted @ 2019-04-02 16:29 yooooooo 阅读(5053) 评论(0) 推荐(0)
摘要: 我们在前面的章节中已经详细介绍了堆在进程中的地址空间是如何分布的,对于程序来说,堆空间只是程序向操作系统申请划出来的一大块地址空间。而程序在通过 malloc申请 内存空间时的大小却是不一定的,从数个字到数个GB都是有可能的。于是我们必须将堆空间管理起来,将它分块地按照用户需求出售给最终的程序,并且 阅读全文
posted @ 2019-03-31 18:00 yooooooo 阅读(2769) 评论(1) 推荐(0)
摘要: 内存映射mmap是Linux内核的一个重要机制,它和虚拟内存管理以及文件IO都有直接的关系,这篇细说一下mmap的一些要点。 修改(2015 11 12):Linux的虚拟内存管理是基于mmap来实现的。vm_area_struct是在mmap的时候创建的,vm_area_strcut代表了一段连续 阅读全文
posted @ 2019-03-31 17:06 yooooooo 阅读(8703) 评论(1) 推荐(3)
摘要: ICMP ICMP(Internet Control Message protocol)互联网信息控制协议,用于实现链路连通性测试和链路追踪,可以实现链路差错报告,属于UDP协议。ICMP有多种类型的报文,同一类型的报文会有多个不同的Code。 ping、tracert 等命令的内部就是用的 icm 阅读全文
posted @ 2019-03-29 10:59 yooooooo 阅读(1250) 评论(0) 推荐(0)
摘要: 1. 动态链接器的自举 我们知道动态链接器本身也是一个共享对象,但是事实上它有一些特殊性。对于普通共享对象文件来说,它的重定位工作由动态链接器来完成。他也可以依赖其他共享对象,其中的被依赖共享对象由动态链接器负责链接和装载。可是对于动态链接器来说,它的重定位工作由谁来完成?它是否可以依赖于其他共享对 阅读全文
posted @ 2019-03-17 19:45 yooooooo 阅读(5760) 评论(2) 推荐(2)
摘要: 在了解了共享对象的绝对地址的引用问题后,我们基本上对动态链接的原理有了初步的了解,接下来的问题是整个动态链接具体的实现过程了。动态链接在不同的系统上有不同的实现方式。ELF的动态链接的实现方式会比PE的简单一点,在这里我们先介绍ELF的动态链接过程在LINUX下的实现,最后我们会专门的章节中介绍PE 阅读全文
posted @ 2019-03-16 20:51 yooooooo 阅读(1425) 评论(0) 推荐(0)
摘要: local_irq_disable: local_irq_disable的功能是屏蔽当前CPU上的所有中断,通过操作arm核心中的寄存器来屏蔽到达CPU上的中断,此时中断控制器中所有送往该CPU上的中断信号都将被忽略。 disable_irq: 在全局范围内屏蔽某一个中断号(irq num)。该ir 阅读全文
posted @ 2019-03-15 14:52 yooooooo 阅读(1919) 评论(0) 推荐(0)
上一页 1 ··· 101 102 103 104 105 106 107 108 109 ··· 135 下一页