81 lines
1.7 KiB
Text
81 lines
1.7 KiB
Text
|
.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.
|