1
0
mirror of https://github.com/livingcomputermuseum/pdp7-unix.git synced 2026-02-16 12:53:55 +00:00
Files
livingcomputermuseum.pdp7-unix/man/filesys.5
2016-03-13 09:58:18 +10:00

105 lines
4.4 KiB
Groff

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, directories and devices:
1 The core file written by "sys save" or a bad system call
2 The "dd" directory directory
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 "display" (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 become 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 corresponding 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