NetWare Loadable Module

Last updated

NetWare Loadable Module
Filename extension
.nlm
Magic number NetWare Loadable Module
Developed by Novell
Type of format Executable, Shared library

A NetWare Loadable Module [1] [2] [3] (NLM) is a loadable kernel module (a binary code module) that can be loaded into Novell's NetWare operating system. NLMs can implement hardware drivers, server functions (e.g. clustering), applications (e.g. GroupWise), system libraries or utilities.

Contents

NLMs were supported beginning with the Intel 80386-based NetWare version 3.x. Prior versions of NetWare had a monolithic kernel, and significant hardware or functionality changes required re-linking the kernel from object modules.

Due to stability issues with early third-party NLMs, they never became popular for server application programming, with few exceptions like antivirus programs, backup programs and certain database products.

Functionality

Upon loading, a NLM requests resources, such as memory and process threads, from the NetWare kernel. The NetWare kernel tracks such requests, and can identify memory and other resources assigned to a specific NLM. NLMs may auto-load other NLMs upon which they themselves depend.

NLMs may register commands with the NetWare kernel, extending the command vocabulary available at the NetWare console prompt.

When properly coded, NLMs can be re-entrant, allowing multiple instances of the same code to be loaded and run.

Programming issues

Initially, Novell published a development toolkit for NLM programming including kernel API documentation and a C compiler (Watcom), but third-party support for the NLM executable function was very limited.

In early NetWare versions (prior to v4.x), all processes were executed in the kernel address space, without specific memory protection. It was therefore possible for bugs in NLMs to overwrite the kernel's or other NLM's address space and ultimately crash the server in the mainframe-derived Novell terminology, this was known as an ABEND or ABnormal END.

Moreover, NetWare used a non-preemptive, or cooperative, multitasking model, meaning that an NLM was required to yield to the kernel regularly. [4] An NLM executing an infinite loop, for example, could therefore not be stopped.

In NetWare v4.x, Novell introduced a limited form of memory protection, which was extended to Protected Address Spaces in NetWare v5.x. Through these mechanisms, properly-coded NLMs can be loaded into their own address space, and mis-behaving NLMs can be prevented from compromising the kernel integrity.

Compilers

Official compilers that produce NLMs are:

NLM development is also possible with GNU cc and binutils. [6] More details are available in NetWare Loadable Module Programming HOWTO by Martin Hinner. [7]

Client-side NLMs with NIOS

Announcing it in March 1995, [8] [9] Novell introduced a new 32-bit DOS/Windows NetWare client (Client 32 based on ODI32/NIOS) [10] in 1996, replacing the former 16-bit client based on ODI/VLM. Its NIOS component (NetWare I/O Subsystem [8] [11] [12] ) used techniques similar to DPMS to relocate and run NLMs in protected mode and extended memory in order to reduce the conventional memory footprint of the client down to 2 to 5 KB. [13] [11]

See also

Related Research Articles

<span class="mw-page-title-main">DR-DOS</span> MS-DOS-like operating system

DR-DOS is a disk operating system for IBM PC compatibles. Upon its introduction in 1988, it was the first DOS attempting to be compatible with IBM PC DOS and MS-DOS.

<span class="mw-page-title-main">NetWare</span> Computer network operating system developed by Novell, Inc

NetWare is a discontinued computer network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, using the IPX network protocol.

In computing, a loadable kernel module (LKM) is an object file that contains code to extend the running kernel, or so-called base kernel, of an operating system. LKMs are typically used to add support for new hardware and/or filesystems, or for adding system calls. When the functionality provided by an LKM is no longer required, it can be unloaded in order to free memory and other resources.

<span class="mw-page-title-main">Conventional memory</span> First 640K of RAM under DOS

In DOS memory management, conventional memory, also called base memory, is the first 640 kilobytes of the memory on IBM PC or compatible systems. It is the read-write memory directly addressable by the processor for use by the operating system and application programs. As memory prices rapidly declined, this design decision became a limitation in the use of large memory capacities until the introduction of operating systems and processors that made it irrelevant.

<span class="mw-page-title-main">High memory area</span>

In DOS memory management, the high memory area (HMA) is the RAM area consisting of the first 65520 bytes above the one megabyte in an IBM AT or compatible computer.

IPX/SPX stands for Internetwork Packet Exchange/Sequenced Packet Exchange. IPX and SPX are networking protocols used initially on networks using the Novell NetWare operating systems. They also became widely used on networks deploying Microsoft Windows LANS, as they replaced NetWare LANS, but are no longer widely used. IPX/SPX was also widely used prior to and up to Windows XP, which supported the protocols, while later Windows versions do not, and TCP/IP took over for networking.

Btrieve is a transactional database software product. It is based on Indexed Sequential Access Method (ISAM), which is a way of storing data for fast retrieval. There have been several versions of the product for DOS, Linux, older versions of Microsoft Windows, 32-bit IBM OS/2 and for Novell NetWare.

<span class="mw-page-title-main">ViewMAX</span> File manager

ViewMAX is a CUA-compliant file manager supplied with DR DOS versions 5.0 and 6.0. It is based on a cut-down runtime version of Digital Research's GEM/3 graphical user interface modified to run only a single statically built application, the ViewMAX desktop. Support for some unneeded functions has been removed whilst some new functions were added at the same time. Nevertheless, the systems remained close enough for ViewMAX to recognize GEM desktop accessories automatically and to allow some native GEM applications to be run inside the ViewMAX environment. Many display drivers for GEM 3.xx could be used by ViewMAX as well, enabling ViewMAX to be used with non-standard display adapters and higher resolutions than possible using the default set of ViewMAX drivers. Also, Digital Research's SID86, the symbolic instruction debugger that shipped with DR DOS 3.xx and provided dedicated functions to debug GEM applications, could be used for ViewMAX as well.

Mercury Mail Transport System is a standards-compliant mail server developed by David Harris, who also develops the Pegasus Mail client.

"Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another or in which unnecessary data copies are avoided. This is frequently used to save CPU cycles and memory bandwidth in many time consuming tasks, such as when transmitting a file at high speed over a network, etc., thus improving performances of programs (processes) executed by a computer.

Long filename (LFN) support is Microsoft's backward-compatible extension of the 8.3 filename naming scheme used in DOS. Long filenames can be more descriptive, including longer filename extensions such as .jpeg, .tiff, .html, and .xhtml that are common on other operating systems, rather than specialized shortened names such as .jpg, .tif, .htm, or .xht. The standard has been common with File Allocation Table (FAT) filesystems since its first implementation in Windows NT 3.5 of 1994.

Open Enterprise Server (OES) is a server operating system published by Novell in March 2005 to succeed their NetWare product.

The NetWare Core Protocol (NCP) is a network protocol used in some products from Novell, Inc. It is usually associated with the client-server operating system Novell NetWare which originally supported primarily MS-DOS client stations, but later support for other platforms such as Microsoft Windows, the classic Mac OS, Linux, Windows NT, Mac OS X, and various flavors of Unix was added.

Remote Initial Program Load is a protocol for starting a computer and loading its operating system from a server via a network. Such a server runs a network operating system such as LAN Manager, LAN Server, Windows NT Server, Novell NetWare, LANtastic, Solaris or Linux.

Computer hardware or software is said to be bug compatible if it exactly replicates even an undesirable feature of a previous version. The phrase is found in the Jargon File.

<span class="mw-page-title-main">Personal NetWare</span>

NetWare Lite and Personal NetWare are a series of discontinued peer-to-peer local area networks developed by Novell for DOS- and Windows-based personal computers aimed at personal users and small businesses in the 1990s.

<span class="mw-page-title-main">MSCDEX</span>

MSCDEX or Microsoft CD-ROM Extensions is a software program produced by Microsoft and included with MS-DOS 6.x and certain versions of Windows to provide CD-ROM support. Earlier versions of MSCDEX since 1986 were installable add-ons for MS-DOS 3.1 and higher.

<span class="mw-page-title-main">GroupWise</span> Messaging and collaborative software platform

GroupWise is a messaging and collaboration platform from Micro Focus that supports email, calendaring, personal information management, instant messaging, and document management. The GroupWise platform consists of desktop client software, which is available for Windows,, and the server software, which is supported on Windows Server and Linux.

DOS Protected Mode Services (DPMS) is a set of extended DOS memory management services to allow DPMS-enabled DOS drivers to load and execute in extended memory and protected mode.

<span class="mw-page-title-main">DR-WebSpyder</span> A graphical web browser for DOS and Linux

DR-WebSpyder is a DOS web browser, mail client and operating system runtime environment that was developed by Caldera UK in 1997. It was based on the DR-DOS operating system and networking components from Novell as well as the Arachne web browser by Michal Polák of xChaos software. The system was designed to run on low-end desktop systems, but being able to boot and execute from disk as well as from ROM or network, it was also tailored for x86-based thin clients and embedded systems with or without disk drives. Using the web browser as its principal user interface, it could be also used for kiosk systems and set-top boxes. Named Embrowser, it has been ported to Linux in 1999 and was called Embedix Browser since 2000.

References

  1. Dave Kearns (October 3, 2006). "Revelation: A NetWare Loadable Module that's still around". Computerworld .
  2. "Database server choices for NetWare". Computerworld .
  3. "Hands on: Getting Macs and PCs to play well together". Computerworld .
  4. Mark Foust (2001). NetWare Administration: NetWare 4.0-6.0.
  5. "Metrowerks website". Archived from the original on January 6, 2009.
  6. "NLM development under Linux".
  7. "NetWare Loadable Module Programming HOWTO".
  8. 1 2 "Novell to dress up Tuxedo and deliver 32-bit client". Network World : 141. March 27, 1995. Retrieved August 18, 2018.
  9. "Network Edition - Cover Story". PC Magazine : NE27. October 24, 1995. Retrieved August 18, 2018.
  10. "Netware Input/Output Subsystem".
  11. 1 2 Liebing, Edward A. (May 1, 1996). "NetWare Client 32 for DOS/Windows: Overview of Architecture and Features". Novell AppNotes. Novell. Archived from the original on August 18, 2018. Retrieved August 18, 2018.
  12. Hendrick, Ben (November 1, 1996). "Overview of NetWare Client 32 for Windows 95". Novell AppNotes. Novell. Archived from the original on August 18, 2018. Retrieved August 18, 2018.
  13. Paul, Matthias R. (July 30, 1997). NWDOS-TIPs Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP. Release 157 (in German) (3 ed.). Archived from the original on May 22, 2016. Retrieved January 11, 2012. (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.)

Further reading