Загружаемый модуль NetWare
Расширение имени файла |
.нлм |
---|---|
Магическое число | Загружаемый модуль NetWare |
Разработано | Новелл |
Тип формата | Исполняемый файл , Общая библиотека |
Загружаемый модуль NetWare [1] [2] [3] ( NLM ) — это загружаемый модуль ядра ( модуль двоичного кода), который можно загрузить в операционную систему Novell NetWare . 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 или ABnormal END .
Более того, NetWare использовала невытесняющую или кооперативную модель многозадачности, а это означает, что NLM должен был регулярно передавать данные ядру. [4] NLM, выполняющий бесконечный цикл Например, , не может быть остановлен.
В NetWare v4.x компания Novell представила ограниченную форму защиты памяти, которая была расширена до защищенных адресных пространств в NetWare v5.x. С помощью этих механизмов правильно закодированные NLM могут быть загружены в собственное адресное пространство, а неправильное поведение NLM может быть предотвращено от нарушения целостности ядра.
Составители
[ редактировать ]Официальными составителями, выпускающими NLM, являются:
- Компилятор Watcom C/C++ / OpenWatcom
- Metrowerks CodeWarrior для NetWare [5]
- EPC C/С++
- Novell NLMLINK.EXE
Разработка NLM также возможна с помощью GNU cc и binutils. [6] Более подробную информацию можно найти в HOWTO по программированию загружаемых модулей NetWare Мартина Хиннера. [7]
Клиентские NLM с NIOS
[ редактировать ]Объявив об этом в марте 1995 г. [8] [9] Novell представила новый 32-битный клиент DOS/Windows NetWare ( Клиент 32 на базе ODI32/NIOS). [10] в 1996 году, заменив прежний 16-битный клиент на базе ODI /VLM. Его компонент NIOS ( подсистема ввода-вывода NetWare). [8] [11] [12] ) использовал методы, аналогичные DPMS, для перемещения и запуска NLM в защищенном режиме и расширенной памяти , чтобы уменьшить объем обычной памяти клиента до 2–5 КБ. [13] [11]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Дэйв Кернс (3 октября 2006 г.). «Откровение: загружаемый модуль NetWare, который все еще существует» . Компьютерный мир .
- ^ «Выбор сервера базы данных для NetWare» . Компьютерный мир .
- ^ «Практическое занятие: как заставить Mac и ПК работать вместе» . Компьютерный мир .
- ^ Марк Фауст (2001). Администрирование NetWare: NetWare 4.0-6.0 .
- ^ «Сайт Metrowerks» . Архивировано из оригинала 6 января 2009 года.
- ^ «Разработка NLM под Linux» .
- ^ «HOWTO по программированию загружаемых модулей NetWare» .
- ^ Перейти обратно: а б «Novell усовершенствует Tuxedo и выпустит 32-битный клиент» . Сетевой мир : 141. 27 марта 1995 г. Проверено 18 августа 2018 г.
- ^ «Сетевое издание — история на обложке» . Журнал ПК : NE27. 24 октября 1995 года . Проверено 18 августа 2018 г.
- ^ «Подсистема сетевого ввода-вывода» .
- ^ Перейти обратно: а б Либинг, Эдвард А. (1 мая 1996 г.). «Клиент NetWare 32 для DOS/Windows: обзор архитектуры и функций» . Заметки о приложении Novell . Новелл . Архивировано из оригинала 18 августа 2018 года . Проверено 18 августа 2018 г.
- ^ Хендрик, Бен (1 ноября 1996 г.). «Обзор NetWare Client 32 для Windows 95» . Заметки о приложении Novell . Новелл . Архивировано из оригинала 18 августа 2018 года . Проверено 18 августа 2018 г.
- ^ Пол, Матиас Р. (30 июля 1997 г.). NWDOS-TIPs — Советы и рекомендации по Novell DOS 7 с учетом недокументированных подробностей, ошибок и обходных путей . Выпуск 157 (на немецком языке) (3-е изд.). Архивировано из оригинала 22 мая 2016 года . Проверено 11 января 2012 г.
{{cite book}}
:|work=
игнорируется ( помощь ) (Примечание. 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» . Архивировано из оригинала 24 ноября 2009 года . Проверено 25 сентября 2010 г.