1
0
mirror of https://github.com/DoctorWkt/pdp7-unix.git synced 2026-02-13 11:34:25 +00:00
Files
DoctorWkt.pdp7-unix/man/filesys.5

120 lines
3.6 KiB
Groff

.oh '11/3/70''FILE SYSTEM(V)'
.ta 18 21 24
NAME format of file system
.sp
SYNOPSIS --
.sp
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.
.sp
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).
.sp
Block 1 on the filesystem is unused. (?)
.sp
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:
.sp
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
.sp
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.
.sp
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:
.sp
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
.sp
The flags are as follows:
.sp
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
.sp
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.
.sp
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.
.sp
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.
.sp
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.
.sp
FILES --
.sp
SEE ALSO format of directories
.sp
DIAGNOSTICS --
.sp
BUGS --
.sp
OWNER ken