Загружаемые модули NetWare - NLM
                                                                        

            Загружаемые модули  NetWare,  NLM (NetWare Loadable Module),
       представляют собой фундаментальную часть многих версий операцион-
       ной системы NetWare.  Многие из предусмотренных в NetWare базовых
       средств имеют вид NLM-модулей.

            Один из способов улучшения эффективности в  NetWare  состоит
       организации работы без вытеснения. Это означает, что приложения и
       сама операционная система работают в большинстве случаев без воз-
       можности прерывания их другими приложениями.  Предполагается, что
       приложения правильно используют системные ресурсы.

            NetWare не  заботит  проблема организации очередей готовых к
       выполнению процессов и обеспечения механизмов  плавного  перехода
       от одного процесса к следующему.  Эта операционную систему беспо-
       коят следующие вопросы:

            - Планирование.
            - Стеки протоколов передачи данных.
            - Управление памятью.
            - Доступ к файловой системе.
            - Блокировка файлов и записей.
            - Обработка протокола NCP (NetWare Core Protocol).
            - Функции маршрутизации.
            - Управление системным кешем.
            - Интерфейс с драйверами устройств.
            - Отслеживание транзакций.

            Используя преимущества  адресации  процессоров  386  и 486 и
       многозадачные возможности,  NetWare работает также  в  защищенном
       режиме ЦП.  В защищенном режиме память адресуется как один непре-
       рывный диапазон адресов.  Такая простая модель памяти делает  уп-
       равление  памятью  и ее распределение более гибким и эффективным.
       Так как вся память представляет собой один сегмент,  отпадает не-
       обходимость переключаться между сегментами памяти. Выделение час-
       тей памяти ограничивается только объемом  доступной  памяти.  При
       работе в реальной режиме (в отличие от защищенного) единичное вы-
       деление памяти ограничивается 64К,  так как сегмент имеет ограни-
       чение размера в 64К.

            Другим преимуществом защищенного режима является возможность
       одновременного запуска нескольких программ.  Это часто называется
       многозадачностью.  В операционной среде NetWare каждая задача или
       процесс называется "нитью", и NetWare использует все преимущества
       многозадачности, допуская и даже поощряя мультинитевое программи-
       рование. Однонитевый модуль NLM найти очень трудно.

            В своей выполняемой  форме  модуль  NLM  представляет  собой
       файл,  загружаемый  и выполняемый на NetWare-cервере операционной
       системой NetWare. Он может называться также, как любой другой вы-
       полняемый  файл  DOS,  но имеет расширение .NLM,  .DSK,  .NAM или
       .LAN. NLM с расширением .NLM обычно обеспечивает какое-то служеб-
       ное средство или представляет собой утилиту. Именно такой вид NLM
       чаще используется при программировании.  NLM с расширением .DSK -
       это  драйверы  диска,  файлы .NAM - это NLM пространства имен,  а
       файлы .LAN - это драйверы сетевых интерфейсных плат. Исходный код
       NLM аналогичен любому другому исходному коду на языке Си. Требуе-
       мые для NLM файлы включают в себя:

            - PRELUDE.OBJ;
            - файл определений (.DEF);
            - Исходные файлы на языке Си.

            Файл PRELUDE.OBJ компонуется с NLM и обеспечивает код иници-
       ализации и стандартную функциональность ANSI Си.  Здесь обрабаты-
       ваются такие вещи, как аргументы этапа выполнения и идентификация
       процедуры main().

            Файл определений  для NLM представляет собой текстовый файл,
       используемый для указания директив компиляции и компоновки и  за-
       дания для NLM некоторой описательной информации.

            Так как операционная система NetWare не использует  вытесне-
       ния или выгрузки,  то она не особенно беспокоится об отслеживании
       поведения работающего в данный момент NLM.  NetWare избавлена  от
       непроизводительных издержек на отслеживания  того,  какой  модуль
       NLM  в  данный момент работает,  с каким приоритетом и как долго.
       Она отслеживает такие моменты,  но не  за  исключение  экстренных
       случаев не налагает ограничений. В большинстве случаев операцион-
       ная система NetWare полагается на то, что все NLM ведут себя пра-
       вильно,  и что они использую ЦП, периодически освобождая его. Это
       позволяет самой NetWare работать более эффективно.

            Один из  самых  общих  моментов,  которые вы должны знать об
       NLM,  это то,  что они работают вместе  с  операционной  системой
       NetWare. Это означает, что они в большинстве случает имеют доступ
       к той же памяти и используют тот же ЦП.  Вы можете выделить  свой
       собственный стек,  распределить переменные и память.  Можно также
       использовать набор библиотек,  предлагающих многие функции, кото-
       рые  вы можете выполнять.  С их помощью вы можете запрашивать ин-
       формацию ли услуги операционной системы NetWare.