- 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:
parent
31b08d0134
commit
0c6adeff9f
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=18565
1 changed files with 27 additions and 0 deletions
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue