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

Changes between Initial Version and Version 1 of FSDesign

2009-06-01T11:02:47Z (10 years ago)
Jakub Jermář


  • FSDesign

    v1 v1  
     1= Implementation and design of the file system layer =
     3Unlike in monolitic designs, the file system functionality is spread across
     4several layers in HelenOS:
     6 * [#FSDesignLibc standard library support],
     7 * [#FSDesignVFS VFS server],
     8 * [#FSDesignFS set of individual file system servers], and
     9 * [#FSDesignLibFS libfs library].
     11== Standard library support == #FSDesignLibc
     13The standard library translates more or less POSIX file system requests made by
     14the user application to the VFS server frontend protocol and passes them to
     15''VFS''. The library emulates some calls such as ''opendir()'', ''readdir()'',
     16''rewinddir()'' and ''closedir()'' using other calls. In this case these will
     17be ''open()'', ''read()'', ''lseek()'' and ''close()''.
     19The VFS server accepts only absolute file paths and so the standard library
     20takes care of providing the ''getcwd()'' and ''chdir()'' interfaces. It also
     21translates all relative paths to absolute. Passing absolute paths may not be
     22always optimal, but it simplifies the design of the VFS server and the libfs
     23algorithms. In addition, thanks to this feature, the ''..'' file path
     24components can be processed lexically, which leads to further simplifications.
     26The standard library forwards all other requests, which it is unable to handle
     27itslef, to the VFS server and does not contribute to the file system
     28functionality by any other means. Each file system request forwarded to VFS
     29is composed of one or more IPC phone calls.