Posted in software

Page Cache vs buffer cache

Ever since I started reading about Linux kernel, I am confused about page cache and buffer cache. It looks like the latter has become obsolete and the former is in vogue. But the latter is still implemented inside former.

Rant: The unit disk size and the unit memory size are different. The latter being more than former. Mostly because the asymptotic overhead of reading consecutive blocks from the disk is low. So more is cached in the disk.

So I googled for it.

One site said:

A buffer is something that has yet to be “written” to disk. A cache is something that has been “read” from the disk and stored for later use.

At present what I gather is this: There are somethings on disk that does not fit in a page – like the file system metadata. Buffer cache – that is implemented in the page cache – is used for this purpose. For file, page cache is used.