This paragraph is irrelevent and misleading (needs fix for 2.2 as well)
[kai/samba.git] / docs / docbook / projdoc / UNIX_INSTALL.sgml
index 41eb7a478ccc167d115655da8188b4cfacf697c9..0c6eeb9e69cd39f77c913702316fecc0177d02ed 100644 (file)
@@ -1,4 +1,4 @@
-<chapter>
+<chapter id="install">
 
 <title>How to Install and Test SAMBA</title>
 
@@ -30,7 +30,7 @@
        </userinput></para>
        
        <para>first to see what special options you can enable.
-       Then exectuting</para>
+       Then executing</para>
        
        <para><prompt>root# </prompt><userinput>make</userinput></para>
        
@@ -96,7 +96,7 @@
        <para>which would allow connections by anyone with an 
        account on the server, using either their login name or 
        "homes" as the service name. (Note that I also set the 
-       workgroup that Samba is part of. See BROWSING.txt for defails)</para>
+       workgroup that Samba is part of. See BROWSING.txt for details)</para>
        
        <para>Note that <command>make install</command> will not install 
        a <filename>smb.conf</filename> file. You need to create it 
        not it will give an error message.</para>
 
        <para>Make sure it runs OK and that the services look 
-       resonable before proceeding. </para>
+       reasonable before proceeding. </para>
 
 </sect1>
 
 <sect1>
        <title>Step 5: Starting the smbd and nmbd</title>
-       
-       <para>You must choose to start smbd and nmbd either 
-       as daemons or from <command>inetd</command>. Don't try 
+
+       <para>You must choose to start smbd and nmbd either
+       as daemons or from <command>inetd</command>. Don't try
        to do both!  Either you can put them in <filename>
-       inetd.conf</filename> and have them started on demand 
+       inetd.conf</filename> and have them started on demand
        by <command>inetd</command>, or you can start them as
        daemons either from the command line or in <filename>
-       /etc/rc.local</filename>. See the man pages for details 
-       on the command line options. Take particular care to read 
-       the bit about what user you need to be in order to start 
+       /etc/rc.local</filename>. See the man pages for details
+       on the command line options. Take particular care to read
+       the bit about what user you need to be in order to start
        Samba.  In many cases you must be root.</para>
 
        <para>The main advantage of starting <command>smbd</command>
-       and <command>nmbd</command> as a daemon is that they will 
-       respond slightly more quickly to an initial connection
-       request. This is, however, unlikely to be a problem.</para>
+       and <command>nmbd</command> using the recommended daemon method
+       is that they will respond slightly more quickly to an initial connection
+       request.</para>
 
        <sect2>
                <title>Step 5a: Starting from inetd.conf</title>
                <para>NOTE: Some unixes already have entries like netbios_ns 
                (note the underscore) in <filename>/etc/services</filename>. 
                You must either edit <filename>/etc/services</filename> or
-               <filename>/etc/inetd.conf</filename> to make them consistant.</para>
+               <filename>/etc/inetd.conf</filename> to make them consistent.</para>
 
                <para>NOTE: On many systems you may need to use the 
                "interfaces" option in smb.conf to specify the IP address 
                and netmask of your interfaces. Run <command>ifconfig</command> 
                as root if you don't know what the broadcast is for your
                net. <command>nmbd</command> tries to determine it at run 
-               time, but fails on somunixes. See the section on "testing nmbd" 
+               time, but fails on somunixes. See the section on "testing nmbd" 
                for a method of finding if you need to do this.</para>
 
                <para>!!!WARNING!!! Many unixes only accept around 5 
        <sect2>
                <title>Diagnosing Problems</title>
 
-               <para>If you have instalation problems then go to 
+               <para>If you have installation problems then go to 
                <filename>DIAGNOSIS.txt</filename> to try to find the 
                problem.</para>
        </sect2>
                The second is the "deny modes" that are specified when a file 
                is open.</para>
 
-               <para>Samba supports "record locking" using the fcntl() unix system
-               call. This is often implemented using rpc calls to a rpc.lockd process
-               running on the system that owns the filesystem. Unfortunately many
-               rpc.lockd implementations are very buggy, particularly when made to
-               talk to versions from other vendors. It is not uncommon for the
-               rpc.lockd to crash.</para>
-
-               <para>There is also a problem translating the 32 bit lock 
-               requests generated by PC clients to 31 bit requests supported 
-               by most unixes. Unfortunately many PC applications (typically 
-               OLE2 applications) use byte ranges with the top bit set 
-               as semaphore sets. Samba attempts translation to support 
-               these types of applications, and the translation has proved 
-               to be quite successful.</para>
-               
+               <para>Record locking semantics under Unix is very
+               different from record locking under Windows. Versions
+               of Samba before 2.2 have tried to use the native
+               fcntl() unix system call to implement proper record
+               locking between different Samba clients. This can not
+               be fully correct due to several reasons. The simplest
+               is the fact that a Windows client is allowed to lock a
+               byte range up to 2^32 or 2^64, depending on the client
+               OS. The unix locking only supports byte ranges up to
+               2^31. So it is not possible to correctly satisfy a
+               lock request above 2^31. There are many more
+               differences, too many to be listed here.</para>
+
+               <para>Samba 2.2 and above implements record locking
+               completely independent of the underlying unix
+               system. If a byte range lock that the client requests
+               happens to fall into the range 0-2^31, Samba hands
+               this request down to the Unix system. All other locks
+               can not be seen by unix anyway.</para>
+
                <para>Strictly a SMB server should check for locks before 
                every read and write call on a file. Unfortunately with the 
                way fcntl() works this can be slow and may overstress the 
                are set by an application when it opens a file to determine 
                what types of access should be allowed simultaneously with 
                its open. A client may ask for DENY_NONE, DENY_READ, DENY_WRITE 
-               or DENY_ALL. There are also special compatability modes called 
+               or DENY_ALL. There are also special compatibility modes called 
                DENY_FCB and  DENY_DOS.</para>
-
-               <para>You can disable share modes using "share modes = no". 
-               This may be useful on a heavily loaded server as the share 
-               modes code is very slow. See also the FAST_SHARE_MODES 
-               option in the Makefile for a way to do full share modes 
-               very fast using shared memory (if your OS supports it).</para>
        </sect2>
        
        <sect2>
 
                <para>If you have problems using filenames with accented 
                characters in them (like the German, French or Scandinavian 
-               character sets) then I recommmend you look at the "valid chars" 
+               character sets) then I recommend you look at the "valid chars" 
                option in smb.conf and also take a look at the validchars 
                package in the examples directory.</para>
        </sect2>