NetWare Yüklenebilir Modül - NetWare Loadable Module
Dosya adı uzantısı |
.nlm
|
---|---|
sihirli sayı | NetWare Yüklenebilir Modülü |
Tarafından geliştirilmiş | roman |
Biçim türü | Yürütülebilir , Paylaşılan kitaplık |
Bir NetWare Yüklenebilir Modülü ( NLM ) bir olduğunu yüklenebilir kernel modülü (bir ikili yüklenebilir kod modülü) Novell NetWare işletim sistemi. NLM'ler donanım sürücülerini, sunucu işlevlerini (örneğin kümeleme), uygulamaları (örneğin GroupWise ), sistem kitaplıklarını veya yardımcı programları uygulayabilir .
NLM'ler, Intel 80386 tabanlı NetWare 3.x sürümünden başlayarak desteklendi . NetWare'in önceki sürümlerinde monolitik bir çekirdeğe sahipti ve önemli donanım veya işlevsellik değişiklikleri, çekirdeğin nesne modüllerinden yeniden bağlanmasını gerektiriyordu.
İlk üçüncü taraf NLM'lerle ilgili kararlılık sorunları nedeniyle, virüsten koruma programları, yedekleme programları ve belirli veritabanı ürünleri gibi birkaç istisna dışında sunucu uygulama programlaması için hiçbir zaman popüler olmadılar .
işlevsellik
Yükleme üzerine, bir NLM, NetWare çekirdeğinden bellek ve işlem iş parçacıkları gibi kaynakları ister. NetWare çekirdeği bu tür istekleri izler ve belirli bir NLM'ye atanan belleği ve diğer kaynakları tanımlayabilir. NLM'ler, bağımlı oldukları diğer NLM'leri otomatik olarak yükleyebilir.
NLM'ler, NetWare konsol isteminde bulunan komut sözlüğünü genişleterek, komutları NetWare çekirdeğine kaydedebilir.
Düzgün kodlandığında, NLM'ler yeniden girebilir ve aynı kodun birden çok örneğinin yüklenmesine ve çalıştırılmasına izin verir.
Programlama sorunları
Başlangıçta Novell, çekirdek API belgeleri ve bir C derleyicisi ( Watcom ) dahil olmak üzere NLM programlaması için bir geliştirme araç takımı yayınladı , ancak NLM yürütülebilir işlevi için üçüncü taraf desteği çok sınırlıydı.
Erken NetWare sürümlerinde (v4.x'ten önce), tüm işlemler belirli bellek koruması olmadan çekirdek adres alanında yürütülürdü . Bu nedenle , NLM'lerdeki hataların , çekirdeğin veya diğer NLM'nin adres alanının üzerine yazması ve nihayetinde sunucuyu çökertmesi mümkün oldu - anabilgisayardan türetilen Novell terminolojisinde bu, ABEND veya ABnormal END olarak biliniyordu .
Ayrıca NetWare, önleyici olmayan veya işbirlikçi bir çoklu görev modeli kullandı; bu, çekirdeğe düzenli olarak veri sağlamak için bir NLM'nin gerekli olduğu anlamına geliyordu. Örneğin sonsuz bir döngü yürüten bir NLM bu nedenle durdurulamadı.
Novell , NetWare v4.x'te, NetWare v5.x'teki Korumalı Adres Alanlarına genişletilen sınırlı bir bellek koruması biçimini tanıttı. Bu mekanizmalar sayesinde, düzgün kodlanmış NLM'ler kendi adres alanlarına yüklenebilir ve hatalı çalışan NLM'lerin çekirdek bütünlüğünden ödün vermeleri önlenebilir.
derleyiciler
NLM üreten resmi derleyiciler şunlardır:
- Watcom C/C++ derleyicisi / OpenWatcom
- NetWare için Metrowerks Codewarrior
- EPC C/C++
- Novell NLMLINK.EXE
NLM geliştirme, GNU cc ve binutils ile de mümkündür. Daha fazla ayrıntı, Martin Hinner tarafından hazırlanan NetWare Yüklenebilir Modül Programlama NASIL belgesinde mevcuttur.
NIOS ile istemci tarafı NLM'ler
Bunu Mart 1995'te duyuran Novell, 1996'da yeni bir 32-bit DOS/Windows NetWare istemcisini ( ODI32/NIOS tabanlı İstemci 32 ) tanıttı ve ODI /VLM tabanlı eski 16-bit istemcinin yerini aldı . Bu NIOS bileşen ( NetWare I / O alt sistemi ) 'e benzer kullanılan teknikler DPMS yeniden konumlandırmak ve çalıştırmak NLMS için korumalı mod ve genişletilmiş bellek azaltmak için geleneksel bellek 5 kb, 2 aşağı doğru müşterinin ayak izi.
Ayrıca bakınız
- Sanal Yüklenebilir Modül (VLM)
Referanslar
daha fazla okuma
- Davis, Ralph (1991). NetWare 386 Programcı Kılavuzu . Addison-Wesley . ISBN'si 978-0-201-57709-9.
- "Novell Geliştirici Belgeleri: Netware Yüklenebilir Modülü" . Arşivlenmiş orijinal 24 Kasım 2009 tarihinde . 25 Eylül 2010'da alındı .