A block device (also called a block special file) is the abstraction of a “physical drive” (e.g., hard disk drive, RAID and RAM disk). This abstraction is provided by device drivers (also called “kernel modules”) that interact with the controllers of different devices.
From the programming perspective, a block device, regardless of the actual physical device, support several common methods. These methods include the determination of a block size, reading a block, and writing a block. Many block devices also support random access and seeking, abilities to efficiently access any block on a block device.
The concept of a block device is very important. This concept makes it possible to separate the implementation of file systems from the logic to control devices.
Typically a hard disk, RAM disk or RAID device has a matching block device if the device is to be used by the operating system.