至于我在2010年左右阅读有关LKML的讨论,因此~2.2.x内核应该是页面缓存和缓冲区缓存的一个很好的统一。
我浏览过filemap.c和buffer.c,但遗憾的是没有发现任何实际合并两个缓冲区的补丁。实际上没有任何迹象表明2010年之后发生了任何统一。也许我错过了什么。
LKML对用户不友好 - 任何人都知道lkml.indiana.edu/hypermail/linux/kernel/的网站simmilar,它有明确的“树状”概述LKML中的整个某些线程并且不会丢失出现的子线程到另一个分支,首先允许多个消息的平面视图(没有累人点击)?
pagecache vs buffer。让我们想象它们是分开的。有人可以解释我们需要有两个主要原因,而不是例如专注于一个吗? 说 - 缓冲区缓存,缓存每个IO,FIFO或甚至考虑最常用的扇区,并将它们与队列分开缓存。 或者完全相反,只是页面缓存,保持先写,从缓慢的IO读取1 + X读取扇区进入内存,根据空闲内存和其他一些奇特的算法确定剩余的内容?
让我们假设缓冲区缓存和页面缓存是统一的。鉴于缓冲区缓存存储指向内存缓存页面的指针,这种统一实际上如何帮助(仍留下两个不同的源文件)?最终两者都有相同的用途 - 将X数据存储在内存中。唯一明显的区别是 - 缓冲 - 缓冲,预读,几个“预测的”neraby扇区,以及内存中的-cache-store经常需要io扇区。