  11/3/70
  FILE SYSTEM (V)

  NAME             format of file system

  SYNOPSIS

  DESCRIPTION      The RB09  fixed  head  disk  has  8,000  64-word
  blocks  on                    each of its two surfaces. Unix uses
  the second surface                   (physical  blocks  8,000  to
  15,999) and numbers them                  from logical block 0 to
  logical block 7,999. The  following                    discussion
  refers to logical blocks.

                   The Unix filesystem is divided into 8,000 blocks
  of 64 words                  per block. Block 0 is the  "sysdata"
  block.  The first word                  points to the first block
  of the free-storage map. Each block                  in the free-
  storage  map is structured as follows: the first
  word is the block number of the next block  in  the  free-storage
                    map,  or  zero  if this is the end of the free-
  storage map. The                  next nine words hold free block
  numbers, or zero (no block number).

                   Block 1 on the filesystem is unused. (?)

                   I-numbers  begin  at  1,  and the storage for i-
  nodes begins at
                   block 2. Blocks 2 to 711  contain  the  i-nodes,
  with five                  consecutive i-nodes per block. Certain
  i-nodes are reserved for                  special files, directo-
  ries and devices:

                       1   The core file written by "sys save" or a
  bad system call                     2   The "dd" directory direc-
  tory                           3      The    "system"   directory
                      6   The "ttyin" special file
  7   The "keyboard" (graphic-2) special file                     8
  The "pptin" (paper tape  reader)  special  file
  10    The "ttyout" special file                    11   The "dis-
  play"  (graphic-2)  special  file                      12     The
  "pptout" (paper tape punch) special file

                   There  is  only  one file system which is always
  mounted;
                   it resides on the RB disk. This device  is  also
  used  for                    swapping.  The swap areas are at the
  high blocks on this  device:                    blocks  6,400  to
  7,999. These blocks do not appear in the free list.

                   Each i-node represents one file. The format of
                   an  i-node  is as follows, where the left column
  represents
                   the offset in words from the beginning of the i-
  node:

                      0             flags   (see   below)
  1           first  indirect  block  or  contents  block
  ...                        7           seventh  indirect block or
  contents block
                      8           user ID of owner
                      9           link count
                     10             size    in    words
  11           unique value assigned at creation

                   The flags are as follows:

                      400000   i-node is allocated
                      200000         large       file
  ??????   allocated bit (always on)
                      000040   special file
                      000020   directory
                      000010   read, owner
                      000004   write, owner
                      000002   read, non-owner
                      000001   write, non-owner

                   The allocated bit (flag ??????) is believed even
  if  the i-node                  map says the i-node is free; thus
  corruption of the map may                  cause i-nodes  to  be-
  come  unallocatable,  but  will not cause active
  nodes to be reused.

                   Word number n of a file is accessed as  follows:
  n is
                   divided  by  64 to find its logical block number
  (say b) in
                   the file. If the file is small (flag  200000  is
  0), then b                  must be less than 7, and the physical
  block number corresponding                  to b is the bth entry
  in the address portion of the i-node.

                   If  the  file  is  large,  b is divided by 64 to
  yield a number
                   which must be less than 8 (or the  file  is  too
  large for
                   UNIX  to  handle). The corresponding slot in the
  i-node
                   address portion gives the physical block  number
  of an
                   indirect  block. The residue mod 64 gives a word
  offset
                   in the indirect block, and the word found  there
  is the                  physical address of the block correspond-
  ing to b.

                   If block b in a file exists, it is not necessary
  that all
                   blocks  less  than  b exist. A zero block number
  either in the
                   address words of the i-node or  in  an  indirect
  block
                   indicates that the corresponding block has never
  been
                   allocated. Such a missing block reads as  if  it
  contained
                   all zero words.

  FILES

  SEE ALSO          format of directories

  DIAGNOSTICS

  BUGS

  OWNER