* [9front] Design principles for Plan 9 file systems?
@ 2024-06-26 7:50 Joël Franusic
2024-06-26 21:42 ` [9front] " Anthony Martin
2024-06-26 22:14 ` [9front] " Ori Bernstein
0 siblings, 2 replies; 4+ messages in thread
From: Joël Franusic @ 2024-06-26 7:50 UTC (permalink / raw)
To: 9front
[-- Attachment #1: Type: text/plain, Size: 1356 bytes --]
I'm studying the designs used by user level file servers in Plan 9 (acme, factotum, plumb, etc) and would love to talk to people who have opinions about what good "API" design looks like for a Plan 9 file system. For example: "Which file systems do you like?", "Which are worth studying?", "What are some mistakes to avoid?", etc
Ultimately, I'd like to come up with a set of guidelines or principles to follow when writing a file server such that a Plan 9 veteran could mount the provided file system and quickly understand how it works.
For references, here are the "APIs" that I've collected so far, based on what I've found in various research papers:
ACME
/mnt/acme/index
/mnt/acme/new
/mnt/acme/$n/addr
/mnt/acme/$n/body
/mnt/acme/$n/ctl
/mnt/acme/$n/data
/mnt/acme/$n/event
/mnt/acme/$n/tag
Factotum
/mnt/factotum/confirm
/mnt/factotum/ctl
/mnt/factotum/log
/mnt/factotum/needkey
/mnt/factotum/proto
/mnt/factotum/rpc
Plumb
/mnt/plumb/rules
/mnt/plumb/send
/mnt/plumb/edit
/mnt/plumb/web
/mnt/plumb/image
/mnt/plumb/newmail
/mnt/plumb/…
All of my notes are being kept in a Google Doc for now, which is available here: https://docs.google.com/document/d/1g-GIjJRoa7yfOuSjxYG-owBwVh1QaMzOa5i19vVtxUM/edit?usp=sharing
--
Joël Franusic
joel@franusic.com
[-- Attachment #2: Type: text/html, Size: 15634 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* [9front] Re: Design principles for Plan 9 file systems?
2024-06-26 7:50 [9front] Design principles for Plan 9 file systems? Joël Franusic
@ 2024-06-26 21:42 ` Anthony Martin
2024-06-26 22:14 ` [9front] " Ori Bernstein
1 sibling, 0 replies; 4+ messages in thread
From: Anthony Martin @ 2024-06-26 21:42 UTC (permalink / raw)
To: 9front
Joël Franusic <joel@franusic.com> once said:
> Ultimately, I'd like to come up with a set of guidelines or principles
> to follow when writing a file server such that a Plan 9 veteran could
> mount the provided file system and quickly understand how it works.
The 9P protocol gives you a uniform API for interacting with a
resource: open, read, write, close. How you represent a specific
resource depends on what the resource is or does. There are
some clear patterns that most file systems use to model their
resources:
- single control file
- multiple control files
- control file and data file
- filter
- multiplexer
- protocol converter
It's not a coincidence that all of them have roots in signal
processing and telecom work. Bell Labs was part of the
phone company after all.
Study Sandy Fraser's work if you seek enlightenment.
As for what goes into the control files, it's usually simple
messages akin to writing registers on a device or setting
up a call on a switch. Deviation from this is unusual.
Cheers,
Anthony
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [9front] Design principles for Plan 9 file systems?
2024-06-26 7:50 [9front] Design principles for Plan 9 file systems? Joël Franusic
2024-06-26 21:42 ` [9front] " Anthony Martin
@ 2024-06-26 22:14 ` Ori Bernstein
2024-06-26 22:19 ` Joël Franusic
1 sibling, 1 reply; 4+ messages in thread
From: Ori Bernstein @ 2024-06-26 22:14 UTC (permalink / raw)
To: 9front; +Cc: Joël Franusic
This is a good starting point:
https://doc.cat-v.org/plan_9/misc/ubiquitous_fileserver/ubiquitous_fileserver.pdf
On Wed, 26 Jun 2024 00:50:46 -0700
Joël Franusic <joel@franusic.com> wrote:
> I'm studying the designs used by user level file servers in Plan 9 (acme, factotum, plumb, etc) and would love to talk to people who have opinions about what good "API" design looks like for a Plan 9 file system. For example: "Which file systems do you like?", "Which are worth studying?", "What are some mistakes to avoid?", etc
>
> Ultimately, I'd like to come up with a set of guidelines or principles to follow when writing a file server such that a Plan 9 veteran could mount the provided file system and quickly understand how it works.
>
> For references, here are the "APIs" that I've collected so far, based on what I've found in various research papers:
>
> ACME
>
> /mnt/acme/index
>
> /mnt/acme/new
>
> /mnt/acme/$n/addr
>
> /mnt/acme/$n/body
>
> /mnt/acme/$n/ctl
>
> /mnt/acme/$n/data
>
> /mnt/acme/$n/event
>
> /mnt/acme/$n/tag
>
>
> Factotum
>
> /mnt/factotum/confirm
>
> /mnt/factotum/ctl
>
> /mnt/factotum/log
>
> /mnt/factotum/needkey
>
> /mnt/factotum/proto
>
> /mnt/factotum/rpc
>
>
> Plumb
>
> /mnt/plumb/rules
>
> /mnt/plumb/send
>
> /mnt/plumb/edit
>
> /mnt/plumb/web
>
> /mnt/plumb/image
>
> /mnt/plumb/newmail
>
> /mnt/plumb/…
>
>
> All of my notes are being kept in a Google Doc for now, which is available here: https://docs.google.com/document/d/1g-GIjJRoa7yfOuSjxYG-owBwVh1QaMzOa5i19vVtxUM/edit?usp=sharing
>
> --
> Joël Franusic
> joel@franusic.com
--
Ori Bernstein <ori@eigenstate.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [9front] Design principles for Plan 9 file systems?
2024-06-26 22:14 ` [9front] " Ori Bernstein
@ 2024-06-26 22:19 ` Joël Franusic
0 siblings, 0 replies; 4+ messages in thread
From: Joël Franusic @ 2024-06-26 22:19 UTC (permalink / raw)
To: Ori Bernstein, 9front
Oh this is perfect. I'm not sure how I missed this paper. I'm going to read it now. Thanks so much!
--
Joël Franusic
joel@franusic.com
On Wed, Jun 26, 2024, at 15:14, Ori Bernstein wrote:
> This is a good starting point:
>
> https://doc.cat-v.org/plan_9/misc/ubiquitous_fileserver/ubiquitous_fileserver.pdf
>
> On Wed, 26 Jun 2024 00:50:46 -0700
> Joël Franusic <joel@franusic.com> wrote:
>
>> I'm studying the designs used by user level file servers in Plan 9 (acme, factotum, plumb, etc) and would love to talk to people who have opinions about what good "API" design looks like for a Plan 9 file system. For example: "Which file systems do you like?", "Which are worth studying?", "What are some mistakes to avoid?", etc
>>
>> Ultimately, I'd like to come up with a set of guidelines or principles to follow when writing a file server such that a Plan 9 veteran could mount the provided file system and quickly understand how it works.
>>
>> For references, here are the "APIs" that I've collected so far, based on what I've found in various research papers:
>>
>> ACME
>>
>> /mnt/acme/index
>>
>> /mnt/acme/new
>>
>> /mnt/acme/$n/addr
>>
>> /mnt/acme/$n/body
>>
>> /mnt/acme/$n/ctl
>>
>> /mnt/acme/$n/data
>>
>> /mnt/acme/$n/event
>>
>> /mnt/acme/$n/tag
>>
>>
>> Factotum
>>
>> /mnt/factotum/confirm
>>
>> /mnt/factotum/ctl
>>
>> /mnt/factotum/log
>>
>> /mnt/factotum/needkey
>>
>> /mnt/factotum/proto
>>
>> /mnt/factotum/rpc
>>
>>
>> Plumb
>>
>> /mnt/plumb/rules
>>
>> /mnt/plumb/send
>>
>> /mnt/plumb/edit
>>
>> /mnt/plumb/web
>>
>> /mnt/plumb/image
>>
>> /mnt/plumb/newmail
>>
>> /mnt/plumb/…
>>
>>
>> All of my notes are being kept in a Google Doc for now, which is available here: https://docs.google.com/document/d/1g-GIjJRoa7yfOuSjxYG-owBwVh1QaMzOa5i19vVtxUM/edit?usp=sharing
>>
>> --
>> Joël Franusic
>> joel@franusic.com
>
>
> --
> Ori Bernstein <ori@eigenstate.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-06-26 22:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-26 7:50 [9front] Design principles for Plan 9 file systems? Joël Franusic
2024-06-26 21:42 ` [9front] " Anthony Martin
2024-06-26 22:14 ` [9front] " Ori Bernstein
2024-06-26 22:19 ` Joël Franusic
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).