p0 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. .HTML "The 64-bit Standalone Plan 9 File Server
  2. .de Ex
  3. .TA 0.5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i
  4. .P1
  5. .TA 0.5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i
  6. ..
  7. .de Ee
  8. .P2
  9. ..
  10. .EQ
  11. delim $$
  12. .EN
  13. .FP lucidasans
  14. .TL
  15. The 64-bit Standalone Plan 9 File Server
  16. .AU
  17. Ken Thompson*
  18. .CW ken@plan9.bell-labs.com
  19. .FS
  20. \l'4i'
  21. .br
  22. * now
  23. .\" .CW ken@entrisphere.com
  24. .CW ken@google.com
  25. .FE
  26. .AU
  27. Geoff Collyer
  28. .CW geoff@plan9.bell-labs.com
  29. .AI
  30. .MH
  31. .AB
  32. This paper is a revision of Thompson's
  33. .I "The Plan 9 File Server" ,
  34. and describes the structure
  35. and the operation of the new 64-bit Plan 9 file servers.
  36. Some specifics apply to the 32-bit
  37. Plan 9 file server
  38. Emelie,
  39. which code is also the basis for
  40. the user-level file server
  41. .CW kfs .
  42. .PP
  43. In 2004,
  44. Collyer created a 64-bit version of
  45. Thompson's 32-bit file server, updating all file
  46. offsets, sizes and block numbers to 64 bits.
  47. In addition, triple- and quadruple-indirect
  48. blocks were implemented.
  49. File name components were extended from 27 to 55 bytes.
  50. This code is also the basis for the user-level file server
  51. .I cwfs (4).
  52. .AE
  53. .SH
  54. Introduction
  55. .PP
  56. The Plan 9 file server
  57. Emelie
  58. is the oldest piece of system software
  59. still in use on Plan 9.
  60. It evolved from a user-level program that served
  61. serial lines on a Sequent multi-processor.
  62. The current implementation is neither clean nor
  63. portable,
  64. but it has slowly come to terms with
  65. its particular set of cranky computers
  66. and devices.
  67. .PP
  68. The file server
  69. .I fs64
  70. runs a revision of Emelie's code
  71. with 64-bit file sizes, offsets and block numbers
  72. and indirect blocks from single to quadruple.
  73. Actually these are 63-bit values, since the type used is
  74. .I vlong
  75. (signed
  76. .I "long long"
  77. integer),
  78. but 63 bits should suffice for a little while.