The file "export.us" must exist in the default directory on the server. The format is similar to Sun NFS's "/etc/exports" as defined in exports(5), except that directories on the server side are specified in MS-DOS format, ie. "<drive>:<path name>." SOSS will parse this file to learn which filesystems on the local machine it will accept mount requests for. Up to 50 individual clients may be specified for any exported directory.
SOSS requires the system clock to be set correctly. The MS-DOS timezone environment variable should be set the way it is under Unix. (E.g., for Eastern Time, use SET TZ=EST5EDT or SET TZ=EDT4; daylight savings time isn't handled correctly by the Microsoft C library linked with this version.) Note that MS-DOS does not understand dates prior to January 1, 1980. If you have a Network Time Server established on your network, you should run PC/IP SETCLOCK prior to running SOSS.
Before running SOSS, configure your Ethernet interface card and the packet driver software. Using CUSTOM, set correct parameters (IP address, name and time server addresses) in NETDEV.SYS, then add the line "DEVICE=NETDEV.SYS" to CONFIG.SYS, and reboot your system. Run the appropriate packet driver, specifying software interrupt vector 0x7e; here is an example:
ni5210 -n 0x7e 5 0x300 0xd000
You can then run NetWare, if desired, and then invoke SOSS.
There should be a capacity for at least fifteen files to be opened at a time. SOSS caches file handles for faster access during reads.
File names in filesystems mounted with SOSS are limited to eight characters, with a three character extension. Attempts to create a file with a name not matching the above restrictions will result in an error message, NFSERR_NAMETOOLONG, unless the truncation option is specified. All file names are mapped to lowercase.
The owner ID of any directory or file in a SOSS filesystem will appear to be that of the user accessing it. Files have three possible modes: regular files, which are global read, write and executable, read only, which are global read and executable, and subdirectories, which are global read, write and executable. Chmod(1) may not work as expected with SOSS files, and chown(1) will not work at all.
An SOSS filesystem may be mounted by mount(1). On the client system's mount command line, a filesystem is specifed by the sequence "/drive/directory." On the server side, a root directory may be exported by using the form "c:\"; a subdirectory may be exported using the form "c:\foo". The rsize and wsize parameters must be specified less than or equal to 512 bytes. An example of a typical mount command issued on a client system:
# mount -f NFS,intr,rsize=512,wsize=512 dosbox:/c /usr/sos
If you modify the EXPORT.US file, you should remove the INODE.DMP file before restarting the server, and unmount/remount any exported filesystems on each client. In general, if you remove INODE.DMP, you should remount the filesystems from the client side, in order to get rid of any stale file handles.
One product you may wish to use in conjunction with SOSS, if you are using it to export a hard drive physically connected to the SOSS server PC, is a disk cache which keeps data blocks in extended memory. This functionality was not added to SOS itself due to the low cost of high-quality commercial products like PCKWIK.
Asterisked items are not used in the released version. Debugging output goes to the console display unless DEBUGFILE is set to a file or device name. If you want all trace messages, set NFSDEBUG=all; if you want all but a few, you can use negated flags, as in "set NFSDEBUG=all;-nfsread;-nfswrite".
Port Mapper Requests
Only one call is supported: PMAPPROC_GETPORT. The port mapper
knows of only the NFS and mount daemon ports. In version two of
the NFS protocol, NFS port is bound to 2049. This is a bug in the
NFS protocol which Sun Microsystem claims it will fix in the near
future.
Mount Daemon Requests
Three calls are supported: MOUNTPROC_MOUNT, MOUNTPROC_UMOUNT, and
MOUNTPROC_EXPORT. These reply to mount and unmount requests for
specified filesystems. The MOUNTPROC_EXPORT function provides a
list of exported file systems (in Unix-style syntax), but does not
include the list of authorized clients for each.
NFS Server Requests
SOSS supports the whole range of valid requests for version two
of the NFS protocol, except NFSPROC_READLINK, NFSPROC_LINK
and NFSPROC_SYMLINK. MS-DOS does not support links. This is a list
of requests:
Procedure 0: NFSPROC_NULL /* for server response and timing */
Procedure 1: NFSPROC_GETATTR /* get file attributes */
Procedure 2: NFSPROC_SETATTR /* set file attributes */
Procedure 3: NFSPROC_ROOT /* obsolete --- not supported */
Procedure 4: NFSPROC_LOOKUP /* lookup file in directory */
Procedure 5: NFSPROC_READLINK /* not supported */
Procedure 6: NFSPROC_READ /* read from file */
Procedure 7: NFSPROC_WRITECACHE /* obsolete --- not supported */
Procedure 8: NFSPROC_WRITE /* write to file */
Procedure 9: NFSPROC_CREATE /* create file */
Procedure 10: NFSPROC_REMOVE /* remove file */
Procedure 11: NFSPROC_RENAME /* rename a file */
Procedure 12: NFSPROC_LINK /* not supported */
Procedure 13: NFSPROC_SYMLINK /* not supported */
Procedure 14: NFSPROC_MKDIR /* make directory */
Procedure 15: NFSPROC_RMDIR /* remove directory */
Procedure 16: NFSPROC_READDIR /* read directory */
Procedure 17: NFSPROC_STATFS /* status of filesystem */
"A Low-Cost Unix/DOS Network Solution for Software Engineering", Richard Braun (rbraun@spdcc.com), Kronos, Inc., April 1991.
"Network File System Protocol Specification", RFC-1094, Bill Nowicki (nowicki@sun.com), Sun Microsystems Inc., March 1989.
"Networking on the Sun Workstation", Sun Part No. 800-1324-03.
"Packet Drivers Made Simple", Joe R. Doupnik (jrd@cc.usu.edu), Utah State University, January 1990.
"PC/IP User's Guide", Jerome H. Saltzer and John L. Romkey, Massachusetts Institute of Technology Laboratory for Computer Science, March 1986.
"User Documentation for the Packet Driver Collection", Russ Nelson, Clarkson University (nelson@clutx.clarkson.edu).