4 # Captive project doc About page Perl template.
5 # Copyright (C) 2003 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; exactly version 2 of June 1991 is required
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 package project::captive::doc::About;
22 require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway
23 our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
28 BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,<F>)[0]]}; eval "use lib '$top_dir'"; close F; }
31 BEGIN { Wuse 'project::captive::doc::Macros'; }
34 project::captive::doc::Macros->init(
35 "__PACKAGE__"=>__PACKAGE__,
36 "title"=>'Captive NTFS Developer Documentation: About',
37 "rel_prev"=>'Index.html.pl',
38 "rel_next"=>'Architecture.html.pl',
47 <a name="reasons"><h2>Reasons for the Implementation</h2></a>
49 <p>Currently there is no possibility to any of the available $freespeech
50 ($freespeech used in the following text in the meaning of
51 "@{[ a_href 'http://www.gnu.org/philosophy/free-sw.html','free as in speech' ]}")
52 operating systems to reliably write to the most common disk partition
53 filesystem type – <span class="productname">Microsoft NTFS</span>. It would
54 be already supported a long time ago but there is no proper documentation of
55 <span class="productname">NTFS</span> filesystem data structures available.
56 Since <span class="productname">Microsoft</span> corporation continues in its
57 propagation of <span class="productname">Microsoft Windows NT</span>
58 (<span class="productname">NT</span> identifier used in the following text
59 applies to all the products of <span class="productname">Microsoft</span>
60 <span class="productname">NT</span> series such as
61 <span class="productname">NT 4.0</span>,
62 <span class="productname">2000</span> as NT-5.0
64 <span class="productname">XP</span> as NT-5.1.)
65 based operating systems <span class="productname">NTFS</span> is the default
66 disk file system type for vendor preinstalled <span class="productname">Microsoft Windows</span>.
68 <p>Unfortunately the <span class="productname">NTFS</span> filesystem has too
69 complex data structure to allow a complete reverse enginnering process in
70 reasonable time. Currently available $freespeech solutions such as $LinuxNTFS
71 filesystem have already implemented reliable reverse
72 engineered read-only access. However <a name="reliability">reliabile</a>
73 read-write part of the access would require much better
74 knowledge of the <span class="productname">NTFS</span> data structures.
75 Currently only rewriting of already existing file data blocks is supported
76 by $LinuxNTFS — no file creation, no file deletion, no directory operations etc.
77 Also any future versions of <span class="productname">NTFS</span> filesystem
78 would require another major reverse engineering effort.</p>
81 <a name="challenges"><h2>Challenges of the Project</h2></a>
83 <p>The <a name="NTFSgoal">ultimate goal</a> of this project is definitely the
84 free implementation of @{[ a_href '#reliability','reliable' ]} read-write <span
85 class="productname">NTFS</span> filesystem driver. This project chose to
86 solve this problem in the style of $Wine project by using the original binary
87 <span class="fname">ntfs.sys</span> and emulating all the required layers of
88 <span class="productname">Microsoft Windows NT</span> for it.</p>
90 <p>Unfortunately this effort is tainted by only partial and generally
91 insufficient documentation of API between filesystem driver
92 (<span class="fname">ntfs.sys</span>) and the
93 <span class="productname">Microsoft Windows NT</span>
94 ("@{[ a_href 'http://mail.gnu.org/archive/html/libtool/2000-09/msg00000.html','W32' ]}"
95 in the following text) kernel <span class="fname">ntoskrnl.exe</span>. Note
96 that this API is a different than the one being used in the $Wine project
97 since <span class="productname">Wine</span> implements only the user space
101 <a name="versions"><h2>Microsoft Windows Versions Compatibility</h2></a>
103 <p>Currently this project supports only driver files of
104 <span class="productname">Microsoft Windows XP</span> (NT-5.1)
105 in the following releases:</p>
108 <li>Microsoft Windows XP Service Pack 1a Checked Build U.S.</li>
109 <li>Microsoft Windows XP Service Pack 1a Free Build U.S.</li>
110 <li>Microsoft Windows XP (No Service Pack) Checked Build U.S.</li>
111 <li>Microsoft Windows XP (No Service Pack) Free Build U.S.</li>
114 <p>The latest list of supported driver files can be found in:
115 @{[ captive_srcfile 'src/install/acquire/w32-mod-id.captivemodid.xml' ]}</p>
117 <p>Microsoft Windows NTFS filesystem driver is capable of accessing even
118 the older formats of the filesystem. Porting to Microsoft Windows 2003
119 Server is expected to be done soon. There can be also a danger of Microsoft
120 Windows upgrading NTFS disk filesystem where you would no longer be able
121 to access your NTFS disk by your original
122 <span class="productname">Microsoft Windows</span> version.
123 This upgrade does not happen as it occurs only during complete CD-ROM
124 Microsoft Windows system installation – such operation is not performed
127 <p>There is no problem technically obtaining the needed driver files of
128 <span class="productname">Microsoft Windows XP</span> as they are freely
130 @{[ a_href 'http://www.microsoft.com/WindowsXP/pro/downloads/servicepacks/sp1/checkedbuild.asp' ]}</p>
131 There may be @{[ a_href 'Architecture.html.pl#law','legal reasons' ]} you would not be allowed
132 to use there files if you own license to a different version of
133 <span class="productname">Microsoft Windows</span>. Legal rights will very
134 depending on your country.</p>
140 project::captive::doc::Macros->footer();