stringtranslate.com

Módulo cargable NetWare

Un módulo cargable 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, agrupamiento), aplicaciones (por ejemplo, GroupWise ), bibliotecas del sistema o utilidades.

Los NLM comenzaron a ser compatibles con 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 vincular el núcleo desde los módulos de objetos.

Debido a problemas de estabilidad con los primeros NLM de terceros, nunca se volvieron populares para la programación de aplicaciones de servidor, con pocas excepciones como programas antivirus , programas de respaldo y ciertos productos de bases de datos .

Funcionalidad

Al cargarse, un NLM solicita recursos, como memoria y subprocesos de proceso, del núcleo NetWare. El núcleo NetWare realiza un seguimiento de dichas 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 con el kernel de NetWare, ampliando el vocabulario de comandos disponible en el indicador de la consola de NetWare.

Cuando se codifican 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 NLM que incluía documentación de API del núcleo y un compilador de C ( Watcom ), pero el soporte de terceros para la función ejecutable NLM era muy limitado.

En las primeras versiones de NetWare (anteriores a v4.x), todos los procesos se ejecutaban en el espacio de direcciones del núcleo , sin protección de memoria específica. Por lo tanto, era posible que los errores en los NLM sobrescribieran el espacio de direcciones del núcleo o de otros NLM y, en última instancia, provocaran un bloqueo del servidor (en la terminología de Novell derivada de mainframe, esto se conocía como ABEND o ABnormal END) .

Además, NetWare utilizó un modelo multitarea no preventivo o cooperativo , lo que significa que se requería que un NLM cediera el paso al núcleo regularmente. [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. A través de estos mecanismos, los NLM codificados correctamente se pueden cargar en su propio espacio de direcciones y se puede evitar que los NLM con mal funcionamiento comprometan la integridad del núcleo.

Compiladores

Los compiladores oficiales que producen NLM son:

El desarrollo de NLM también es posible con GNU cc y binutils. [6] Hay más detalles disponibles en NetWare Loadable Module Programming HOWTO de Martin Hinner. [7]

NLM del lado del cliente con NIOS

En marzo de 1995, [8] [9] Novell presentó un nuevo cliente NetWare DOS/Windows de 32 bits (Client 32 basado en ODI32/NIOS) [10] en 1996, reemplazando al anterior cliente de 16 bits basado en ODI /VLM. Su componente NIOS ( NetWare I/O Subsystem [8] [11] [12] ) utilizaba técnicas similares a DPMS para reubicar y ejecutar NLM en modo protegido y memoria extendida para reducir la huella de memoria convencional del cliente a entre 2 y 5 KB. [13] [11]

Véase también

Referencias

  1. ^ Dave Kearns (3 de octubre de 2006). "Revelation: Un módulo cargable de NetWare que todavía existe". Computerworld .
  2. ^ "Opciones de servidores de bases de datos para NetWare". Computerworld .
  3. ^ "Manos a la obra: Cómo lograr que los Mac y los PC funcionen bien juntos". Computerworld .
  4. ^ Mark Foust (2001). Administración de NetWare: NetWare 4.0-6.0 .
  5. ^ "Sitio web de Metrowerks". Archivado desde el original el 6 de enero de 2009.
  6. ^ "Desarrollo de NLM bajo Linux".
  7. ^ "CÓMO programar módulos cargables NetWare".
  8. ^ ab "Novell vestirá a Tuxedo y ofrecerá un cliente de 32 bits". Network World : 141. 27 de marzo de 1995 . Consultado el 18 de agosto de 2018 .
  9. ^ "Network Edition - Cover Story". PC Magazine : NE27. 24 de octubre de 1995. Consultado el 18 de agosto de 2018 .
  10. ^ "Subsistema de entrada/salida de Netware".
  11. ^ ab 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 desde el original el 18 de agosto de 2018 . Consultado el 18 de agosto de 2018 .
  12. ^ Hendrick, Ben (1 de noviembre de 1996). «Descripción general de NetWare Client 32 para Windows 95». Novell AppNotes . Novell . Archivado desde el original el 18 de agosto de 2018 . Consultado el 18 de agosto de 2018 .
  13. ^ 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 ) (NB. NWDOSTIP.TXT es un trabajo exhaustivo sobre Novell DOS 7 y OpenDOS 7.01 , que incluye la descripción de muchas características y componentes internos no documentados. Es parte de la colección MPDOSTIP.ZIP aún más grande del autor, mantenida hasta 2001 y distribuida en muchos sitios en ese momento. El enlace provisto apunta a una versión anterior convertida a HTML del archivo NWDOSTIP.TXT).

Lectura adicional