Modified:
wiki/HighLevelVFS.wiki
Log:
Edited wiki page through web user interface.
Modified: wiki/HighLevelVFS.wiki
==============================================================================
--- wiki/HighLevelVFS.wiki (original)
+++ wiki/HighLevelVFS.wiki Fri Aug 24 20:07:46 2007
@@ -108,3 +108,6 @@
(this is preliminary)
http://brainix.googlecode.com/files/high_level_vfs.png
+-So let me get the data structures right...correct me if I am wrong. We have a "resource system" which "mounts" and "unmounts" a sort of "resource manager". A "resource manager" keeps track of "resources". A "resource" is a generalization of the file. So a low level virtual file system is a "resource manager" with the vnodes (or whatever) being the "resources". The "/sys/dev/" directory is-a "resource manager" (well, the directory instantiation of it?) with the devices as "resources". The "/sys/proc/" directory is-a "resource manager" (again, the directory instantiation of it?) with the processes as "resources". So on and so forth, right?
+
+-I may not have made it clear when I presented the Solaris/BSD paradigm for the low level virtual file system, but it has two main data structures: `struct vfs` and `struct vnode`. The `struct vfs` represents the file system that is mounted. It forms a linked list. The head of the linked list is always the root file system. But the Solaris/BSD guys implemented the `/proc` pseudo-file system as a `struct vfs` mounted by the virtual file system! The same goes for the `/dev` pseudo-file system too! (See sections 4.7 and 4.8 of http://www.arl.wustl.edu/~fredk/Courses/cs523/fall01/Papers/kleiman86vnodes.pdf ) It seems to me that this is being reimplemented with the `struct vnode_ops` being generalized to include more function pointers. Am I mistaken? (Sorry for breaking my response in two, but I thought it was cleaner this way) (pqnelson)
\ No newline at end of file