Repository navigation
Replies: 1 comment
|
The short version of this thread is now in the design as Lessons from Plan 9: four things to do as Plan 9 did and seven to avoid, each tied to a felixd decision. Disagreements belong here, and the design will follow where this thread lands. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Plan 9 from Bell Labs is the closest ancestor of the operating system felixd is heading toward. This thread asks how much of its design to borrow, and where a log changes the answer. The long-term picture is in docs/design.md.
What Plan 9 got right
/net), windows, and process control (/proc) are all file servers. One small protocol with about a dozen messages covers all of it.bindandmount. There is no global root that everyone shares, so isolation is mostly a matter of what you mount.cpuruns your shell on another machine with your namespace imported, so a program can't tell where it runs./n/dump/2002/0315/...showed the file system as it was on that day.How it maps onto Felix and felixd
cpu/n/dumpdaily snapshotsfx at "2026-10-24 14:02" /pathWhere the log changes things
writeat an offset in the middle of a file has no direct counterpart. It has to be a record that a workload folds in.Where Plan 9 fell short
Plan 9 never displaced Unix, and some of the reasons apply directly to us.
ctlstrings with no types or versioning, and graphics and signals (notes) strained the model. For us: record formats need schemas and negotiated versions, as Felix's wire protocol has. A workload's interface shouldn't become a pile of strings./netis this process using?" could be a real debugging question. For us: a workload's view of the namespace should be on the record and visible inpsand replay./proc-style interfaces and 9P all live on: 9P in Linux's v9fs, QEMU's shared folders and WSL. They spread because each could be adopted on its own. For us: felixd's parts, such as fenced output, replay and the namespace, should be useful on their own, inside systems people already run.Questions
/net,/dev/timeand so on as files, and every 9P request and response is recorded on the log. That gives a narrow, uniform effect interface that replays exactly. Is 9P the right shape for it, or is it too chatty?v9fs, plan9port) andcat,tail -fandlswork on streams and workloads? It would cost little and make the system explorable with ordinary tools./svc/orders/inas my input" instead of naming streams directly, so that the same module runs against test or production data by remounting?Anyone who has run Plan 9 or 9front: what would you keep, and what did you find didn't age well?
All reactions