File Systems/ReiserFS
From ReactOS
Reiser FS is a popualar file system developed by Namesys. The term "Reiser" and "ReiserFS" can refer to both versions 3 and 4. This page deals with both.
Contents |
Version 3 (Known as "ReiserFS")
Hans Reiser classifies version 3 as depricated and recommends using version 4, which solves design issues in its predecessor.
ReiserFS Driver for Windows
- Reiser Driver For Windows (RFSD), a ReiserFS Installable File System Driver (IFSD) for Windows XP. Project started May 2005, stalled as of July 2005, presumably from lack of beta testers/perceived interest. Provides infrastructure for ReiserFS version 3, not Reiser4 (yet).
Version 4 (Known as "Reiser4")
Reiser4 is a new "from scratch" version of the ReiserFS file system,
It has the following advanced features:
- efficient journaling through wandering logs
- efficient support of small files, in terms of disk space and speed
- fast handling of very large directories with hundreds of millions of files
- flexible plugin infrastructure (through which special metadata types, encryption and compression will be supported)
- atomic file system modification
- dynamically optimized disk-layout through allocate-on-flush (also called delayed allocation in XFS)
- transaction support
Some of the more advanced Reiser4 features (such as user-defined transactions) are also not available because of a lack of a VFS API for them.
An online repacker (similar to the defragmentation utilities provided with other filesystems), or the possibility to resize existing filesystems (standard with other Linux filesystems, including ReiserFS version 3) are currently not available; the creators of Reiser4 say they will implement these if someone pays them to do so.
Reiser4 uses dancing trees, a version of wikipedia:B*-trees in which underpopulated nodes won't get merged until a flush to disk except under memory pressure or when a transaction completes. Such a system also allows Reiser4 to create files and directories without having to waste time and space through fixed blocks.
As of 2004, benchmarks performed by Namesys show that Reiser4 is 10 to 15 times faster than ext3 working on files smaller than 1Kb. It is typically twice the performance of ext3 for general purpose filesystem usage patterns, and ext3 is its most serious competitor.
Reiser4 source code
Reiser4 Driver for Windows
- short description (german)
Developers: Josias Hosang, Oliver Kadlcek and Christian Oberholzer (University of Applied Sciences Rapperswil, Switzerland)
English translation of the short description:
In the recent years ReiserFS matured as one of the most important and best file systems for Linux. Specifically it became the default file system of the SuSE distribution. With goal to allow access from Windows XP on dual boot PCs on Reiser4 partitions, a Reiser4 file system driver has been developed as part of a student research project. According to the description of the Reiser4 file system and the documentation of Microsoft's Installable File System Kit it was possible to port an open Reiser4 implementation for Linux to Windows XP and it's reading capabilities could be implemented completely and quite stable. Other driver interfaces have been realized so far they were needed for regular use under Windows. Beside the driver software and the usual project documentation a complete analysis document about the functionality of Reiser4 and an overview about file system development for Windows has been made.
Status
The developers are willing to supply the results of their student research project to the ReactOS project. Currently they have not published their code.
In the current state the code requires Microsoft's IFS Kit to compile and support of the free ntifs.h has not been implemented yet. Therefore only the non-MS parts can -- of course -- be published. The developers would help to implement the GPL headers and perhaps also help porting the already working parts to ReactOS.
The Reiser4 IFS driver currently supports read only access to the file system. It is estimated that adding write support may take 1000 hours (or more).
Another point is that the driver should be merged with the current Linux driver to stay up to date.
Please ask Pythagoras1 to get the dev's contact addresses:

