上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 63 下一页
摘要: 如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。M 阅读全文
posted @ 2020-03-03 20:04 pipci 阅读(494) 评论(0) 推荐(0)
摘要: arm-linux学习-(MMU内存管理单元) 什么是MMU MMU(Memory Management Unit)主要用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权、多任务多进程操作系统。(来自百度百科,对其几个点不熟悉,因此可以只考虑加 阅读全文
posted @ 2020-03-03 19:59 pipci 阅读(937) 评论(0) 推荐(0)
摘要: 前言:段页式的访存的内容还没有结束。。。还有一部分知识,线性地址到物理地址的转换。话不多说,让我们开始吧。 假设页的大小是 4KB,每个页表项占 4B,则理论上一个页表有多大?(虚拟空间大小是 4GB) 页表项数目 = 4 GB / 4 KB = 1 MB 所以, 页表大小 = 1 MB × 4 B 阅读全文
posted @ 2020-03-03 19:04 pipci 阅读(697) 评论(0) 推荐(0)
摘要: 继续底层知识,想要看懂 PWN 题和理解汇编代码,必须要搞懂这些底层知识啊。搞懂 movl 8(%ebp), %eax(IA-32 架构)真的不容易。。。 movl 8(%ebp), %eax(IA-32) 首先我们来看这条指令什么意思:把内存中某个地址的 32 位数据,放入 eax 寄存器中。你可 阅读全文
posted @ 2020-03-03 18:53 pipci 阅读(732) 评论(0) 推荐(0)
摘要: 分析linux内存管理机制,离不了上述几个概念,在介绍上述几个概念之前,先从《深入理解linux内核》这本书中摘抄几段关于上述名词的解释: 一、《深入理解linux内核》的解释 逻辑地址(Logical Address) 包含在机器语言指令中用来指定一个操作数或一条指令的地址(有点深奥)。这种寻址方 阅读全文
posted @ 2020-03-03 18:28 pipci 阅读(954) 评论(0) 推荐(0)
摘要: 二、线性地址转物理地址前面说了Linux中逻辑地址等于线性地址,那么线性地址怎么对应到物理地址呢?这个大家都知道,那就是通过分页机制,具体的说,就是通过页表查找来对应物理地址。分页是CPU提供的一种机制,Linux只是根据这种机制的规则,利用它实现了内存管理。分页的基本原理是把线性地址分成固定长度的 阅读全文
posted @ 2020-03-01 22:46 pipci 阅读(331) 评论(0) 推荐(0)
摘要: 研究内核时间不长,前几天画了个内存管理大图,感觉太乱,准备细分写点东西也算是整理一下自己的思路。都是一个人瞎琢磨的,周围没有可以交流的,不正确的地方请指出来。一、逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才 阅读全文
posted @ 2020-03-01 22:43 pipci 阅读(425) 评论(0) 推荐(0)
摘要: 蛋疼的概念,总是让人琢磨不透,每每遇到这些形似的名词,我总感觉是我小学时候近义词练习做少了。因为每次我都要花很多时间才能真正的能够说服自己的搞懂这些概念。逻辑地址:很简单,就是你源程序里使用的地址,或者源代码经过编译以后编译器将一些标号,变量转换成的地址,或者相对于当前段的偏移地址。线性地址:这个地 阅读全文
posted @ 2020-03-01 19:24 pipci 阅读(1173) 评论(0) 推荐(0)
摘要: 物理地址:物理地址就是内存单元的绝对地址,比如你有一个4G的内存条插在电脑上,物理地址0x0000就表示内存条的第一个存储单元,0x0010就表示内存条的第17个存储单元,不管CPU内部怎么处理地址,最终访问的都是物理地址。在CPU实模式下“段基址+段内偏移地址”就是物理地址,CPU可以使用此地址直 阅读全文
posted @ 2020-03-01 19:23 pipci 阅读(3311) 评论(0) 推荐(0)
摘要: 系统调用就是通过系统api操作由操作系统统一管理的资源,比如设备、文件、内存、进程、进程间通信。系统调用运行在系统的核心态,需要内核上下文环境 从用户态的函数调用切换到核心态的系统调用,需要通过中断实现,当执行系统调用时,先将参数压入栈寄存器,然后通过中断将控制器交给操作系统,操作系统根据系统调用码 阅读全文
posted @ 2020-03-01 17:19 pipci 阅读(1833) 评论(0) 推荐(0)
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 63 下一页