RK(4)                                                       RK(4)

          rk - RK11/RK07 disk driver

          Files with minor device numbers 0 through 7 refer to various
          portions of drive 0, minor devices 8 through 16 refer to
          drive 1, etc.

          The range and size of the pseudo-drives for each drive are
          as follows:

          RK07 partitions:
               disk      start     length
               0         0         15884
               1         15906     10032
               2         0         53780
               3         0         0
               4         0         0
               5         0         0
               6         26004     27786
               7         0         0

          On a dual RK07 system partition 0 is used for the root for
          one drive and partition 6 for the /usr file system.  If
          large jobs are to be run, partition 1 on both drives
          provides a 10Mbyte paging area.  Otherwise partition 2 on
          the other drive is used as a single large file system.

          The rk files discussed above access the disk via the
          system's normal buffering mechanism and may be read and
          written without regard to physical disk records.  There is
          also a `raw' interface which provides for direct transmis-
          sion between the disk and the user's read or write buffer.
          A single read or write call results in exactly one I/O oper-
          ation and therefore raw I/O is considerably more efficient
          when many words are transmitted.  The names of the raw RK
          files begin with rrk and end with a number which selects the
          same disk as the corresponding rk file.

          In raw I/O the buffer must begin on a word boundary, and
          counts should be a multiple of 512 bytes (a disk block).
          Likewise lseek(2) calls should specify a multiple of 512

          /dev/rk?, /dev/rrk?

          In raw I/O read and write(2) truncate file offsets to 512-
          byte block boundaries, and write scribbles on the tail of

     RK(4)                                                       RK(4)

          incomplete blocks.  Thus, in programs that are likely to
          access raw devices, read, write and lseek(2) should always
          deal in 512-byte multiples.