Haiku developer Ingo Weinhold has added a new component UserlandFS to the Haiku repository. This component is designed to provide a stable and convenient toolkit for the development of file system modules. Prior to this, neither Haiku nor BeOS had such a toolkit. Ingo also added the following modules using UserlandFS: Module for ReiserFS 3.6 file system in read mode; Module for RAM FS file system (not completed yet; it is under development); NetFS file system module. It is worth telling about the NetFS module in more detail. This module provides a network file system developed specifically for Haiku and intended for receiving remote access via LAN networks to the disks of computers running Haiku OS. Of the distinctive features of NetFS, it is worth noting support for the attributes of the BFS file system and the “live queries” mechanism. At the moment, the NetFS module has fully working functionality, only the graphical NetFS configuration utility is missing. Therefore, a configuration file is used to configure the folders and permissions provided over the network. The client provided by the module automatically detects servers and folders running on the network provided by them.
NetFS running on BeOS R5
So far UserlandFS works only under BeOS R5, but will soon be modified to work with the Haiku file system interface (it is slightly different from the implementation in BeOS R5). Hopefully, the availability of such a toolkit will accelerate the development of file system modules for Haiku. Although the debugging tools for developing file systems have already been in Haiku, they have some limitations that can be avoided using the UserlandFS toolkit. Thus, the “File System Terminal” (FS shell) emulates part of the kernel responsible for working with the file system (VFS) and provides the CLI interface for executing test commands. In addition, the toolkit allows you to use any application or test program (for example Tracker) to access the file system. Moreover, the program will work with the file system as if it were accessing the file system through the kernel. ')
Ingo also noted that:
The UserlandFS interface is identical to the interface used by the kernel for working with file systems. This interface suitability is convenient for developers who want to write a file system module for the kernel. They can develop, test and debug it in user space, and then simply rebuild the module for use by its kernel. Apart from the fact that the file system with bugs running in user space does not cause KDL, it also allows using richer debugging tools available in user space (viewpoint stop points, step-by-step execution, etc.).