[ros-general] IFS-faq v0.9
vizzini at plasmic.com
Fri Feb 27 21:44:00 CET 2004
This looks pretty good to me.
There is one more question you might consider adding, though. I've been
asked about how critical NTFS support is for ReactOS to be successful.
My answer is something like this (which you may want to edit for brevity
and clarity): ReactOS will eventually want NTFS support, but for now,
there is no critical reason to have it. NTFS is primarily a hard disk
filesystem, so the only reason you would absolutely need it would be if
you wanted to access an NTFS-formatted physical partition on a hard disk
installed in a ReactOS computer.
Other filesystems will be able to provide the advanced features of NTFS
(journaling, ACLs, compression, encryption, etc.) if strict NTFS
compatibility is not a requirement. All software comes on CD or DVD
media (ISO-9660 or UDFS), or possibly on floppies (FAT). External media
(compact flash, memory sticks, etc.) tend to be formatted FAT.
On Fri, 2004-02-27 at 17:39, robert K. wrote:
> Now I improoved it a little bit.
> Did I guess right, that VFAT is included?
> Comments welcome.
> ROS-Filesystem FAQ
> ReactOS uses file system drivers as WinNT does. For that reason it
> implements the IFS-interface which stands for Installable File System.
> Therefore it is or will be able to load and use IFS-drivers. The same
> as WinNT and WinXP also uses. At the time of writing ReactOS was still
> unable to load WinNT-native IFS-drivers. But some time, ROS will be
> able to load even native NTFS-drivers.
> Q: Can we impliment the FreeDos version of the FAT32 filesystem?
> A: Reactos supports Fat32 for ages. There's no need to implement
> another one.
> Q: Does ReactOS support VFAT and long names?
> A: What are short names? OK. ROS natively supports long and unicode
> filenames. So it's up to the file system driver how it deals with it.
> The FAT-driver delivered with ReactOS doesn't support VFAT, now.
> Q: Why don't you implement ext2/3 but messing around with NTFS?
> A: Because NTFS is a major feature which must be supportet at some
> time. Ext2/3 is of course a topic for us, however there exist already
> projects whose goal it is to implement ext2/3 for NT. We will utilize
> these drivers when they got good enough.
> Q: Where can I find the Ext2/3-IFS for NT?
> You can find it here:
> http://sys.xiloo.com/projects/projects.htm#ext2fsd and
> Q: Can I help programming installable file system drivers?
> A: Yes, there's lots of work to do around IFS-drivers. It's however
> very hard to program. I like to say that programming dirvers is hard
> but programming file system dirvers is the king's discipline. If you
> are a real kernel hacker, come to our maling list and anounce
> Q: Can we use ext2/3 instead of poking around in NTFS
> A: Yes, it's up to you, which file system you want to use. For now
> however neither the ext2/3-IFS nor the our NTFS-IFS is ready to use
> for read and write. So there's still lots of work to do and so the
> only option is the FAT-IFS.
> Q: Why do you not make use of the Linux-NTFS project's sources?
> A: These sources are rather ok, but as all NFTS implementations (but
> the one from MS) it lacks writing support. And there are still big
> areas of NTFS wich are undocumented/unknown. We are working together
> with them or just using their code. In the moment ther's however not
> that priority for NTFS. So it's still sleeping.
> Q: I would vote for reiserfs as the standard FS for ReacOS
> A: Good Idea. However there's no ReiserFS driver for NT/ROS available.
> You are welcome to program one. I think in the last time there apeared
> one in the net.
> Q: The JFS-sources (also for OS/2) are free to download. Why not make
> JFS the standard FS in ROS?
> A: Yes, at least an IFS is already planned. Since JFS is still a state
> of the art file system with journalling, big file+partition sizes ACLs
> and extended attributes and hard links, it would well suite ROS. We
> are working on it but you are welcome to help.
> Q: How do you deal with case sesitivity (i.e. ext2) ?
> A: Case sensitivity is not a problem of the file system itself. It's
> an aspect of the corresponding dirver. The object manager which
> provides the whole namespace supports case sensitivity natively. So
> IFS-drivers get a special case flag which they must handle
> accordingly. A ported file system diriver must therefore be able to
> handle both, case (in)sensitivity.
> Q: Does a 64-bit file system run on a 32-bit machine?
> A: Yes. The 64-bit are just the adressing on the disk. It has nothing
> to do with the executable which contains the driver. That executable
> hat that manny bits as the whole operating system has.
> Q: What file systems does ReactOS support, now?
> A: For now, the only file system supported is FAT(12/16/32) without
> Q: What file systems will ReactOS support?
> A: Our goal is to support as many file systems as possible. There can
> be developed IFS-drivers for at least these disk file systems which
> are available with linux. It's however verry hard to program a
> compliant/working file system driver. So it will take some time.
> At least there will be:
> * FAT(12/16/32) plus VFAT
> * iso9660 - CD-ROM
> * one Higher FS like ext3, NTFS or JFS
> * NPFS - named pipe file system (internal FS)
> Q: I have an idea: Why not throw away these odd drive letters?
> A: Old Idea. I'd say that also MS has had this idea. But they didn't
> realize it up to now. Why? In the ROS-team there are also thinkings
> about this issue. But up to now there has not been a sufficient
> conclusion about this topic. Maybe MS is also still thinking.
> There are Ideas as having a memory based mount file system or
> uncovering the object managers name space to win32-apps or drive
> words. Everything brings disadvantages with it.
> By the way: The ROS/NT-Kernel doesn't work with drive letters. These
> are a relict of DOS (or should I say CP/M) in win32.
> Q: What is a Redirector?
> A: This is a special form of an IFS driver. It doesn't implement a on
> disk file system. Instead it relies on the kernel's network stack and
> provides most times a remote file system (i.e. SMB-Shares).
> Q: What is a file system recognizer?
> A: A real file system driver is a heavy wight. Loading it just for it
> to see that there is no partition it could mount is waste. For this
> reason Dave invented so called recognizer driver. They are more less
> integral part of the driver architecture. Such a little driver gets
> loaded and searches partitions for file systems it's companion IFS is
> capable of. If it finds such a partition it loads it's companion IFS
> to mount it.
> SEH-Problem: Structured exception handling (SEH) is used in
> programming ReactOS as it is used in programming for OS/2 or WinNT,
> too. SEH is a game wich is played between OS and Compiler (Keywords:
> __try, __except, __finally). ReactOS itself is SEH-aware and provides
> the infrastructure, however up to now, the used GNU-compiler is not
> capable of generating SEH aware code. So one can't compile a driver or
> program which uses SEH with the GNU-Compiler.
> © 2/2004 Robert Köpferl <>
> ros-general mailing list
> ros-general at reactos.com
More information about the ros-general