NetWare Loadable Module
ನೆಟ್ವೇರ್ ಲೋಡೆಬಲ್ ಮಾಡ್ಯೂಲ್ (ಎನ್ಎಲ್ಎಂ) ಎಂಬುದು ನೋವೆಲ್ನ ನೆಟ್ವೇರ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗೆ ಲೋಡ್ ಮಾಡಬಹುದಾದ ಲೋಡ್ ಮಾಡಬಹುದಾದ ಕರ್ನಲ್ ಮಾಡ್ಯೂಲ್ (ಬೈನರಿ ಕೋಡ್ ಮಾಡ್ಯೂಲ್) ಆಗಿದೆ. ಎನ್ಎಲ್ಎಂಗಳು ಹಾರ್ಡ್ವೇರ್ ಚಾಲಕರು, ಸರ್ವರ್ ಕಾರ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು (ಉದಾ. ಕ್ಲಸ್ಟರಿಂಗ್), ಅಪ್ಲಿಕೇಶನ್ಗಳು (ಉದಾಹರಣೆಗೆ. ಗ್ರೂಪ್ ವೈಸ್), ಸಿಸ್ಟಮ್ ಲೈಬ್ರರಿಗಳು ಅಥವಾ ಉಪಯುಕ್ತತೆಗಳು. ಇಂಟೆಲ್ 80386-ಆಧಾರಿತ ನೆಟ್ವೇರ್ ಆವೃತ್ತಿ 3. x ನಿಂದ ಪ್ರಾರಂಭಿಸಿ ಎನ್ಎಲ್ಎಂಗಳನ್ನು ಬೆಂಬಲಿಸಲಾಯಿತು. ನೆಟ್ವೇರ್ನ ಹಿಂದಿನ ಆವೃತ್ತಿಗಳು ಏಕಶಿಲೆಯ ಕರ್ನಲ್ ಅನ್ನು ಹೊಂದಿದ್ದವು, ಮತ್ತು ಗಮನಾರ್ಹ ಯಂತ್ರಾಂಶ ಅಥವಾ ಕಾರ್ಯಕ್ಷಮತೆಯ ಬದಲಾವಣೆಗಳಿಗೆ ಆಬ್ಜೆಕ್ಟ್ ಮಾಡ್ಯೂಲ್ಗಳಿಂದ ಕರ್ನಲ್ ಅನ್ನು ಮರು-ಜೋಡಿಸುವ ಅಗತ್ಯವಿತ್ತು. ಆರಂಭಿಕ ಥರ್ಡ್-ಪಾರ್ಟಿ ಎನ್ಎಲ್ಎಂಗಳೊಂದಿಗಿನ ಸ್ಥಿರತೆಯ ಸಮಸ್ಯೆಗಳಿಂದಾಗಿ, ಆಂಟಿವೈರಸ್ ಪ್ರೋಗ್ರಾಂಗಳು, ಬ್ಯಾಕ್ಅಪ್ ಪ್ರೋಗ್ರಾಂಗಳು ಮತ್ತು ಕೆಲವು ಡೇಟಾಬೇಸ್ ಉತ್ಪನ್ನಗಳಂತಹ ಕೆಲವು ವಿನಾಯಿತಿಗಳೊಂದಿಗೆ ಅವು ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ಗೆ ಎಂದಿಗೂ ಜನಪ್ರಿಯವಾಗಲಿಲ್ಲ. ಕಾರ್ಯಕ್ಷಮತೆ ಲೋಡ್ ಮಾಡಿದ ನಂತರ, ಎನ್ಎಲ್ಎಂ ನೆಟ್ವೇರ್ ಕರ್ನಲ್ನಿಂದ ಮೆಮೊರಿ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯ ಎಳೆಗಳಂತಹ ಸಂಪನ್ಮೂಲಗಳನ್ನು ವಿನಂತಿಸುತ್ತದೆ. ನೆಟ್ವೇರ್ ಕರ್ನಲ್ ಅಂತಹ ವಿನಂತಿಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಎನ್ಎಲ್ಎಂಗೆ ನಿಯೋಜಿಸಲಾದ ಮೆಮೊರಿ ಮತ್ತು ಇತರ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಗುರುತಿಸಬಹುದು. ಎನ್ಎಲ್ಎಂಗಳು ತಾವು ಅವಲಂಬಿಸಿರುವ ಇತರ ಎನ್ಎಲ್ಎಂಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲೋಡ್ ಮಾಡಬಹುದು. ಎನ್ಎಲ್ಎಂಗಳು ನೆಟ್ವೇರ್ ಕರ್ನಲ್ನೊಂದಿಗೆ ಆಜ್ಞೆಗಳನ್ನು ನೋಂದಾಯಿಸಿಕೊಳ್ಳಬಹುದು, ಇದು ನೆಟ್ವೇರ್ ಕನ್ಸೋಲ್ ಪ್ರಾಂಪ್ಟ್ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ಕಮಾಂಡ್ ಶಬ್ದಕೋಶವನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ. ಸರಿಯಾಗಿ ಕೋಡೆಡ್ ಮಾಡಿದಾಗ, ಎನ್ಎಲ್ಎಂಗಳು ಮರು-ಪ್ರವೇಶಿಸಬಹುದು, ಒಂದೇ ಕೋಡ್ನ ಅನೇಕ ನಿದರ್ಶನಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಚಲಾಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸಮಸ್ಯೆಗಳು ಆರಂಭದಲ್ಲಿ, ನೋವೆಲ್ ಕರ್ನಲ್ ಎಪಿಐ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಮತ್ತು ಸಿ ಕಂಪೈಲರ್ (ವಾಟ್ಕಾಮ್) ಸೇರಿದಂತೆ ಎನ್ಎಲ್ಎಂ ಪ್ರೋಗ್ರಾಮಿಂಗ್ಗಾಗಿ ಅಭಿವೃದ್ಧಿ ಟೂಲ್ಕಿಟ್ ಅನ್ನು ಪ್ರಕಟಿಸಿತು, ಆದರೆ ಎನ್ಎಲ್ಎಂ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಕಾರ್ಯಕ್ಕಾಗಿ ಥರ್ಡ್-ಪಾರ್ಟಿ ಬೆಂಬಲವು ತುಂಬಾ ಸೀಮಿತವಾಗಿತ್ತು. ಆರಂಭಿಕ ನೆಟ್ವೇರ್ ಆವೃತ್ತಿಗಳಲ್ಲಿ (v4. x ಗಿಂತ ಮೊದಲು), ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ಮೆಮೊರಿ ರಕ್ಷಣೆಯಿಲ್ಲದೆ ಕರ್ನಲ್ ವಿಳಾಸ ಜಾಗದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತಿತ್ತು. ಆದ್ದರಿಂದ ಎನ್ಎಲ್ಎಂಗಳಲ್ಲಿನ ದೋಷಗಳು ಕರ್ನಲ್ ಅಥವಾ ಇತರ ಎನ್ಎಲ್ಎಂನ ವಿಳಾಸ ಸ್ಥಳವನ್ನು ತಿದ್ದಿ ಬರೆಯಲು ಮತ್ತು ಅಂತಿಮವಾಗಿ ಸರ್ವರ್ ಅನ್ನು ಕ್ರ್ಯಾಶ್ ಮಾಡಲು ಸಾಧ್ಯವಾಯಿತು-ಮುಖ್ಯ ಚೌಕಟ್ಟಿನಿಂದ ಪಡೆದ ಹೊಸ ಪರಿಭಾಷೆಯಲ್ಲಿ, ಇದನ್ನು ಎಬಿಇಎನ್ಡಿ ಅಥವಾ ಎಬಿ ನಾರ್ಮಲ್ ಎಂಡ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತಿತ್ತು. ಇದಲ್ಲದೆ, ನೆಟ್ವೇರ್ ಪೂರ್ವಭಾವಿ ಅಥವಾ ಸಹಕಾರಿ, ಬಹುಕಾರ್ಯಕ ಮಾದರಿಯನ್ನು ಬಳಸಿತು, ಅಂದರೆ ಕರ್ನಲ್ಗೆ ನಿಯಮಿತವಾಗಿ ಇಳಿಯಲು ಎನ್ಎಲ್ಎಂ ಅಗತ್ಯವಿದೆ. ಉದಾಹರಣೆಗೆ, ಅನಂತ ಲೂಪ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಎನ್ಎಲ್ಎಂ ಅನ್ನು ನಿಲ್ಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನೆಟ್ವೇರ್ v4. x ನಲ್ಲಿ, ನೋವೆಲ್ ಸೀಮಿತ ರೀತಿಯ ಮೆಮೊರಿ ರಕ್ಷಣೆಯನ್ನು ಪರಿಚಯಿಸಿತು, ಇದನ್ನು ನೆಟ್ವೇರ್ v5. x ನಲ್ಲಿ ಸಂರಕ್ಷಿತ ವಿಳಾಸ ಸ್ಥಳಗಳಿಗೆ ವಿಸ್ತರಿಸಲಾಯಿತು. ಈ ಕಾರ್ಯವಿಧಾನಗಳ ಮೂಲಕ, ಸರಿಯಾಗಿ ಕೋಡೆಡ್ ಮಾಡಲಾದ ಎನ್ಎಲ್ಎಂಗಳನ್ನು ಅವುಗಳ ಸ್ವಂತ ವಿಳಾಸದ ಜಾಗಕ್ಕೆ ಲೋಡ್ ಮಾಡಬಹುದು ಮತ್ತು ಕೆರ್ನಲ್ ಸಮಗ್ರತೆಗೆ ಧಕ್ಕೆಯಾಗದಂತೆ ಎನ್ಎಲ್ಎಂಗಳನ್ನು ತಪ್ಪಾಗಿ ವರ್ತಿಸುವುದನ್ನು ತಡೆಯಬಹುದು. ಕಂಪೈಲರ್ಗಳು ಎನ್ಎಲ್ಎಂಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಅಧಿಕೃತ ಕಂಪೈಲರ್ಗಳೆಂದರೆಃ ವಾಟ್ಕಾಮ್ ಸಿ/ಸಿ + + ಕಂಪೈಲರ್/ಓಪನ್ ವಾಟ್ಕಾಮ್ ಮೆಟ್ರೋವರ್ಕ್ಸ್ ಕೋಡ್ ವಾರಿಯರ್ ಫಾರ್ ನೆಟ್ವೇರ್ ಇಪಿಸಿ ಸಿ/ಸಿ + + ನೋವೆಲ್ NLMLINK.EXE ಎನ್ಎಲ್ಎಂ ಅಭಿವೃದ್ಧಿಯು ಗ್ನೂ ಸಿಸಿ ಮತ್ತು ಬಿನುಟಿಲ್ಗಳೊಂದಿಗೆ ಸಹ ಸಾಧ್ಯವಿದೆ. ಮಾರ್ಟಿನ್ ಹಿನ್ನರ್ ಅವರ ನೆಟ್ವೇರ್ ಲೋಡೆಬಲ್ ಮಾಡ್ಯೂಲ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಹೌಟೊದಲ್ಲಿ ಹೆಚ್ಚಿನ ವಿವರಗಳು ಲಭ್ಯವಿವೆ. 1995ರ ಮಾರ್ಚ್ನಲ್ಲಿ ಎನ್ಐಓಎಸ್ನೊಂದಿಗೆ ಕ್ಲೈಂಟ್-ಸೈಡ್ ಎನ್ಎಲ್ಎಂಗಳನ್ನು ಘೋಷಿಸಿದ ನೋವೆಲ್, 1996ರಲ್ಲಿ ಹೊಸ 32-ಬಿಟ್ ಡಾಸ್/ವಿಂಡೋಸ್ ನೆಟ್ವೇರ್ ಕ್ಲೈಂಟ್ (ಕ್ಲೈಂಟ್ 32 ಆಧಾರಿತ ಒಡಿಐ 32/ಎನ್ಐಒಎಸ್) ಅನ್ನು ಪರಿಚಯಿಸಿತು, ಇದು ಒಡಿಐ/ವಿಎಲ್ಎಂ ಆಧಾರಿತ ಹಿಂದಿನ 16-ಬಿಟ್ ಕ್ಲೈಂಟ್ ಅನ್ನು ಬದಲಾಯಿಸಿತು. ಅದರ ಎನ್ಐಒಎಸ್ ಘಟಕವು (ನೆಟ್ವೇರ್ ಐ/ಒ ಸಬ್ಸಿಸ್ಟಮ್) ಕ್ಲೈಂಟ್ನ ಸಾಂಪ್ರದಾಯಿಕ ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತನ್ನು 2 ರಿಂದ 5 ಕೆಬಿಗೆ ಇಳಿಸುವ ಸಲುವಾಗಿ ಎನ್ಎಲ್ಎಂಗಳನ್ನು ಸಂರಕ್ಷಿತ ಕ್ರಮದಲ್ಲಿ ಮತ್ತು ವಿಸ್ತೃತ ಮೆಮೊರಿಯಲ್ಲಿ ಸ್ಥಳಾಂತರಿಸಲು ಮತ್ತು ಚಲಾಯಿಸಲು ಡಿಪಿಎಂಎಸ್ನಂತಹ ತಂತ್ರಗಳನ್ನು ಬಳಸಿತು. ವರ್ಚುವಲ್ ಲೋಡೆಬಲ್ ಮಾಡ್ಯೂಲ್ (ವಿಎಲ್ಎಂ) ಉಲ್ಲೇಖಗಳನ್ನು ಸಹ ನೋಡಿ ಮತ್ತಷ್ಟು ಓದುವಿಕೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಕಡತ ಸ್ವರೂಪಗಳು ನೊವೆಲ್ ನೆಟ್ವೇರ್