- A little new content for the Architecture Manual describing

what happened to the traditional UNIX block devices.

Approved:	blackend (mentor)
Reviewed:	phk (he actually rewrote most of it...)
This commit is contained in:
Ken Smith 2003-10-24 18:45:26 +00:00
parent 31b08d0134
commit 0c6adeff9f
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=18565

View file

@ -527,6 +527,33 @@ Test Data</screen>
</para>
</sect1>
<sect1 id="driverbasics-block">
<title>Block Devices (Are Gone)</title>
<para>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 <quote>raw</quote>) 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 &os; dropped support for
cached disk devices as part of the modernization of the disk I/O
infrastructure.
</para>
</sect1>
<sect1 id="driverbasics-net">
<title>Network Drivers</title>