在内核2.6版本之前,两个Cache的区分是比较大的,但是在该版本之后,两个Cache的区别逐渐弱化:
| Page Cache | Buffer Cache |
|---|---|
| 对文件数据的缓存 | 对块设备数据的缓存 |
| 主要缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问 | 主要缓存文件的物理内容,即物理磁盘的磁盘块,从而加速对磁盘的访问; |
| 优化文件系统的I/O | 优化磁盘的I/O |
| 主要提高读效率 | 主要提高写效率 |
在内核版本2.6之后,虚拟内存子系统可以直接访问Buffer Cache,Buffer Cache里也可以直接存指向Page Cache的指针。
Buffer Cache和Page Cache的区别: