Raw and Block Devices
With each disk slice or logical volume there are two methods by which they can be accessed, either through the raw (character) interface or through the block interface. The following are examples of character devices:
# ls -l /dev/vx/rdsk/myvol crw------ 1 root root 86, 8 Jul 9 21:36 /dev/vx/rdsk/myvol # ls -lL /dev/rdsk/c0t0d0s0 crw------ 1 root sys 136, 0 Apr 20 09:51 /dev/rdsk/c0t0d0s0
while the following are examples of block devices:
# ls -l /dev/vx/dsk/myvol brw------ 1 root root 86, 8 Jul 9 21:11 /dev/vx/dsk/myvol # ls -lL /dev/dsk/c0t0d0s0 brw------ 1 root sys 136, 0 Apr 20 09:51 /dev/dsk/c0t0d0s0
Note that both can be distinguished by the first character displayed (b or c ) or through the location of the device file. Typically, raw devices are accessed through /dev/rdsk while block devices are accessed through /dev/dsk. When accessing the block device, data is read and written through the system buffer cache. Although the buffers that describe these data blocks are freed once used, they remain in the buffer cache until they get reused. Data accessed through the raw or character interface is not read through the buffer cache. Thus, mixing the two can result in stale data in the buffer cache, which can cause problems.
All filesystem commands, with the exception of the mount command, should therefore use the raw/character interface to avoid this potential caching problem.