一、技术概览
1.1 定义
零拷贝技术,Zero-copy
零拷贝技术,是一种计算机编程方法。
零拷贝技术,特点是数据从一个地址空间传输到另一个地址空间时,不需要用户态和内核态之间的数据复制。
零拷贝技术,数据从网络接口卡(NIC)或者磁盘等设备到达时,可以直接供应用程序使用,而无需经过中间缓冲区的拷贝过程。
零拷贝技术,“零”指的是减少了不必要的数据复制次数,从而提高了性能。
1.2 专业术语
- 内核态:操作系统内核运行的状态,具有较高的权限可以访问硬件资源。
- 用户态:普通应用程序运行的状态,权限较低不能直接访问硬件。
- 缓冲区:存储临时数据的空间。
- DMA (Direct Memory Access):直接内存访问,允许硬件设备与内存之间直接进行数据交换。
1.3 历史背景和关键里程碑
零拷贝技术,源于对传统数据传输过程中频繁的数据复制带来的性能瓶颈的认识。
随着互联网和大数据的发展,传统的数据处理方式,已经无法满足高效实时的需求。
因此,零拷贝技术逐渐成为提高系统效率的关键手段之一。
- 1980年代末至1990年代初:开始有关于减少数据复制的研究。
- 1990年代末至2000年代初:Linux内核引入了多种