Robert Köpferl wrote:
I share the opinion that NFFS is a thing we should
more less avoid.
People are happy if one fs provides reliable access and if it is one
which is also accessible by linux, so what's better? ReactOS users will
potentially avoid MS-NT
Although I think it is of less importance, I can not disagree on this
point more. Most users who will be switching to ReactOS will switching
from windows, not Linux, and so they will be concerned about NTFS
compatibility, not ext. NTFS compatibility will be a desirable feature
for most ReactOS users, but I see it as a nice feature, but not vitally
important. The important reason for using NTFS as I see it, is that I
do not think other filesystems support the needed features.
So coming back to ext?.
There exists a rather good implementation for WinNT:
http://www.fs-driver.org/index.html
better than the italian one. So what's the source of ROS's ext2-IFS in SVN?
Did we already contact the programmer of the mentioned ext2-ifs?
Maybe he is willing to add ACL and owner-support and a Posix-EA <->
IBM-EA mapping to his implementation and work with us?
To my knowledge, ext has no way to store NT security descriptors. You
may be able to write a hack that say, stores all the descriptors in one
file, and then has to search that file for the corresponding descriptor
for every other file on the volume you try to access, but that is an
ugly hack.
Issues:
Owners are 16-bit (since 2.6 also 32-Bit) integers. On NT they are
GUIDs. There is some partitioning in DOMAIN and USER for the GUID.
However noone hinders us to add a flag to our SM to just use 16 or 32-
bit user part for GUIDs to have an easy mapping (also on
Ext2,UFS,Reiser...)
User IDs on NT are SIDs, which are not the same as GUIDs. Technically
SIDs can have variable length, but all MS windows implementations to
date have used a 128 bit length consisting of a domain specific part and
a user specific part. Mapping this structure back and forth to a 32 bit
posix uid is an ugly hack, and as such, is less desirable than native
support. The same goes for trying to map NT ACLs back and forth to
posix chmod bits.
Multiple File streams. NTFS is (looking at the
mentioned table) the only
FS capable of that feature. But what is it? It is just some semantic to
actually hide files having a colon it their name (more less). So such
feature can be easyly simulated by a ROS-IFS. OK, there are issues with
attributes which then exist several times. But this is in my opinion a
minor problem, since no corruption by other OSs can occour (as in FAT).
And be honest. Who uses this feature? MS' AppleTalk-Server AND some
Virus that hides in another stream.
A number of features use data streams including offline files, EFS, on
the fly compressed files, and the summary property sheet that lets users
associate information with files including the author, revision,
description, and search keywords. There is also the file OBJID feature
and reparse points. I am sure there are more things that rely on this
feature that I am forgetting about, and I am also sure that there are
several nice features that we could implement in the future using
streams, so yes, it is something that we want to support.
In the end, you may be able to hack all the features of NTFS into some
other filesystem, but it will take a good amount of dirty tricks and so
won't perform nearly as well. It is better to go with a filesystem that
was designed to handle these features rather than come up with kludgey
ways to force the features into some other filesystem that was not.