Can filesystems be created only on block devices, but not on character devices?
Can a filesystem be viewed as a block device itself (for example, when programming to use a file system)?
My guess is yes, not very surely based on the followings:
There is a diagram for Linux, from Operating System Concepts:
It seems that in Understanding the Linux Kernel, the IO operations on regular files and on block device files are largely implemented similarly to each other above device drivers, compared to IO operations on character device files.
I seem to remember there are filesystems not built upon physical devices, such as
/proc. But I am not thinking about them, or just think of them as being built upon RAM, which is a block device, isn't it?