Un módulo cargable de NetWare [ 1 ] [ 2 ] [ 3 ] ( NLM ) es un módulo de núcleo cargable (un módulo de código binario ) que se puede cargar en el sistema operativo NetWare de Novell . Los NLM pueden implementar controladores de hardware, funciones de servidor (por ejemplo, clústeres), aplicaciones (por ejemplo, GroupWise ), bibliotecas del sistema o utilidades.
Las NLM fueron compatibles a partir de la versión 3.x de NetWare basada en Intel 80386. Las versiones anteriores de NetWare tenían un núcleo monolítico , y los cambios significativos de hardware o funcionalidad requerían volver a enlazar el núcleo desde los módulos objeto.
Debido a problemas de estabilidad con los primeros NLM de terceros, nunca llegaron a popularizarse para la programación de aplicaciones de servidor, con pocas excepciones como programas antivirus , programas de copia de seguridad y ciertos productos de bases de datos .
Funcionalidad
Al cargarse, un NLM solicita recursos, como memoria e hilos de proceso, al núcleo de NetWare. El núcleo de NetWare realiza un seguimiento de estas solicitudes y puede identificar la memoria y otros recursos asignados a un NLM específico. Los NLM pueden cargar automáticamente otros NLM de los que dependen.
Los NLM pueden registrar comandos en el núcleo de NetWare, ampliando así el vocabulario de comandos disponible en la consola de NetWare.
Cuando se programan correctamente, los NLM pueden ser reentrantes, lo que permite cargar y ejecutar múltiples instancias del mismo código.
Problemas de programación
Inicialmente, Novell publicó un kit de herramientas de desarrollo para la programación de NLM que incluía documentación de la API del kernel y un compilador de C ( Watcom ), pero el soporte de terceros para la función ejecutable de NLM era muy limitado.
En las primeras versiones de NetWare (anteriores a la v4.x), todos los procesos se ejecutaban en el espacio de direcciones del kernel , sin protección de memoria específica. Por lo tanto, era posible que errores en los NLM sobrescribieran el espacio de direcciones del kernel o de otros NLM y, en última instancia, provocaran el fallo del servidor ; en la terminología de Novell, derivada de los mainframes, esto se conocía como ABEND o ABnormal END .
Además, NetWare utilizaba un modelo de multitarea no preemptivo o cooperativo , lo que significa que un NLM debía ceder el control al núcleo periódicamente. [ 4 ] Por lo tanto , un NLM que ejecutaba un bucle infinito , por ejemplo, no podía detenerse.
En NetWare v4.x, Novell introdujo una forma limitada de protección de memoria, que se extendió a los espacios de direcciones protegidos en NetWare v5.x. Mediante estos mecanismos, los NLM codificados correctamente pueden cargarse en su propio espacio de direcciones, y se puede evitar que los NLM con un comportamiento anómalo comprometan la integridad del kernel.
Compiladores
Los compiladores oficiales que producen NLM son:
- Compilador C/C++ de Watcom / OpenWatcom
- Metrowerks CodeWarrior para NetWare [ 5 ]
- EPC C/C++
- Novell NLMLINK.EXE
El desarrollo de NLM también es posible con GNU cc y binutils. [ 6 ] Se pueden encontrar más detalles en NetWare Loadable Module Programming HOWTO de Martin Hinner. [ 7 ]
NLM del lado del cliente con NIOS
Anunciado en marzo de 1995, [ 8 ] [ 9 ] Novell introdujo un nuevo cliente NetWare de 32 bits para DOS/Windows ( Cliente 32 basado en ODI32/NIOS) [ 10 ] en 1996, reemplazando al anterior cliente de 16 bits basado en ODI /VLM. Su componente NIOS ( Subsistema de E/S de NetWare [ 8 ] [ 11 ] [ 12 ] ) utilizó técnicas similares a DPMS para reubicar y ejecutar NLM en modo protegido y memoria extendida con el fin de reducir la huella de memoria convencional del cliente a 2 a 5 KB. [ 13 ] [ 11 ]
Véase también
- Módulo virtual cargable (VLM)
Referencias
- ↑ Dave Kearns (3 de octubre de 2006). "Revelation: Un módulo cargable de NetWare que todavía existe" . Computerworld .
- ↑ "Opciones de servidor de base de datos para NetWare" . Computerworld .
- ↑ "En la práctica: Cómo lograr que las Mac y las PC funcionen bien juntas" . Computerworld .
- ↑ Mark Foust (2001). Administración de NetWare: NetWare 4.0-6.0 .
- ↑ "Sitio web de Metrowerks" . Archivado del original el 6 de enero de 2009.
- ↑ "Desarrollo de NLM bajo Linux" .
- ↑ "Manual de programación de módulos cargables de NetWare" .
- 1 2 "Novell vestirá Tuxedo y entregará un cliente de 32 bits" . Network World : 141. 27 de marzo de 1995. Recuperado el 18 de agosto de 2018 .
- ↑ "Edición en red - Artículo de portada" . PC Magazine : NE27. 24 de octubre de 1995. Consultado el 18 de agosto de 2018 .
- ↑ "Subsistema de entrada/salida de Netware" .
- 1 2 Liebing, Edward A. (1 de mayo de 1996). "NetWare Client 32 para DOS/Windows: Descripción general de la arquitectura y las características" . Novell AppNotes . Novell . Archivado del original el 18 de agosto de 2018. Recuperado el 18 de agosto de 2018 .
- ↑ Hendrick, Ben (1 de noviembre de 1996). "Descripción general de NetWare Client 32 para Windows 95" . Novell AppNotes . Novell . Archivado del original el 18 de agosto de 2018. Recuperado el 18 de agosto de 2018 .
- ^ Paul, Matthias R. (30 de julio de 1997). NWDOS-TIP : consejos y trucos para Novell DOS 7, con un clic para deshacer detalles, errores y soluciones . Versión 157 (en alemán) (3 ed.). Archivado desde el original el 22 de mayo de 2016 . Consultado el 11 de enero de 2012 .
{{cite book}}:|work=ignorado ( ayuda ) (Nota: NWDOSTIP.TXT es una obra exhaustiva sobre Novell DOS 7 y OpenDOS 7.01 , que incluye la descripción de muchas características y aspectos internos no documentados. Forma parte de la colección MPDOSTIP.ZIP del autor, aún más extensa, que se mantuvo hasta 2001 y se distribuyó en muchos sitios en aquel entonces. El enlace proporcionado apunta a una versión anterior del archivo NWDOSTIP.TXT convertida a HTML).
Lecturas adicionales
- Davis, Ralph (1991). Guía del programador de NetWare 386. Addison-Wesley . ISBN 978-0-201-57709-9.
- "Documentación para desarrolladores de Novell: Módulo cargable de Netware" . Archivado del original el 24 de noviembre de 2009. Consultado el 25 de septiembre de 2010 .
- Formatos de archivos ejecutables
- NetWare