Загружаемый модуль NetWare - NetWare Loadable Module
Расширение имени файла | .nlm |
---|---|
Магическое число | Загружаемый модуль NetWare |
Разработан | Novell |
Тип формата | Исполняемый, Общая библиотека |
А Загружаемый модуль NetWare (NLM) это загружаемый модуль ядра (а двоичный модуль кода), который можно загрузить в NetWare от Novell Операционная система. NLM могут реализовывать драйверы оборудования, серверные функции (например, кластеризацию), приложения (например, GroupWise ), системные библиотеки или утилиты.
Поддержка NLM началась с Intel 80386 -на основании NetWare версия 3.x. Предыдущие версии NetWare имели монолитную ядро, и значительные изменения оборудования или функциональности потребовали перекомпоновки ядра из объектных модулей.
Из-за проблем со стабильностью ранних NLM сторонних производителей они так и не стали популярными для программирования серверных приложений, за некоторыми исключениями, такими как антивирус программы, резервный программы и некоторые база данных продукты.
Функциональность
После загрузки NLM запрашивает ресурсы, такие как память и потоки процессов, у ядра NetWare. Ядро NetWare отслеживает такие запросы и может идентифицировать память и другие ресурсы, назначенные конкретному NLM. NLM могут автоматически загружать другие NLM, от которых они сами зависят.
Модули NLM могут регистрировать команды в ядре NetWare, расширяя словарь команд, доступный в приглашении консоли NetWare.
При правильном кодировании NLM можно повторно использовать, что позволяет загружать и запускать несколько экземпляров одного и того же кода.
Проблемы программирования
Первоначально Novell опубликовала набор средств разработки для программирования NLM, включая документацию по API ядра и Компилятор C (Watcom ), но сторонняя поддержка исполняемой функции NLM была очень ограниченной.
В ранних версиях NetWare (до v4.x) все процессы выполнялись в ядро адресное пространство без специальной защиты памяти. Следовательно, было возможно ошибки в NLM для перезаписи адресного пространства ядра или другого NLM и, в конечном итоге, сбоя сервера - в терминологии Novell, производной от мэйнфреймов, это было известно как ABEND или Аномальный КОНЕЦ.
Более того, NetWare использовала неперспективную или кооператив, модель многозадачности, означающая, что NLM должен был регулярно уступать ядру. NLM, выполняющий бесконечная петля, например, поэтому нельзя было остановить.
В NetWare v4.x Novell представила ограниченную форму защиты памяти, которая была расширена до Защищенные адресные пространства в NetWare v5.x. С помощью этих механизмов правильно закодированные NLM могут быть загружены в их собственное адресное пространство, а некорректные NLM могут быть предотвращены от нарушения целостности ядра.
Компиляторы
Официальные компиляторы, которые производят NLM:
- Компилятор Watcom C / C ++ / OpenWatcom
- Metrowerks Codewarrior для NetWare[1]
- EPC C / C ++
- Novell NLMLINK.EXE
Разработка NLM также возможна с помощью GNU cc и binutils.[2] Более подробная информация доступна в документе Мартин Хиннер по программированию загружаемых модулей NetWare.[3]
Клиентские NLM с NIOS
Объявлено в марте 1995 г.[4][5] Novell представила новую 32-битную DOS / Windows NetWare клиент (Клиент 32 на основе ODI32 / NIOS) в 1996 году, заменив прежний 16-разрядный клиент на основе ODI / VLM. Его компонент NIOS (Подсистема ввода-вывода NetWare[4][6][7]) использовали методы, аналогичные DPMS переместить и запустить NLM в защищенный режим и расширенная память чтобы уменьшить обычная память размер клиента уменьшается от 2 до 5 КБ.[8][6]
Смотрите также
использованная литература
- ^ «Сайт Metrowerks». Архивировано из оригинал на 2009-01-06.
- ^ «Разработка NLM под Linux».
- ^ "HOWTO по программированию загружаемых модулей NetWare".
- ^ а б «Novell нарядит смокинг и предоставит 32-битный клиент». Сетевой мир: 141. 1995-03-27. Получено 2018-08-18.
- ^ "Сетевое издание - История с обложки". Журнал ПК: NE27. 1995-10-24. Получено 2018-08-18.
- ^ а б Либинг, Эдвард А. (1996-05-01). «Клиент NetWare 32 для DOS / Windows: Обзор архитектуры и функций». Примечания к приложениям Novell. Novell. В архиве из оригинала 2018-08-18. Получено 2018-08-18.
- ^ Хендрик, Бен (1996-11-01). «Обзор NetWare Client 32 для Windows 95». Примечания к приложениям Novell. Novell. В архиве из оригинала 2018-08-18. Получено 2018-08-18.
- ^ Пол, Матиас Р. (1997-07-30). NWDOS-TIPs - Советы и приемы для Novell DOS 7, с подробностями, исправлениями и обходными путями Blick auf undokumentierte. MPDOSTIP. Выпуск 157 (на немецком языке) (3-е изд.). В архиве из оригинала от 22.05.2016. Получено 2012-01-11. (NB. NWDOSTIP.TXT - это комплексная работа над Novell DOS 7 и OpenDOS 7.01, включая описание многих недокументированных функций и внутренних компонентов. Он является частью еще более обширной коллекции автора MPDOSTIP.ZIP, поддерживаемой до 2001 года и распространенной в то время на многих сайтах. Предоставленная ссылка указывает на старую версию файла NWDOSTIP.TXT, преобразованную в HTML.)
дальнейшее чтение
- Дэвис, Ральф (1991). Руководство программиста NetWare 386. Эддисон-Уэсли. ISBN 978-0-201-57709-9.
- «Документация для разработчиков Novell: загружаемый модуль Netware». Архивировано из оригинал в 2009-11-24. Получено 2010-09-25.