shithub: riscv

ref: 20fe277f38a161b00d2425994c9db536945620bc
dir: /sys/doc/fs/p0/

View raw version
.HTML "The 64-bit Standalone Plan 9 File Server
.de Ex
.TA 0.5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i
.P1
.TA 0.5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i
..
.de Ee
.P2
..

.EQ
delim $$
.EN
.FP lucidasans

.TL
The 64-bit Standalone Plan 9 File Server
.AU
Ken Thompson*
.CW ken@plan9.bell-labs.com
.FS
\l'4i'
.br
* now
.\" .CW ken@entrisphere.com
.CW ken@google.com
.FE
.AU
Geoff Collyer
.CW geoff@plan9.bell-labs.com
.AI
.MH
.AB
This paper is a revision of Thompson's
.I "The Plan 9 File Server" ,
and describes the structure
and the operation of the new 64-bit Plan 9 file servers.
Some specifics apply to the 32-bit
Plan 9 file server
Emelie,
which code is also the basis for
the user-level file server
.CW kfs .
.PP
In 2004,
Collyer created a 64-bit version of
Thompson's 32-bit file server, updating all file
offsets, sizes and block numbers to 64 bits.
In addition, triple- and quadruple-indirect
blocks were implemented.
File name components were extended from 27 to 55 bytes.
This code is also the basis for the user-level file server
.I cwfs (4).
.AE
.SH
Introduction
.PP
The Plan 9 file server
Emelie
is the oldest piece of system software
still in use on Plan 9.
It evolved from a user-level program that served
serial lines on a Sequent multi-processor.
The current implementation is neither clean nor
portable,
but it has slowly come to terms with
its particular set of cranky computers
and devices.
.PP
The file server
.I fs64
runs a revision of Emelie's code
with 64-bit file sizes, offsets and block numbers
and indirect blocks from single to quadruple.
Actually these are 63-bit values, since the type used is
.I vlong
(signed
.I "long long"
integer),
but 63 bits should suffice for a little while.