[Ros-talk] File System Commits
Simon Strandgaard
neoneye at adslhome.dk
Wed Dec 10 01:23:32 EST 2003
On Tue, 2003-12-09 at 09:22, T. Onoma wrote:
> On Monday 08 December 2003 07:22 pm, Simon Strandgaard wrote:
> > You can see my changes here:
> > http://rubyforge.org/cgi-bin/viewcvs/cgi/viewcvs.cgi/projects/book_of_ideas
> >/file_system/overview.xml.diff?r1=1.6&r2=1.7&cvsroot=ros
>
> Good deal. I see only one thing I liked to change: when first mention AFS, how
> abou tif we put a footnote (like [1]) on that and have it link to the
> Existing Technologies section, which service as a reference section.
I disagree. It very rarely that I read footnotes. I don't know of any
alternative to AFS. So at the moment I want Ros to be shipped with AFS.
In my opinion its so important that I doesn't belong in a footnote.
> > <quote>As in Plan 9 OS, everything is a file.</quote>
> > On the Amiga the IPC (InterProcessCommunication) system were object
> > oriented. On unix they uses files/sockets. I think this phrase are
> > kind_of? outdated.
>
> On R:O:S everything is a Message sent to a Reciever. Yes?
Yes.. more in the OO spirit.
> > I don't understand the purpose with the 'Persistent Object File System'
> > section, that you have added. Its not a technology that I can recognize.
> > Can you tell me more about it?
>
> Ah, this is something that has never really been fully done. But I think with
> Ruby as a core enabler we can achieve it for the first time with real
> success. Perhaps you've heard of using in-memory object pools in place of
> databases? And certainly you've heard of using databases as backends to
> filesystems. Connect these dots and presto! Essentially, take a an object
> pool system and add a marshal-to-disk cache mechinism. So Imagine Ruby's
> ObjectSpace having this cache.
[snip]
OK I see what you want; An Ruby interface to the filesystem, and rely
on method_missing.
img = FileSystem.load.pictures.pamela
or perhaps, as an imageviewer:
FileSystem.list.pictures.each do|img|
img.show
getch
end
marshal to file, could look like:
match = /[^\S]x\W/.match("x y z")
FileSystem.create.my_application.last_match = match
some years later, we can do a file to marshal, like:
match = FileSystem.load.my_application.last_match
p match.to_a
#=> [" y "]
> An enhanced ObjectSpace could keep track of use statisics and know which
> objects to keep in-memory and which to cache back to disk. (A journalling
> mechinism would also be useful here)
A splay tree or some other tree like data structure could be helpful,
when these objects has to be cashed.
> Its pretty advanced, but I think only a few "hop-skips" away from doable.
Watch out!
* spaces in filenames
* i18n
* case sensitive/insensitive
These issues has to be solved in a nice way first. I have no ideas how
to solve them.
--
Simon Strandgaard
More information about the Ros-talk
mailing list