docs/develop: minor improvements in the fs section
Change-Id: Ie94dbc1339facbee59080d85b6938f2c160eb05e Reviewed-on: https://review.haiku-os.org/c/haiku/+/7368 Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
a4ae49d573
commit
084e24d0bf
@@ -5,7 +5,7 @@ Each filesystem driver must define a few structures which act as the
|
|||||||
interface between the VFS and the filesystem implementation. These
|
interface between the VFS and the filesystem implementation. These
|
||||||
structures contain function pointers, some of which are optional,
|
structures contain function pointers, some of which are optional,
|
||||||
which should point to functions defined by the implementer that
|
which should point to functions defined by the implementer that
|
||||||
perform the appropriate filesystem peration as defined by the
|
perform the appropriate filesystem operation as defined by the
|
||||||
documentation.
|
documentation.
|
||||||
|
|
||||||
See docs/user/drivers/fs_interface.dox for more detailed documentation
|
See docs/user/drivers/fs_interface.dox for more detailed documentation
|
||||||
@@ -45,18 +45,25 @@ Moreover, the filesystem interacts with other components of the system
|
|||||||
For the early development steps, it is much easier to run the filesystem code
|
For the early development steps, it is much easier to run the filesystem code
|
||||||
in a more controlled environment. This can be achieved through the use of
|
in a more controlled environment. This can be achieved through the use of
|
||||||
a "filesystem shell": a simple application that runs the filesystem code, and
|
a "filesystem shell": a simple application that runs the filesystem code, and
|
||||||
allows performing specific operations through a command line interface.
|
allows performing specific operations through a command line interface. It can be
|
||||||
|
executed on any platform (Haiku or another supported one such as Linux).
|
||||||
|
|
||||||
Example of fs_shell implementations are available under src/tests/add-ons/kernel/file_systems/
|
Example of fs_shell implementations are available under src/tests/add-ons/kernel/file_systems/
|
||||||
for the bfs and btrfs filesystems.
|
for the bfs and btrfs filesystems.
|
||||||
|
|
||||||
For example, to build the fs_shell for btrfs, use
|
For example, to build the fs_shell for btrfs, use
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
jam -q "<build>btrfs_shell"
|
jam -q "<build>btrfs_shell"
|
||||||
|
|
||||||
To run it, use
|
To run it, use
|
||||||
|
|
||||||
jam run objects/haiku_host/x86_gcc2/release/tests/add-ons/kernel/file_systems/btrfs/btrfs_shell/btrfs_shell [arguments]
|
.. code-block:: bash
|
||||||
|
|
||||||
|
jam run ":<build>btrfs_shell" <.img file>
|
||||||
|
|
||||||
|
:ref:`XFS Page` has a concrete example which can be tweaked for other filesystems.
|
||||||
|
|
||||||
You need to pass at least a file or device containing a filesystem image as an
|
You need to pass at least a file or device containing a filesystem image as an
|
||||||
argument. You need some tool to create one. It is possible to work using an
|
argument. You need some tool to create one. It is possible to work using an
|
||||||
@@ -66,7 +73,7 @@ a file, or a RAM disk, depending on what you are doing.
|
|||||||
userlandfs
|
userlandfs
|
||||||
..........
|
..........
|
||||||
|
|
||||||
As a second step, it's possible to use the filesystem as part of a runing
|
As a second step, it's possible to use the filesystem as part of a running
|
||||||
system, while still running it in userland. This allows use of Debugger,
|
system, while still running it in userland. This allows use of Debugger,
|
||||||
memory protection, and in general any kind of userland debugging or tracing
|
memory protection, and in general any kind of userland debugging or tracing
|
||||||
tool. When the filesystem crashes, it does not bring down the whole system.
|
tool. When the filesystem crashes, it does not bring down the whole system.
|
||||||
@@ -75,6 +82,8 @@ Userlandfs can run the filesystem code using the same interface as the kernel,
|
|||||||
therefore, once everything is working with userlandfs, running the filesystem
|
therefore, once everything is working with userlandfs, running the filesystem
|
||||||
as kernel code is usually quite easy (and provides a performance boost)
|
as kernel code is usually quite easy (and provides a performance boost)
|
||||||
|
|
||||||
|
See more here: :ref:`Userland FS Page`
|
||||||
|
|
||||||
Torture and performance tests
|
Torture and performance tests
|
||||||
.............................
|
.............................
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
.. _Userland FS Page:
|
||||||
|
|
||||||
UserlandFS: filesystems in userspace
|
UserlandFS: filesystems in userspace
|
||||||
####################################
|
####################################
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
.. _XFS Page:
|
||||||
|
|
||||||
The XFS File System
|
The XFS File System
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user