Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!seismo!brl-adm!adm!mbr@THEORY.LCS.MIT.EDU From: mbr@THEORY.LCS.MIT.EDU Newsgroups: comp.unix.wizards Subject: How do NFS implementations fit into 4.[23]BSD and derived systems? Message-ID: <7044@brl-adm.ARPA> Date: Wed, 22-Apr-87 15:56:07 EST Article-I.D.: brl-adm.7044 Posted: Wed Apr 22 15:56:07 1987 Date-Received: Fri, 24-Apr-87 03:11:44 EST Sender: news@brl-adm.ARPA Lines: 31 I can see two totally different ways of implementing NFS in BSD. The "clean" way is to have *all* filesystem abstractions (including directories) be fully supported by the kernel (this was never the case in older Unixes). Library routines for things like opendir() and scandir() will use system calls instead of reading directory files, but no other library routines will change. The interface to NFS will be entirely in the kernel, and you will only have to relink everything once. Of course, you won't be able to take a binary to a vanilla BSD system and expect it to work, since it will use nonexistent system calls. But you'll be able to take it to any other system that supports the same system calls, even if it uses a different NFS implementation (or doesn't support NFS at all). The "dirty" way is to put all of the NFS code into library routines. System calls like open() will no longer be stub procedures that do the appropriate chmk; they will now contain code to trap and handle remote file operations. This method requires no kernel changes, but binaries will get a lot bigger, will become dependent on the particular NFS implementation in use, and will not be portable between machines that use different NFS implementations. A quick examination of the sources for Sun Unix 3.2 indicates that Sun has integrated NFS into BSD the "clean" way (correct me if I'm wrong). I've heard rumors that other NFS implementations are done the "dirty" way; does anyone have information about specific implementations? (I'm particularly interested in Mt. Xinu 4.3+NFS and Ultrix 2.0.) Finally, are the new system calls supported in Sun Unix becoming standard for BSD and derived sytems, even for those that don't have NFS? Thanks, Mark Reinhold Theory of Computation Group mbr@theory.lcs.mit.edu MIT Laboratory for Computer Science (617)-253-3037