p0 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. 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. Collyer recently created a 64-bit version of
  44. Thompson's 32-bit file server, updating all file
  45. offsets, sizes and block numbers to 64 bits.
  46. In addition, triple- and quadruple-indirect
  47. blocks were implemented.
  48. File name components were extended from 27 to 55 bytes.
  49. Further work is planned, notably improved peripheral and protocol support.
  50. .AE
  51. .SH
  52. Introduction
  53. .PP
  54. The Plan 9 file server
  55. Emelie
  56. is the oldest piece of system software
  57. still in use on Plan 9.
  58. It evolved from a user-level program that served
  59. serial lines on a Sequent multi-processor.
  60. The current implementation is neither clean nor
  61. portable,
  62. but it has slowly come to terms with
  63. its particular set of cranky computers
  64. and devices.
  65. .PP
  66. The file server
  67. .I fs64
  68. runs a revision of Emelie's code
  69. with 64-bit file sizes, offsets and block numbers
  70. and indirect blocks from single to quadruple.
  71. Actually these are 63-bit values, since the type used is
  72. .I vlong
  73. (signed
  74. .I "long long"
  75. integer),
  76. but 63 bits should suffice for a little while.