[comp.sys.ibm.pc] PC-NFS versus MKS Shell, continued

keithe@tekgvs.TEK.COM (Keith Ericson) (02/23/88)

Here are more details on my continuing (and so far losing) battle
between Sun's PC-NFS and Mortice Kern Systems' KORN Shell.

PC-NFS is a package that, in conjunction with a daemon running on a
server machine (in my case a VAX running BSD4.3), allows filesystems
residing on the host ("serve") to be "mounted" (to use the UNIX-ism)
and appear to the PC (the "client") as a pseudo-disk drive.

The Mortice Kern Systems (MKS) Toolkit consists of many UNIX-like
programs and a Korn Shell which replaces command.com as a command
interpreter. Based on the UNIX Korn Shell it provides a very
accurate clone of "the real thing." The MS-DOS machine looks as if
it is a single-user, single-tasking UNIX box.

Now on to the problem(s):
This is with an Eltech Research 286 Clone; motherboard by
Everex, I think. PC-NFS is version 2.0; MKS Toolkit is version
2.2a.

With the MKS toolkit, config.sys contains the line

	shell=c:\etc\init c:\bin\login

As a result, init is run, which in turn runs /etc/rc.ksh to run the
"once per power-up" programs; then login is run, which issues the
greeting banner by printing the contents of /etc/issue to the screen,
prompts for a login name, verifies it against the /etc/passwd file,
creates the login environment (sets up HOME, PATH, SHELL, MAIL, TZ,
LOGNAME and ROOTDIR environment variables), and starts /bin/sh -L.
The sh -L command reads the /etc/profile.ksh and $HOME/profile.ksh files
to complete the login process, issues the initial $PS1 string and
awaits user input. Autoexec.bat is _not_ run unless explicitly
included in one of the start-up scripts (/etc/rc.ksh, /etc/profile.ksh,
or $HOME/profile.ksh).

So what is it I want to do? Well, to get PC-NFS running I have to
include some device= entries in config.sys:

		device=c:\nfs\pcnfs.sys
		device=c:\nfs\sockdrv.sys
		device=c:\nfs\ni5010.sys

Using command.com as a command interpreter the autoexec.bat file
contains the following lines:

		net start rdr <client-name> *
		net pcnfsd <authentication-server-name>
		net route <routing-server-name>
		net name <user-name> * | <user-password>

which starts the networking, establishes the name of the
authentication and routing server machines (the 4.3 BSD machine in
my case) and gets me "logged in" to the system.

Subsequently the "net use" command(s) is (are) issued which create the
network links between pseudo-drives on ny PC and filesystems on the
fleserver. I have entries like this in my autoexec.bat:

		net use f: \\tekgvs\usr2\keithe
		net use g: \\tekgvs\usr4\keithe\ibm.dir
		net use h: \\tekgvs\usr\src

and this all works fine with the command.com command interpreter.

So now I want it to work with the MKS init, login and sh programs:

The way it seems to me that it should be set up is to have the
"device=" entries in the config.sys should stay there (where else
could they go?). The "net..." commands in the autoexec.bat file need
to be distributed to two separate places: the network start-up entries
go into /etc/rc.ksh, and the "net use..." entries go into my
$HOME/profile.ksh. Well, there is no joy in network-ville, mighty
keithe has struck out. Many times.

What happens is that the systems runs out, or thinks it runs out, of
memory (did I mention that I have a full 640 k? Plus more in extended
if needed/useable). Before the message from /etc/issue appears I get
an error message like 

	mksh [5]: ry operator: no HOME directory
or
	mksh [5]: "%s" no HOME directory

The issue message then appears, followed by a login prompt. So I log
in, apparently successfully. But entering a single command (ls, for
example) runs the command, followed by a message

	insufficient memory for arguments

followed by an apparent logout and re-display of the /etc/issue
message and a login prompt. Logging in again yields the same result:
run one command and get logged out.

I have tried other attacks: putting the network start-up in
/etc/profile; keeping the stuff in autoexec.bat and running it
explicitly from /etc/rc.ksh or /etc/profile; invoking the many "net"
commands manually after logging in. Nothing has worked yet to get
the Shell and PC-NFS to work together. They all have their own
peculiar failure modes. Sometimes I get messages like

	: pattern "" not found in ""

or simply

	Insufficient msmory for arguments

even when no arguments were (explicitly) given.

Has anyone else tried this? Any better results? Please let me know!
Until something happens I'm stuck using commmand.com instead of a
"real" Shell. (The MKS tools all work OK - it's just sh.exe that
seems uncooperative.)

keith

Keith Ericson  at TekLabs (resident fractious factotum)
Tektronix, PO 500, MS 58-383   Beaverton OR 97077    (503)627-6042
UUCP:	[uunet|ucbvax|decvax|ihnp4|hplabs]!tektronix!tekgvs!keithe
ARPA:	keithe%tekgvs.TEK.COM@RELAY.CS.NET
CSNet:	keithe@tekgvs.TEK.COM

wnp@dcs.UUCP (Wolf N. Paul) (02/24/88)

In article <3144@tekgvs.TEK.COM> keithe@tekgvs.UUCP (Keith Ericson) writes:
>The way it seems to me that it should be set up is to have the
>"device=" entries in the config.sys should stay there (where else
>could they go?). The "net..." commands in the autoexec.bat file need
>to be distributed to two separate places: the network start-up entries
>go into /etc/rc.ksh, and the "net use..." entries go into my
>$HOME/profile.ksh. Well, there is no joy in network-ville, mighty
>keithe has struck out. Many times.
>
>What happens is that the systems runs out, or thinks it runs out, of
>memory (did I mention that I have a full 640 k? Plus more in extended
>if needed/useable). Before the message from /etc/issue appears I get

I encountered the same problem when using the Toolkit with memory resident
stuff, and although I never could get it to work the way the manual says, 
here is how I fixed it:

Put the line

	shell=command.com /Exxxx /C c:\etc\boot.bat

into config.sys. This will set the environment to a larger size, and then
run command.com invoking the boot.bat script.

All of your TSR's (like your nfs programs) should be started from that
file, with 

	c:\etc\init c:/bin/login

as the last line. Since INIT never exits, you never exit into command.com
either, and except for the extra memory required by that copy of command.com,
the look and feel is exactly the same as if you had run init from config.sys.

BTW, I don't think MKS Toolkit has any way of using AT extended or EMS expanded
memory - the Toolkit progs are just ordinary DOS progs and no nothing about
memory above 640K. The only use would be as a RAM disk.

-- 
Wolf N. Paul                  Phone: (214) 306-9101 (h)   (214) 404-8077 (w)
3387 Sam Rayburn Run          UUCP: ihnp4!killer!{dcs, doulos}!wnp
Carrollton, TX 75007          INTERNET: wnp@dcs.UUCP       ESL:  62832882
Pat Robertson does NOT speak for all evangelical Christians--not for me, anyway!