真正的零拷贝有两种方式: mmap+write Sendfile mmap 是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对应关系。 这样就可以省掉原来内核 Read 缓冲区 Copy 数据到用户缓冲区,但是还是需要内核 ...
分类:
其他好文 时间:
2020-05-20 18:34:29
阅读次数:
72
铁人三项(第五赛区)_2018_seven 先来看看保护 保护全开,IDA分析 首先申请了mmap两个随机地址的空间,一个为rwx,一个为rw 读入的都shellcode长度小于等于7,且这7个字符不能重复。 然后把一个叫initial的东西复制到rwx_page上,再把我们写的shellcode拼 ...
分类:
其他好文 时间:
2020-05-16 12:34:18
阅读次数:
90
本文转自:https://blog.csdn.net/gfgdsg/article/details/42709943 借花献佛,以留后用 Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通过每个进程上的页表(在每 ...
分类:
系统相关 时间:
2020-05-13 16:32:43
阅读次数:
75
一般流程是先创建或打开一个文件,然后使用mmap进行内存映射。 1. 读取文件 // 打开文件 int fd = open("input.txt", O_RDONLY); // 读取文件长度 int len = lseek(fd,0,SEEK_END); // 建立内存映射 char *addr = ...
分类:
编程语言 时间:
2020-05-01 16:19:49
阅读次数:
176
内存映射文件的方法 Windows采用MapViewOfFile系统api,Linux则采用mmap相关函数。之前在做大数据查询计算的时候,经常会出现内存不足的情况,malloc无法分配内存了。那时候就经常在想能不能使用硬盘来充当内存,就像swap交换那样,硬盘是非常大的,如果能使用硬盘来当内存也许 ...
分类:
其他好文 时间:
2020-04-19 11:12:46
阅读次数:
69
epoll仅限Linux或Unix系统(服务器)。 片面讲epoll并发原理:1.数据共享(内存映射(mmap)技术),即client_socket_list和操作系统共享,省去拷贝fb给操作系统的时间 2.事件监听(基于事件的就绪通知方式),不再是一直遍历客户端套接字列表来得知哪个套接字有数据,而 ...
分类:
其他好文 时间:
2020-04-14 12:49:26
阅读次数:
77
恢复内容开始 参考博客:https://blog.csdn.net/qq_33611327/article/details/81738195 mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射 ...
分类:
其他好文 时间:
2020-04-11 23:40:56
阅读次数:
90
1.数据库设计 实现oracle,mysql不同数据库链接不同的数据类型 2.在跳转到添加页面的时候,去数据库查询parent_id=0的数据,存入modelMap中带入add.html页面 @GetMapping("/add") public String add(ModelMap mmap) { ...
分类:
数据库 时间:
2020-04-06 17:41:28
阅读次数:
193
为了解放程序员的双手,减少重复性代码的编写,推荐使用插件:mybatis-plus-generator 进行代码自动生成。下面我将详细介绍通过 mybatis-plus-generator 插件自动生成 controller、service、mapper、serviceImpl相关代码。 项目工程目 ...
分类:
其他好文 时间:
2020-04-03 13:45:01
阅读次数:
80
第19章:枚举类型(下) 昨天做了简短的分析,算是enum的本质。文中将enum比作容器,有点像,毕竟是一个文件包含了多种预设的对象。 EnumSet中的元素必须来自一个enum。EnumSet的设计充分考虑到了速度因素,因为它必须与非常高效的bit标志相竞争。就其内部而言,它就是将一个long值作 ...
分类:
编程语言 时间:
2020-03-24 23:21:00
阅读次数:
74