From a0721b4caa79b81e021678089fde0b8467daa1cd Mon Sep 17 00:00:00 2001 From: Franklin Wei Date: Mon, 2 Mar 2015 21:37:44 -0500 Subject: Virtual filesystem WIP! --- docs/FILESYSTEM | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docs/FILESYSTEM (limited to 'docs') diff --git a/docs/FILESYSTEM b/docs/FILESYSTEM new file mode 100644 index 0000000..a1bdc1e --- /dev/null +++ b/docs/FILESYSTEM @@ -0,0 +1,34 @@ +=== Virtual Filesystem Design === + +The virtual (in-RAM) filesystem is made of levels of nodes. + + NULL + | + [/] --- NULL + | + [bin] --------------------------- [etc] ---------------------- [home] --- [var] --- NULL + | | + [cat] --- [cd] --- [ls] --- NULL [group] --- [passwd] --- NULL + +=== Sample Implementation === + +struct vfs_node { + unsigned int flags; + unsigned int name_len; + char *name; + uint64_t file_len; + unsigned char *contents; + struct vfs_node *parent; + struct vfs_node *next; + struct vfs_node *child; +}; + +=== The 'flags' field === + += Bits 0-1 = + +The next three values are mutually exclusive. + +0: directory +1: regular file +2: special file -- cgit v1.1