NetWare Loadable Module
একটি নেটওয়্যার লোডযোগ্য মডিউল (এন. এল. এম) হল একটি লোডযোগ্য কার্নেল মডিউল (একটি বাইনারি কোড মডিউল) যা নোভেলের নেটওয়্যার অপারেটিং সিস্টেমে লোড করা যেতে পারে। এন. এল. এম হার্ডওয়্যার ড্রাইভার, সার্ভার ফাংশন (যেমন এন. এল. এম) প্রয়োগ করতে পারে। ক্লাস্টারিং), অ্যাপ্লিকেশন (যেমন। গ্রুপওয়াইজ), সিস্টেম লাইব্রেরি বা ইউটিলিটি। এন. এল. এমগুলি ইন্টেল 80386-ভিত্তিক নেটওয়্যার সংস্করণ 3. x দিয়ে শুরু হয়েছিল। নেটওয়্যারের পূর্ববর্তী সংস্করণগুলিতে একটি একশিলা কার্নেল ছিল এবং উল্লেখযোগ্য হার্ডওয়্যার বা কার্যকারিতা পরিবর্তনের জন্য অবজেক্ট মডিউল থেকে কার্নেলকে পুনরায় সংযুক্ত করার প্রয়োজন ছিল। প্রাথমিক তৃতীয় পক্ষের এন. এল. এম-এর স্থিতিশীলতার সমস্যার কারণে, অ্যান্টিভাইরাস প্রোগ্রাম, ব্যাকআপ প্রোগ্রাম এবং নির্দিষ্ট ডাটাবেস পণ্যের মতো কয়েকটি ব্যতিক্রম ছাড়া এগুলি সার্ভার অ্যাপ্লিকেশন প্রোগ্রামিংয়ের জন্য কখনই জনপ্রিয় হয়নি। কার্যকারিতা লোড করার পরে, একটি এন. এল. এম নেটওয়্যার কার্নেল থেকে মেমরি এবং প্রসেস থ্রেডের মতো সংস্থানগুলির জন্য অনুরোধ করে। নেটওয়্যার কার্নেল এই ধরনের অনুরোধগুলি ট্র্যাক করে এবং একটি নির্দিষ্ট এন. এল. এম-এর জন্য নির্ধারিত মেমরি এবং অন্যান্য সংস্থানগুলি সনাক্ত করতে পারে। এন. এল. এমগুলি অন্যান্য এন. এল. এমগুলিকে স্বয়ংক্রিয়ভাবে লোড করতে পারে যার উপর তারা নিজেরাই নির্ভর করে। এন. এল. এমগুলি নেটওয়্যার কার্নেলের সাথে কমান্ডগুলি নিবন্ধিত করতে পারে, যা নেটওয়্যার কনসোল প্রম্পটে উপলব্ধ কমান্ড শব্দভাণ্ডারকে প্রসারিত করে। সঠিকভাবে কোড করা হলে, এন. এল. এমগুলি পুনরায় প্রবেশ করতে পারে, যা একই কোডের একাধিক দৃষ্টান্তকে লোড এবং চালানোর অনুমতি দেয়। প্রোগ্রামিং সমস্যাগুলি প্রাথমিকভাবে, নোভেল কার্নেল এপিআই ডকুমেন্টেশন এবং একটি সি কম্পাইলার (ওয়াটকম) সহ এন. এল. এম প্রোগ্রামিংয়ের জন্য একটি উন্নয়ন টুলকিট প্রকাশ করেছিল, তবে এন. এল. এম এক্সিকিউটেবল ফাংশনের জন্য তৃতীয় পক্ষের সমর্থন খুব সীমিত ছিল। প্রারম্ভিক নেটওয়্যার সংস্করণগুলিতে (v4. x-এর আগে), সমস্ত প্রক্রিয়া নির্দিষ্ট মেমরি সুরক্ষা ছাড়াই কার্নেল অ্যাড্রেস স্পেসে কার্যকর করা হয়েছিল। তাই এন. এল. এম-এর বাগগুলির জন্য কার্নেল বা অন্যান্য এন. এল. এম-এর অ্যাড্রেস স্পেস ওভাররাইট করা এবং শেষ পর্যন্ত সার্ভারকে ক্র্যাশ করা সম্ভব ছিল-মেইনফ্রেম-উদ্ভূত উপন্যাস পরিভাষায়, এটি একটি এবি. ই. এন. ডি বা এ. বি. নরমাল এন্ড হিসাবে পরিচিত ছিল। উপরন্তু, নেটওয়্যার একটি অ-পূর্বনির্ধারিত, বা সমবায়, মাল্টিটাস্কিং মডেল ব্যবহার করেছিল, যার অর্থ একটি এন. এল. এম নিয়মিতভাবে কার্নেলকে দিতে হবে। উদাহরণস্বরূপ, একটি অসীম লুপ সম্পাদনকারী এন. এল. এম-কে তাই থামানো যায়নি। নেটওয়্যার v4. x-এ, নোভেল মেমরি সুরক্ষার একটি সীমিত রূপ প্রবর্তন করেছিলেন, যা নেটওয়্যার v5. x-এ সুরক্ষিত ঠিকানা স্থানগুলিতে প্রসারিত করা হয়েছিল। এই প্রক্রিয়াগুলির মাধ্যমে, সঠিকভাবে কোডেড এন. এল. এমগুলি তাদের নিজস্ব ঠিকানার জায়গায় লোড করা যেতে পারে এবং এন. এল. এমগুলির অসদাচরণ কার্নেলের অখণ্ডতার সাথে আপস করা থেকে প্রতিরোধ করা যেতে পারে। সংকলক এন. এল. এম তৈরি করে এমন অফিসিয়াল সংকলকগুলি হলঃ নেটওয়্যারের জন্য ওয়াটকম সি/সি + + সংকলক/ওপেনওয়াটকম মেট্রোওয়ার্কস কোডওয়ারিয়র ই. পি. সি সি/সি + + নভেল <আই. ডি1> এন. এল. এম উন্নয়ন জি. এন. ইউ সিসি এবং বাইনুটিলের মাধ্যমেও সম্ভব। আরও বিস্তারিত তথ্য মার্টিন হিনারের নেটওয়্যার লোডেবল মডিউল প্রোগ্রামিং হাউটো-তে পাওয়া যায়। 1995 সালের মার্চ মাসে এন. আই. ও. এস-এর সাথে ক্লায়েন্ট-সাইড এন. এল. এম ঘোষণা করে, নোভেল 1996 সালে একটি নতুন 32-বিট ডস/উইন্ডোজ নেটওয়্যার ক্লায়েন্ট (ও. ডি. আই. 32/এন. আই. ও. এস-এর উপর ভিত্তি করে ক্লায়েন্ট 32) চালু করে, যা ও. ডি. আই/ভি. এল. এম-এর উপর ভিত্তি করে প্রাক্তন 16-বিট ক্লায়েন্টকে প্রতিস্থাপন করে। এর এনআইওএস উপাদান (নেটওয়্যার আই/ও সাবসিস্টেম) ক্লায়েন্টের প্রচলিত মেমরি পদচিহ্নকে 2 থেকে 5 কেবি-তে নামিয়ে আনার জন্য সুরক্ষিত মোড এবং বর্ধিত মেমরিতে এন. এল. এম স্থানান্তর এবং চালানোর জন্য ডিপি. এম. এস-এর অনুরূপ কৌশল ব্যবহার করে। আরও দেখুন ভার্চ্যুয়াল লোডেবল মডিউল (ভি. এল. এম) রেফারেন্স আরও পড়া এক্সিকিউটেবল ফাইল ফরম্যাট নভেল নেটওয়্যার