The difference between Samba and NFS is primarily that Samba
uses the SMB (aka Lanmanager) protocol which is considered
"standard" for PCs (Windows and OS/2 both have built in
support for it, a free client is also available for DOS, I'm
not sure about MacOS), whereas NFS uses its own protocol
(usually just called "NFS") which is not commonly available
for PCs (NFS clients do exist for operating systems other
than UNIX/Linux, but they're
usually neither free or easy to setup).
Samba's SMB protocol allows the server machine to handle
authentication, so it can decide what files the client has
access to based on the particular machine and user
connecting. NFS by default trusts all client machines
completely (it's really not intended to share files to
unsecured workstations) and lets the client machines handle
authentication all on their own (once an NFS server has been
told to accept connections from a client machine the client
does not require any further server-side authentication, and
can do anything it wants with the filesystem NFS gives it
access to).
SMB does not (directly) support UNIX style file permissions,
so it is probably a bad idea to routinely use it to map
filesystems between machines which expect this information
to be present and mutable, NFS of course supports all
standard UNIX file information (this also means that SMB is
fine for accessing a UNIX filesystem from a Windows machine,
but not so hot the other way around).
Network File System (also known as NFS) is a protocol
developed by Sun Microsystems. It allows a user on a
computer to access files that are sent across a network –
similar to the way one accesses local storage. It is most
common in systems with a similar composition to the UNIX system
Samba is a re-implementation of SMB/CIFS networking protocol
(meaning a re-imaging of Server Message Block – or Common
Internet File System). As with the NFS, Samba runs most
naturally on a system with qualities not unlike those of the
UNIX systems. It comes standard with almost every
distribution of Linux, and is used as a basic system service
on all other UNIX-based systems.
a. NFS is a protocol that allows a user to access files over
a network; Samba is essentially a re-imaging of the Common
Internet File System.
b. NFS has four versions, the newest of which includes a
stateful protocol; Samba has multiple versions, the latest
of which allows file and print sharing between multiple
computers.