p0 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. .FE
  25. .AU
  26. Geoff Collyer
  27. .CW geoff@collyer.net
  28. .AB
  29. This paper is a revision of Thompson's
  30. .I "The Plan 9 File Server" ,
  31. and describes the structure
  32. and the operation of the new 64-bit Plan 9 file servers.
  33. Some specifics apply to the 32-bit
  34. Plan 9 file server
  35. Emelie,
  36. which code is also the basis for
  37. the user level file server
  38. .CW kfs .
  39. .PP
  40. Collyer recently created a 64-bit version of
  41. Thompson's 32-bit file server, updating all file
  42. offsets, sizes and block numbers to 64 bits.
  43. In addition, triple- and quadruple-indirect
  44. blocks were implemented.
  45. File name components were extended from 27 to 55 bytes.
  46. Further work is planned, notably improved peripheral and protocol support.
  47. .AE
  48. .SH
  49. Introduction
  50. .PP
  51. The Plan 9 file server
  52. Emelie
  53. is the oldest piece of system software
  54. still in use on Plan 9.
  55. It evolved from a user-level program that served
  56. serial lines on a Sequent multi-processor.
  57. The current implementation is neither clean nor
  58. portable,
  59. but it has slowly come to terms with
  60. its particular set of cranky computers
  61. and devices.
  62. .PP
  63. The file server
  64. .I fs64
  65. runs a revision of Emelie's code
  66. with 64-bit file sizes, offsets and block numbers
  67. and indirect blocks from single to quadruple.
  68. Actually these are 63-bit values, since the type used is
  69. .I vlong
  70. (signed
  71. .I "long long"
  72. integer),
  73. but 63 bits should suffice for a little while.