Re: Greets and VFS question
Re: Greets and VFS question
- Subject: Re: Greets and VFS question
- From: Quinn <email@hidden>
- Date: Thu, 27 Feb 2003 13:48:48 +0000
At 12:42 +0000 27/2/03, Pev wrote:
Anyone have any suggestions? I fear I may be missing something obvious!
Alas, you're not. This is quite a commonly asked question, and I
will turn the following into a DTS Q&A. Note that this hasn't been
reviewed yet, so right now it's not Apple gospel but *draft* Apple
gospel (-:
----------------------------------------------------------------
Q: Does Apple support the development of external file systems (VFS
plug-ins) on Mac OS X? Where can I find information about developing
such a file system?
A: The answer depends on whether you're writing a leaf file system or
a stacking file system.
o Leaf File Systems -- Apple does support the development of leaf
file systems for Mac OS X. Unfortunately, there is no documentation
that specifically covers Mac OS X's VFS plug-in architecture.
However, the following resources should be helpful.
- Mac OS X's VFS architecture is derived from 4.4BSD. "The Design
and Implementation of the 4.4BSD Operation System" (ISBN:
0-201-54979-4) includes a good overview of VFS on that system. As
there are key differences between 4.4BSD and Mac OS X (for example,
the Unified Buffer Cache and additional VFS entry points to support
HFS semantics), you can not consider this book canonical.
- For general information about Mac OS X kernel programming, see the
documentation on the Apple developer web site.
<
http://developer.apple.com/techpubs/macosx/Darwin/index.html>
- The source for a number of existing file systems is available in
Darwin (the open source underpinnings of Mac OS X).
<
http://www.apple.com/darwin/>
- There are a few DTS Q&As that cover VFS.
<
http://developer.apple.com/qa/indexes/fl-a.html>
- If you have technical questions, there are a variety of mailing
lists for free support and DTS for paid support.
<
http://www.lists.apple.com/darwin-kernel>
<
http://developer.apple.com/programs/techsupport.html>
IMPORTANT:
As with all development in the BSD portions of the Mac OS X
kernel, binary compatibility is not guaranteed for VFS plug-ins.
We probably won't document the VFS layer properly until we have
the binary compatibility story sorted out.
o Stacking File Systems -- Apple does not support the development of
stacking VFS plug-ins on Mac OS X. We've taken this position
because, in our opinion, it's not possible to create a stacking VFS
plug-in that:
a) works reliably,
b) does not severely impinge on system performance, and
c) has any hope of binary (or even source-level) compatibility with
future systems.
Earlier Apple documentation stated that stacking VFS plug-ins could
be used to solve certain problems, such as file-level encryption and
virus checking. We even went so far as to publish an example of
this, the Politically Correct file system (PCFS), that ran on
pre-release builds of Mac OS X. Subsequent experience has shown that
this technique does not work properly and we no longer support it.
Thus, we have removed (or soon will) all references to stacking VFS
from our documentation <rdar://problem/3143262>
<rdar://problem/3143919> and we will not publish an update to PCFS.
The existing PCFS source code is not useful because it has not been
updated to support UBC.
If you have a problem that can only be solved via a stacking file
system, please let us know by mailing <email@hidden>. While we
can't support your development, we are interested in gathering
information about what developers need and why. This feedback will
guide our long-term approach to this question.
Finally, there are a number of third party developers who are working
in this realm. If you are absolutely determined to develop a
stacking VFS plug-in, you will find some help on the Internet.
----------------------------------------------------------------
S+E
--
Quinn "The Eskimo!" <
http://www.apple.com/developer/>
Apple Developer Technical Support * Networking, Communications, Hardware
_______________________________________________
darwin-kernel mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/darwin-kernel
Do not post admin requests to the list. They will be ignored.