Can I run the 32-bit LAN drivers that come with Novell's NetWare Client 32 software?
Articles and Tips: qna
01 Apr 1996
Q.
Dear Ab-end: I have 386 and 486 computers but only 16-bit network interface boards. Can I run the 32-bit LAN drivers that come with Novell's NetWare Client 32 software? How does this work and what am I gaining?
--Bitless in Birmingham
A.
Dear Bitless: Are you sitting down? This may take a while to explain. As you're probably aware, Intel's 386 microprocessors (and above) address memory in 32-bit chunks. Thus computers with 386, 486, and Pentium CPUs can run 32-bit programs, but those with the 16-bit 286 CPU cannot. Running 32-bit programs is desirable, because a program that is optimized for 32-bit processors can be smaller (depending on the features implemented) and execute much faster than the same program written to run on 16-bit computers. This is not only because the 32-bit processors can move data around in bigger chunks, but also because they run at a faster clock speed.
NetWare Client 32 comes with two different types of "programs" that are written in 32-bit C code: the LAN drivers for the network boards, and the client software itself. In Client 32 for DOS/Windows, the LAN driver software includes LSLC32.NLM, CMSM.NLM, and ETHERTSM.NLM, along with the actual LAN driver, such as CNE2000.LAN. Since CNE2000.LAN is a 32-bit LAN driver, the supporting modules were written to accommodate the 32-bit code. Novell also provides 16-bit versions of these modules to accommodate 16-bit LAN drivers if 32-bit LAN drivers are not available for your network interface board.
The protocol modules for Client 32 (IPX.NLM and TCPIP.NLM) stay the same for either 16-bit or 32-bit LAN drivers. So does CLIENT32.NLM, the 32-bit requester that replaces the NETX shell or the DOS Requester (VLMs).
When it comes to getting the client software to communicate with the network, the 32-bit code must be adapted to the network board that is installed in the workstation. This is where you have to consider the performance aspects of 8-bit, 16-bit, and 32-bit network boards, as well as the bus architecture they are designed for, such as ISA, EISA, MCA, or PCI (a topic for an AppNote in itself).
If you have a 32-bit network board, a 32-bit LAN driver can copy data to the board's memory buffer in one 32-bit chunk. To move the same data, a 16-bit network board driver has to use two 16-bit chunks. An 8-bit driver would have to copy 8 bits four times. So even though you can use Client 32's 32-bit LAN drivers with your 16-bit network boards, you won't get the maximum performance out of the 32-bit drivers.
Even given these limitations, testing done at Novell has shown that Client 32 (without its client caching capabilities enabled) runs 20 to 25 percent faster with 16-bit network boards than the DOS Requester or NETX shell does. In tests using Client 32's caching, we have seen a 200 to 300 percent performance increase over the DOS Requester or NETX shell on redundant file accesses. (This explanation is drastically oversimplified, but it should give you a basic idea of what's going on.)
* Originally published in Novell AppNotes
Disclaimer
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.