Finally merged the branch 'apache20'(+'apache2') back to the main trunk.
[www.jankratochvil.net.git] / project / captive / doc / LinuxNTFS.pm
diff --git a/project/captive/doc/LinuxNTFS.pm b/project/captive/doc/LinuxNTFS.pm
new file mode 100755 (executable)
index 0000000..c0d3a0f
--- /dev/null
@@ -0,0 +1,89 @@
+# $Id$
+# Captive project doc LinuxNTFS page Perl template.
+# Copyright (C) 2003-2005 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; exactly version 2 of June 1991 is required
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+package project::captive::doc::LinuxNTFS;
+require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway
+our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
+our $CVS_ID=q$Id$;
+use strict;
+use warnings;
+
+use My::Web;
+
+
+sub handler
+{
+       BEGIN { Wuse 'project::captive::doc::Macros'; }
+project::captive::doc::Macros->init(
+               "title"=>'Captive NTFS Developer Documentation: Captive vs. Linux-NTFS',
+               "rel_prev"=>'Related.pm',
+               );
+
+
+print <<"HERE";
+
+
+<h1>Re: @{[ a_href 'http://linux-ntfs.sourceforge.net/info/ntfs.html#7.7',
+               "7.7 Can't we write a wrapper for Windows' driver?" ]}</h1>
+
+       <p class="re">&gt; It sounds like a great idea, to start with, but there are numerous
+       problems.</p>
+
+       <p><span class="re">&gt; The largest technical problem is joining the Windows
+       system DLL to the Linux VFS. It could be done, but it wouldn't be pretty.</span><br />
+       Yep. :-)</p>
+
+       <p><span class="re">&gt; It would have to run as part of the kernel which would mean
+       that if it went wrong it could crash the machine. With no source, we might not
+       be able to work around the problem.</span><br />
+       @{[ a_href 'Details.pm#sandbox','Nope' ]},
+       @{[ a_href 'http://lufs.sourceforge.net/lufs/','Linux Userland File System (LUFS)' ]}
+       moves the filesystem implementation to UNIX userland where the Microsoft
+       Windows filesystem is completely unarmed by Captive jail of chroot(2),
+       setuid(2) and setrlimit(2). There only remains one narrow connection to the rest of
+       system (by CORBA/ORBit). The filesystem's life environment gets kill(2)ed when
+       UNIX is no longer satisfied with it. Safety similiar to
+       @{[ a_href 'http://www.vmware.com/solutions/security.html','VMware sandbox' ]}.</p>
+
+       <p><span class="re">&gt; The next major problem is compati<!--orig. text typo-->bility.
+       Which version of the Windows system file would we use? Picking one would limit
+       its use, making the wrapper versatile for all of them would be a programming
+       nightmare.</span><br />
+       Microsoft Windows NTFS filesystem driver is capable of accessing older formats
+       of the filesystem. This project currently runs Microsoft Windows XP version,
+       porting to Microsoft Windows 2003 Server expected. (Microsoft Windows upgrades
+       NTFS disk filesystem to its own version during complete CD-ROM Microsoft
+       Windows system installation &ndash; such operation is not threat this project use.)</p>
+
+       <p><span class="re">&gt; And it gets worse. The legal implications of
+       distributing Windows systems files would cause problems.</span><br />
+       User must be careful to obey all licensing restrictions according to his
+       local country laws.<br />
+       <span class="re">&gt; Also the proprietary nature of the driver would mean that
+       the other kernel coders would not investigate any problems if someone had used
+       the NTFS wrapper.</span><br />
+       It does not apply to this project due to the implemented
+       @{[ a_href 'Details.pm#sandbox','filesystem separation' ]}.</p>
+
+
+HERE
+
+
+exit;
+}
+1;