Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changes between Version 21 and Version 22 of FSDesign

2009-11-17T17:30:49Z (10 years ago)
Jakub Jermář


  • FSDesign

    v21 v22  
    33Unlike in monolithic designs, the file system functionality is spread across
    4 several layers in HelenOS:
     4several components in HelenOS:
    66 * [#FSDesignLibc standard library support],
    88 * [#FSDesignVFS VFS server],
    10  * [#FSDesignFS set of endpoint file system servers], and
     10 * [#FSDesignFS endpoint file system servers], and
    1212 * [#FSDesignLibFS libfs library].
    159159In a more detailed view, the path translation starts by ''vfs_lookup_internal()'' storing a canonical path into the PLB. VFS then contacts the file system server which is mounted under the file system root and sends it the VFS_OUT_LOOKUP request along with the indices of the first and last characters of the path in the PLB. After the root file system resolves its part of the path it does not necessarily reply back to VFS. If there is still a portion of the path to be resolved, it forwards the VFS_OUT_LOOKUP request to the file system which is mounted under the mount point where the resolution stopped. At the same time, it modifies the argument of the forwarded call, which contains the PLB index of the path's first character, to index the first character of the yet unresolved portion of the path. The resolution continues in the same spirit until one of the file system servers reaches the end of the path. This file system will complete the path resolution by specifying the VFS triplet of the resulting node in an answer to the VFS_OUT_LOOKUP request. The answer will go directly to the originator of the request, which is the VFS server.
     161== Endpoint file system servers == #FSDesignFS
     163As mentioned above, each endpoint file system server needs to implement the VFS output protocol. Through the polymorphism this offers, HelenOS currently supports the following file system types (and we believe that more can be added):
     165 * TMPFS --- a custom memory based file system without an on-disk format and permanent storage
     167 * FAT16 --- a well known, non-Unix like file system with simple on-disk format
     169 * DEVFS --- a custom pseudo file system