First post, by davidrg
Recently I saw some posts here on optimizing conventional memory. Somehow in my 20 years of playing around with vintage computers and DOS I don't think I'd ever used memmaker or even run the mem command. Surely that can't be right. Maybe I've just forgotten - I've not really used DOS much in the last few years. Seems like new information to me now though and thats good enough.
As I've been playing with NetWare a whole bunch lately I decided to use my new found seeing where all my conventional memory went powers to see just how badly the NetWare client gets in the way of doing useful work like playing Commander Keen. Given the thing has a network card driver, IPX/SPX stack, TCP/IP stack, DHCP client, thing that responds to PINGs plus all the stuff for mapping network drives and who knows what else it must take quite a lot right? I mean Microsofts Lanman/SMB client that does all of the above is kind of notorious for eating all your conventional memory.
So here is mem /c on a VirtualBox VM running a clean install of MS-DOS 6.22. No setver or smartdrv. Memmaker added emm386 noems. Client 32 is the NetWare client:
Modules using memory below 1 MB:
Name Total = Conventional + Upper Memory
-------- ---------------- ---------------- ----------------
MSDOS 16,717 (16K) 16,717 (16K) 0 (0K)
HIMEM 1,120 (1K) 1,120 (1K) 0 (0K)
EMM386 4,144 (4K) 4,144 (4K) 0 (0K)
COMMAND 2,928 (3K) 2,928 (3K) 0 (0K)
Client32 3,280 (3K) 0 (0K) 3,280 (3K)
Free 724,176 (707K) 630,336 (616K) 93,840 (92K)
Memory Summary:
Type of Memory Total = Used + Free
---------------- ---------- ---------- ----------
Conventional 655,360 25,024 630,336
Upper 97,120 3,280 93,840
Reserved 393,216 393,216 0
Extended (XMS) 32,408,736 17,335,456 15,073,280
---------------- ---------- ---------- ----------
Total memory 33,554,432 17,756,976 15,797,456
Total under 1 MB 752,480 28,304 724,176
Largest executable program size 630,240 (615K)
Largest free upper memory block 93,840 (92K)
MS-DOS is resident in the high memory area.
The whole network client is using 3KB of upper memory and that's it - 0KB of conventional memory. Well, its also using half the extended memory (for cache apparently - you can tell it to be more reasonable and grab a smaller share in its config file). But the important thing is I've got proper network drives without using conventional memory! At least on a 386 or better with DOS 5.0+ - the older clients (VLM and NETX) that are compatible with older versions of DOS and older processors (down to DOS 3.2 on an 8088) do use conventional memory though still not anywhere near as much as the Microsoft SMB client.
As for the Microsoft SMB client - I gave that a go too out of curiosity. Installed it with TCP/IP and the full redirector and it left only 442K free conventional memory. I guess their answer at the time was probably "use windows" but still, 615K vs 442K free. Clearly someone didn't put as much effort in. Me - surely Microsofts client can't be that bad. Surely. But even still out of the box with no special configuration (aside from loading emm386) the NetWare client automatically used nothing.
I'm sure none of this is news to anyone else using NetWare (if anyone is) - I just found it kind of incredible that the NetWare client uses so little (and that the Microsoft client uses so much). DOS networking with no conventional memory consequences (assuming you were going to run emm386 for something else anyway). Shame there isn't a samba equivalent for NetWare that doesn't require running an old Linux kernel.