WAITS on-disk file structure

From Computer History Wiki
Revision as of 19:07, 14 June 2023 by Larsbrinkhoff (talk | contribs) (UDP: Disk not data.)
Jump to: navigation, search

This is a description of the WAITS' on-disk file structure; in particular the version used with RP06 and RP07 packs on a KL10 in 1988. There are differences against the KA10 1974 data structures. Much of this information comes from the last version of RSKINI, which is used to format a disk pack.

Disk area units and geometry

A disk sector of 128 words is often called record, especially if it's part of the disk structure. Addresses are usually linear record numbers. Some disk areas fall outside the usable range of sectors, and the record address does not take those into account.

Four records together make up a page, always 512 words. Some number of records, usually 9 or 10, grouped together is called a block. The this is the smallest unit of allocation. The bits in the SAT refer to blocks.

A disk is viewed as some number of cylinders, each comprising the sectors that can be accessed without a disk seek. Each cylinder has several tracks, and each track has several records. WAITS may elect to format the disk with some sectors left over per track. E.g. only 18 of the 20 sectors on a bootable RP06 track may be used, and the last two are invisible to the file system code.

The records of a cylinder are divided into pages. The logical end of the cylinder may have some left over records after the last page. The cylinder pages are divided into blocks; again there may be an unused remainder since pages might not divide blocks evenly.

A file structure may stretch across several disk packs, called units. Record and block addresses span across units.

HOM blocks

There are two HOM blocks. They are both at the logical beginning of the disk, i.e. on the first track of the first cylinder of the first unit. The first block is sector 1 (starting from 0), and the second is 10 (decimal). There are no HOM blocks on the other units.

The HOM block is one record, i.e. 128 words. The ID strings are 8-bit ASCII, stored byte swapped in half words.

Offset Description
0 SIXBIT "HOM "
1 0
2 0
3 SIXBIT structure name.
4 Number of packs,,Unit number for this pack
5 Address of other HOM block,,Address of this block
6 Pages on this unit
7 First swapping cylinder
10 Address of MFD
11 Address of SAT
12 Size of SAT, in records
13 Number of records in this unit
14 Number of cylinders on all structure units
15 0
61 Address of front-end file system
62 Size of front-end file system
101 Address of bootstrap
102 Size of bootstrap
164 Processor serial number
165-167 Unit ID
170-172 Owner ID
173-175 File system ID
176 HOM magic number 0707070
177 This HOM block address

BAT block

The BAT block is after the first HOM block, and is optional.

SAT

The SAT is the Storage Allocation Table. There is only one SAT for the entire structure. It can be on any unit.

The SAT is a bit array, indexed by block address. 1 means free, and 0 means allocated. Bits inside words are MSB, i.e. bit 0 by PDP-10 convention, first

All disk areas in use, including HOM and BAT blocks, SAT, and swapping area, must be allocated in the SAT.

Swapping area

Each unit has a swapping area, starting at the cylinder specified in the HOM block. The size, in number of cylinders, is a system constant

RIB

All blocks start with a RIB, retrieval information block. It's a record which holds information about the file the block belongs to.

MFD

The MFD is the Master File Directory. There is only one MFD for the entire structure. It can be on any unit.

The MFD is the [1,1] directory. Each file in the MFD is a UFD with a file name matching that UFD's PPN. The MFD itself is the file ' 1 1'.UFD[1,1].

UFD

A UFD is a User File Directory, corresponding to a user PPN, project-programmer number. The UFD is a file with extension UFD in the [1,1] directory. It consists of a sequence of UFD entries which are either 4 or 16 words long, depending on whether the monitor was assembled with FDLUFD enabled or not. WAITS changed to the long format late 1977.

Offset Description
0 SIXBIT file name
1 SIXBIT file extension,,Creation timestamp
2 Protection
3 Record address of the first block in the file
4 File length, in words
5 Last time written
6 Reference timestamp
7 Dump status
12 SAT ID
13-16 DQINFO
17 Record offset

UDP

A UDP is a User Disk Pack. This is a removable disk pack that holds data for a single user. WAITS will have at least one disk drive available for mounting UDPs.