[Oberon] filesystem with directories ?
brantley at coraid.com
Mon May 1 23:56:30 CEST 2006
> I looked at Plan 9 briefly but never down to the low level details.
> I was at Datapoint in the 70s and knew the guys that designed and implemented their FS.
I think you're thinking of something other than Plan 9 from Bell Labs.
Plan 9 is the continued evolution of the good ideas in Unix and the
explusion of many of the bad ones. It was a `start-over' by the
original Unix guys, a kind of clean sheet redesign. Path names form a
name space that can be anything. Even device drivers
For example, the serial interface has a directory with two names in
it, eia and eiactl. Opening eia you can read and write the serial
port. Using eiactl, you can set the parameters of the port and read
the current status. For example `echo b9600 >/dev/eiactl' will set
the baud rate to 9600.
The relevant part is the protocol that glues it all together, 9P.
Fourteen messages describes the complete file server protocol. There
is nothing in it that would be a problem for an Oberon system to
connect to a Plan 9 file system.
Name spaces are made of unioning various device drivers and mounted
processes or connections to file servers. Each process group can have
its own mutable name space. User processes can mount `pipe' and
get 9P messages. Users can write file servers pretty easily with
a library provided. Instead of a pipe, you can mount a connection
to a file server. It all works the same.
The Plan 9 kernel doesn't know anything about a file system structure
on a disk. It just sends messages to either a user process that
implements a file system, or a standalone server. I run the
standalone server that was originally written by Ken Thompson and
since worked on by Geoff Collyer, but most use a Fossil server along
with a block archive server called Venti.
Oberon users will also reconize the insiration for the acme editor. I
was present when Rob Pike gave a talk about his new editor, what
became acme. He said that he had written several window systems and
mouse based editors and felt that he had gotten it as simple as he
could. Then he saw Oberon. He was blown away. The result was acme.
Related is the Inferno system.
Using 9P can easily add directories to native oberon. Just run a
standalone Plan 9 box exportin the Fossil file service and write some
Oberon code to do 9P.
More information about the Oberon