On what abstraction is a filesystem actually built on?
You usually have several layers. You will have a physical level, where complete sectors can be read or written - except on SSD drives, you can only write into an area that is zeroed, and you can only zero sectors 32 or 64 at a time. Much more interesting than a hard drive. 

On top of that you have a level that is still in the hard drive. Caches on a hard drive, highly complex controllers on an SSD drive. SSD drives especially need to be handled right to get maximum performance, and that is built into the controller instead of the operating system. 

On top of that you usually have one level handling partitioning, possibly one level handle fusioning of partitions on several drives, and a level handling full disk encryption. And you'll build your file system on the highest of those levels.