NetWare 로드 가능 모듈
NetWare Loadable Module파일 이름 확장명 | .nlm |
---|---|
매직넘버 | NetWare 로드 가능 모듈 |
개발자 | Novell |
형식 유형 | 실행 파일, 공유 라이브러리 |
NetWare Loadable Module[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은 커널 API 문서와 C 컴파일러(Watcom)를 포함한 NLM 프로그래밍을 위한 개발 툴킷을 발표했지만, NLM 실행 기능에 대한 타사 지원은 매우 제한적이었다.
초기 NetWare 버전(v4.x 이전)에서는 모든 프로세스가 특정 메모리 보호 없이 커널 주소 공간에서 실행되었다.따라서 NLM의 버그가 커널 또는 다른 NLM의 주소 공간을 덮어쓰고 결국 서버를 파괴하는 것이 가능했다. 메인프레임에서 파생된 Novell 용어에서는 이것을 ABEND 또는 AB정상 END라고 한다.
또한 NetWare는 사전 예방적이거나 협력적인 멀티태스킹 모델을 사용했는데, 이는 NLM이 커널에 정기적으로 양보해야 한다는 것을 의미한다.[4]예를 들어 무한 루프를 실행하는 NLM은 따라서 중지할 수 없다.
NetWare v4.x에서 Novell은 제한된 형태의 메모리 보호를 도입했으며, 이는 NetWare v5.x의 보호 주소 공간으로 확장되었다.이러한 메커니즘을 통해 적절하게 코드화된 NLM을 자신의 주소 공간에 적재할 수 있으며, 잘못된 행동을 하는 NLM은 커널 무결성을 훼손하는 것을 방지할 수 있다.
컴파일러스
NLM을 생산하는 공식 컴파일러는 다음과 같다.
- Watcom C/C++ 컴파일러 / OpenWatcom
- NetWare용[5] Codewarrior 메트로웨르크
- EPC C/C++
- Novell NLMLINK.EXE
NLM 개발은 GNU cc, binutil로도 가능하다.[6]자세한 내용은 Martin Hinner의 NetWare Loadable Module Programming HowTO에서 확인할 수 있다.[7]
NIOS가 있는 클라이언트 측 NLM
1995년 3월 이를 발표하면서 Novell은 1996년에 새로운 32비트 DOS/Windows NetWare 클라이언트(ODI32/NIOS 기반 클라이언트 32)[10]를 도입하여 ODI/VLM 기반 16비트 클라이언트를 대체하였다.[8][9]NIOS 컴포넌트(NetWare I/O Subsystem[8][11][12])는 클라이언트의 기존 메모리 설치 공간을 2~5KB로 줄이기 위해 보호 모드와 확장 메모리에서 NLM을 재배치하고 실행하기 위해 DPMS와 유사한 기술을 사용했다.[13][11]
참고 항목
참조
- ^ Dave Kearns (October 3, 2006). "Revelation: A NetWare Loadable Module that's still around". Computerworld.
- ^ "Database server choices for NetWare". Computerworld.
- ^ "Hands on: Getting Macs and PCs to play well together". Computerworld.
- ^ Mark Foust (2001). NetWare Administration: NetWare 4.0-6.0.
- ^ "Metrowerks website". Archived from the original on January 6, 2009.
- ^ "NLM development under Linux".
- ^ "NetWare Loadable Module Programming HOWTO".
- ^ a b "Novell to dress up Tuxedo and deliver 32-bit client". Network World: 141. March 27, 1995. Retrieved August 18, 2018.
- ^ "Network Edition - Cover Story". PC Magazine: NE27. October 24, 1995. Retrieved August 18, 2018.
- ^ "Netware Input/Output Subsystem".
- ^ a b Liebing, Edward A. (May 1, 1996). "NetWare Client 32 for DOS/Windows: Overview of Architecture and Features". Novell AppNotes. Novell. Archived from the original on August 18, 2018. Retrieved August 18, 2018.
- ^ Hendrick, Ben (November 1, 1996). "Overview of NetWare Client 32 for Windows 95". Novell AppNotes. Novell. Archived from the original on August 18, 2018. Retrieved August 18, 2018.
- ^ Paul, Matthias R. (July 30, 1997). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP. Release 157 (in German) (3 ed.). Archived from the original on May 22, 2016. Retrieved January 11, 2012. (NB. NWDOSTIP).TXT는 Novell DOS 7과 OpenDOS 7.01에 대한 포괄적인 작품으로, 많은 미등록 기능 및 내부 기능에 대한 설명을 포함한다.그것은 저자의 더 큰 MPDOSTIP.Z의 일부분이다.IP 콜렉션은 2001년까지 유지되었고 그 당시 많은 사이트에 배포되었다.제공된 링크는 HTML 변환 NWDOSTIP의 이전 버전을 가리킨다.TXT 파일).
추가 읽기
- Davis, Ralph (1991). NetWare 386 Programmer's Guide. Addison-Wesley. ISBN 978-0-201-57709-9.
- "Novell Developer Documentation: Netware Loadable Module". Archived from the original on November 24, 2009. Retrieved September 25, 2010.