Fork me on GitHub
上一页 1 ··· 65 66 67 68 69 70 71 72 73 ··· 99 下一页
摘要: 我们在前面的章节中已经详细介绍了堆在进程中的地址空间是如何分布的,对于程序来说,堆空间只是程序向操作系统申请划出来的一大块地址空间。而程序在通过 malloc申请 内存空间时的大小却是不一定的,从数个字到数个GB都是有可能的。于是我们必须将堆空间管理起来,将它分块地按照用户需求出售给最终的程序,并且 阅读全文
posted @ 2019-03-31 18:00 yooooooo 阅读(2589) 评论(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 阅读(8518) 评论(1) 推荐(3) 编辑
摘要: ICMP ICMP(Internet Control Message protocol)互联网信息控制协议,用于实现链路连通性测试和链路追踪,可以实现链路差错报告,属于UDP协议。ICMP有多种类型的报文,同一类型的报文会有多个不同的Code。 ping、tracert 等命令的内部就是用的 icm 阅读全文
posted @ 2019-03-29 10:59 yooooooo 阅读(1217) 评论(0) 推荐(0) 编辑
摘要: 1. 动态链接器的自举 我们知道动态链接器本身也是一个共享对象,但是事实上它有一些特殊性。对于普通共享对象文件来说,它的重定位工作由动态链接器来完成。他也可以依赖其他共享对象,其中的被依赖共享对象由动态链接器负责链接和装载。可是对于动态链接器来说,它的重定位工作由谁来完成?它是否可以依赖于其他共享对 阅读全文
posted @ 2019-03-17 19:45 yooooooo 阅读(5474) 评论(2) 推荐(2) 编辑
摘要: 在了解了共享对象的绝对地址的引用问题后,我们基本上对动态链接的原理有了初步的了解,接下来的问题是整个动态链接具体的实现过程了。动态链接在不同的系统上有不同的实现方式。ELF的动态链接的实现方式会比PE的简单一点,在这里我们先介绍ELF的动态链接过程在LINUX下的实现,最后我们会专门的章节中介绍PE 阅读全文
posted @ 2019-03-16 20:51 yooooooo 阅读(1185) 评论(0) 推荐(0) 编辑
摘要: local_irq_disable: local_irq_disable的功能是屏蔽当前CPU上的所有中断,通过操作arm核心中的寄存器来屏蔽到达CPU上的中断,此时中断控制器中所有送往该CPU上的中断信号都将被忽略。 disable_irq: 在全局范围内屏蔽某一个中断号(irq num)。该ir 阅读全文
posted @ 2019-03-15 14:52 yooooooo 阅读(1751) 评论(0) 推荐(0) 编辑
摘要: 这几天在看Linux内核的IPC命名空间时候看到关于IDR的一些管理性质的东西,刚开始看有些迷茫,深入看下去豁然开朗的感觉,把一些心得输出共勉。 我们来看一下什么是IDR?IDR的作用是什么呢? 先来看下IDR的作用:IDR主要实现ID与数据结构的绑定。刚开始看的时候感觉到有点懵,什么叫“ID与数据 阅读全文
posted @ 2019-03-15 10:36 yooooooo 阅读(2416) 评论(0) 推荐(0) 编辑
摘要: 什么是哈希表? 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构 。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 记录的存储位置=f(关键字) 这里的对应关系f称 阅读全文
posted @ 2019-03-14 15:34 yooooooo 阅读(1227) 评论(0) 推荐(0) 编辑
摘要: 1、前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟 阅读全文
posted @ 2019-03-14 14:54 yooooooo 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 动态链接的确有很多优势,比静态链接要灵活得多,但它是以牺牲一部分性能为代价的。据统计ELF程序在静态链接下要比动态库稍微快点,大约为1%~5%,当然这取决于程序本身的特性及运行环境等。我们知道动态链接比静态链接慢的主要原因是动态链接下对于全局和静态的数据访问都要进行复杂的GOT定位,然后间接寻址;对 阅读全文
posted @ 2019-03-10 22:52 yooooooo 阅读(1848) 评论(0) 推荐(4) 编辑
上一页 1 ··· 65 66 67 68 69 70 71 72 73 ··· 99 下一页