What is the difference between caching, buffering and paging? Expecting a detailed answer on the OS level
Paging, caching, and buffering are too broad topics to cover in a single post. Briefly, they serve different purposes:

Operating systems use paging as a memory management scheme. A computer stores and retrieves data from secondary storage (usually HDD) for use in main memory (RAM). For example, virtual memory implementations use paging.  

Page caching, on the other hand, is a part of the main memory (say RAM) where you store frequently accesses pages since retrieving from HDD slower than retrieving from the main memory. Please note, I am talking about only page caches. There is for example HDD caches, CPU caches, Web server caches. But all of them have the same goal: to speed up data access.

Buffering typically used for data transfer between OS or program and external devices, Input/Output (keyboard, printer, etc). 

In some sense caches and buffers are somewhat similar, both for storing temporary data for read/write speedup. However, buffers are usually associated with a certain device (printer, keyboard, or even a particular file). Two different buffers are used for two different files, while raw data from both files may be stored in a single cache. Unlike caches buffers contain metainformation about files or devices. Buffers usually short-lived but caches may live as long as OS or program runs. 

This is just very brief information. For further details you may Google and find tons of information on this subject. Or just get a good book on OS.