Summary

  • The functionality provided by a storage volume containing a file system is implemented through a stack of multiple drivers, each of which may be supplied by a different vendor. The driver at each level of the storage driver stack is responsible for performing a specific role.
  • At the bottom of the stack is the transport driver, which interfaces directly with the hardware device that provides the data storage.
  • The block storage driver provides an abstract representation of the storage device as a sequence of bytes that is organized into fixed-sized blocks and provides random-access to its data. The block storage driver sits above the transport driver in the driver stack.
  • A partition driver is responsible for reading the partition table from a disk and creating a driver object to represent each logical volume that exists in the partition table. The partition driver sits above the block storage driver in the driver stack.
  • The I/O Kit represents a logical volume through a driver object called IOMedia. Each IOMedia object can be accessed by a user space process through an interface in the /dev directory.
  • The I/O Kit allows vendors to insert a filter scheme driver into the storage driver stack to intercept all read and write requests that are made to a disk. This can be used to implement a RAID driver, or to encrypt the data that is written to a disk.
  • The file system driver sits at the very top of the storage driver stack. Although file system drivers read and write through the I/O Kit storage driver stack indirectly, they are actually part of the BSD layer of Mac OS X and are not part of the I/O Kit.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.46.109