A block device can be thought of as big array of bytes that file system drivers can build file/directory support on top of.

It generally is an abstraction for hardware devices to allow programmers to read/write blocks of any size and any alignment.