之前写过一篇简单的介绍mmap()/munmap()的文章《Linux内存管理 (9)mmap》,比较单薄,这里详细的梳理一下。 从常用的使用者角度介绍两个函数的使用;然后重点是分析内核的实现流程;最后对mmap()/munmap()进行一些验证测试。 mmap系统调用并不完全是为了共享内存而设计的 ...
分类:
系统相关 时间:
2018-07-28 00:11:11
阅读次数:
792
前提:本文是基于Linux系统下的学习 补充:Linux系统下,一切皆文件 段错误的原因: 访问了没有物理地址映射的虚拟地址或者是对改地址没有访问权限 #include <sys/mman.h>void *mmap(void *addr, size_t length, int prot, int f ...
分类:
其他好文 时间:
2018-07-22 15:23:34
阅读次数:
184
安装MongoDB非关系型数据库MongoDB基础技能目标理解MongoDB数据库的基本概念学会安装MongoDB数据库MongoDB概述MongoDB是一款开源的文档数据库,并且是业内领先的NoSQL数据库,用C++编写而成MongoDB简介MongoDB是一款跨平台、面向文档的数据库。可以实现高性能,高可用性,并且能能够轻松拓展。在高负载的情况下,添加更多节点,可以保证服务器性能MongoDB
分类:
数据库 时间:
2018-07-13 16:17:25
阅读次数:
223
以前对Android so的注入只是通过现有的框架,并没有去研究so注入原理,趁现在有时间正好拿出来研究一下。 首先来看注入流程。Android so的注入流程如下: attach到远程进程 -> 保存寄存器环境 -> 获取目标程序的mmap, dlopen, dlsym, dlclose 地址 - ...
分类:
移动开发 时间:
2018-07-11 22:55:41
阅读次数:
304
本节继续framebuffer应用编程,使用framebuffer在LCD上显示背景色. 5.7.3.1、mmap做映射 做完了mmap后fb在当前进程中就已经就绪了,随时可以去读写LCD显示器了。 5.7.3.2、fb显示之刷背景 ...
分类:
其他好文 时间:
2018-07-01 18:58:26
阅读次数:
121
1.答: 应用层 与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:TELNET,HTTP,FTP ...
分类:
编程语言 时间:
2018-06-28 14:05:55
阅读次数:
241
Posix共享内存有两种非亲缘进程间的共享内存方法:1). 使用内存映射文件,由open函数打开,再由mmap函数把返回的文件描述符映射到当前进程空间中的一个文件。2). 使用共享内存区对象,由shm_open打开一个 Posix IPC名字。再由mmap把返回的描述符映射到当前进程的地址空间。Po ...
分类:
系统相关 时间:
2018-06-25 22:54:02
阅读次数:
299
有时候再进行一些硬件测试的时候为了加快处理速度,可能会希望通过shell直接修改内存地址中的信息,devmem内部还是mmap进行地址映射,另外觉得可以直接用outb/inb等函数直接操作。 ...
分类:
其他好文 时间:
2018-06-25 17:03:54
阅读次数:
193
一、lseek函数 每个打开文件都有一个与其相关联的“当前文件偏移量”。它通常是一个非负整数,用以度量从文件开始处 计算的字节数。通常,读、写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数。当打开一个文 件时,除非指定O_APPEND选项(调用open函数时使用了O_APPEND),否则 ...
分类:
系统相关 时间:
2018-06-20 00:08:04
阅读次数:
231
【前言】前面有一篇文章介绍了堆区栈区的区别。栈区的核心主要集中在操作一个栈结构,一般由操作系统维护。堆区,主要是我们程序员来维护,核心就是动态内存分配。 一、动态内存分配器 虽然低级的mmap和munmap函数来创建和删除虚拟内存区域,但是C程序运行时在需要额外的存储空间时,一般会使用动态存储器分配 ...
分类:
其他好文 时间:
2018-06-16 14:30:45
阅读次数:
258