tutes-dump/dump/filesystem.html.docuwiki

127 lines
5.0 KiB
Plaintext
Raw Normal View History

2020-07-11 06:11:19 -04:00
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