9.4.Â Block Devices (Are Gone)

Other UNIXÂ® systems may support a second type of disk
device known as block devices. Block devices are disk devices
for which the kernel provides caching. This caching makes
block-devices almost unusable, or at least dangerously
unreliable. The caching will reorder the sequence of write
operations, depriving the application of the ability to know the
exact disk contents at any one instant in time. This makes
predictable and reliable crash recovery of on-disk data
structures (filesystems, databases etc.) impossible. Since
writes may be delayed, there is no way the kernel can report to
the application which particular write operation encountered a
write error, this further compounds the consistency problem.
For this reason, no serious applications rely on block devices,
and in fact, almost all applications which access disks directly
take great pains to specify that character (or
“raw”) devices should always be used. Because the
implementation of the aliasing of each disk (partition) to two
devices with different semantics significantly complicated the
relevant kernel code FreeBSD dropped support for cached disk
devices as part of the modernization of the disk I/O
infrastructure.