在linux内核的旧版本中,主要有两种不同的磁盘高速缓存:页高速缓存和缓冲区高速缓存,前者用来存放访问磁盘文件内容时生成的磁盘数据页,后者把通过VFS(磁盘管理文件)访问的块的内容保留在内存中。
从2.4.10的稳定版本开始,缓冲区高速缓存其实就不存在了。事实上,由于效率的原因,不再单独分配块缓冲区;相反,把它们存放在叫做“缓冲区页”的专门页中,而缓冲区页保存在页高速缓存中。
缓冲区页在形式上就是与称作"缓冲区首部"的附加描述符相关的数据页,其主要目的是快速确定页中的一格块在磁盘中的地址。实际上,页高速缓存内的页中的一大块数据在磁盘上的地址不一定是相邻的。
缓冲区首部有它们自己的slab分配器高速缓存。