ماژول ها در لینوکس همانند درایور در ویندوز هستند و وظیفه برقراری ارتباط بین سخت افزار نصب شده با سیستم عامل را بر عهده دارند. مدیریت ماژول های کرنل لینوکس میتواند بر نحوه کلی عملکرد سیستم شما تاثیرگذار باشد و در لینوکس برای اینکه حجم کرنل افزایش پیدا نکند ماژول ها را در یک فایل جداگانه ای با پسوند ko. در مسیر lib/modules/ ذخیره میکنند. جداسازی ماژول ها از کرنل در لینوکس دارای چندین مزیت است از جمله:
1-مصرف حافظه(Memory) کمتر : زمانیکه این قابلیت وجود داشته باشد که شما بتوانید یک ماژول را فعال یا غیرفعال نمایید در حقیقت شما میتوانید فقط ماژول های مورد استفاده را load نمایید و این کار تاثیر بسزایی در مصرف حافظه دارد.
2-عیب یابی آسان تر : اگر تمامی ماژول ها بصورت پیش فرض جزیی از کرنل بودند و یک ماژول دچار مشکل شود، قطعا کل سیستم شما تحت تاثیر قرار میگرفت و این امر باعث میشد که سیستم عامل شما حتی بوت هم نشود.در آن زمان پیدا کردن مشکل کاری سخت خواهد بود به این علت که شما باید کل هسته لینوکس را بررسی کنید تا ایراد را برطرف کنید. اما با جداسازی ماژول ها از کرنل فقط آن ماژول با خطا مواجه میشود و شما سریعا از این موضوع مطلع خواهید شد.
3-با هر تغییر در یک ماژول نیازی نیست که شما مجدد کرنل را کامپایل کنید و این خیلی کار مدیران سیستم را راحت میکند به این علت که کامپایل کردن و مجدد لود کردن آن در سیستم ممکن است ایرادات زیادی ایجاد نماید.
حال که با ماهیت ماژول های کرنل لینوکس آشنا شده ایم زمان آن رسیده است که مدیریت این ماژول ها را در سیستم با استفاده از دستورات مرتبط با آن از قبیل rmmod, insmod, modinfo ,modprobe و lsmod انجام دهیم.
دستور lsmod در لینوکس
در مقاله ای جداگانه دستور lsmod در لینوکس را بررسی کرده ایم اما بصورت کلی این دستور لیستی از ماژول های فعال در سیستم را به شما نمایش میدهد همانند زیر:
دستور modinfo در لینوکس
همانطور که از اسم این دستور مشخص است به شما اطلاعاتی مانند آدرس فایل مربوطه، مورد استفاده، ورژن یا سایر موارد در مورد یک ماژول میدهد. با استفاده از دستور lsmod همانند بالا شما لیستی از ماژول های سیستم میتوانید مشاهده کنید. سپس نام ماژول مد نظرتان را در ادامه این دستور وارد نمایید همانند زیر تا اطلاعات مربوط به این ماژول را به شما نمایش دهد.
دستور rmmod در لینوکس
یکی از ویژگی های مهمه لینوکس این است که شما میتوانید ماژولی که از آن استفاده ندارید را از کرنل حذف کنید تا منابع به آن اختصاص نیابد و منابع برای کارهای دیگر ذخیره شود. با استفاده از دستور rmmod در لینوکس شما میتوانید یک ماژول را از لیست ماژول های فعال سیستم حذف کنید. این دستور تا زمانیکه خطایی در حین انجام کار ایجاد نشود پیغامی به شما نمایش نمیدهد و میتوانید با استفاده از پارامتر v- اطلاعات بیشتری در حین انجام کار مشاهده نمایید.
دستور insmod در لینوکس
همانطور که شما میتوانید یک ماژول را غیرفعال کنید و منابع به آن اختصاص نیابد، میتوانید یک ماژول را مجدد فعال نمایید. دستور insmod در لینوکس وظیفه فعالسازی یک ماژول را در لینوکس بر عهده دارد اما تنها نکته ای که وجود دارد این است که اگر یک ماژول وابستگی هایی(Dependency) به سایر ماژول ها داشته باشد باید اول آنها را فعال نمایید و ماژول شما فعال نمیگردد تا زمانیکه تمامی وابستگی ها نیز فعال باشد. برای اینکه این مشکل برطرف گردد و شما نیازی نباشد تا بصورت تکی ماژول ها را فعال نمایید دستور دیگری جهت فعال سازی ماژول ها در لینوکس وجود دارد بنام modprobe که این دستور وابستگی های یک ماژول را بررسی میکند و سپس جهت فعالسازی، همگی آنها را فعال می نماید.
دستور modprobe در لینوکس دارای پارامترهای کاربردی برای اطلاع از وضعیت ماژول در اختیار شما قرار میدهد که به صورت خلاصه در این مطلب چند مورد از آنها را برای شما بررسی میکنیم.
مدیریت ماژول ها در لینوکس بوسیله modprobe در لینوکس
دستور modprobe در لینوکس بصورت هوشمندانه اقدام به حذف یا اضافه کردن یک ماژول در لینوکس میکند و همچنین پارامترهای مفید دیگری هم دارد که شما میتوانید با استفاده از آن مدیریت ماژول های لینوکسی را بهتر انجام دهید.
نصب ماژول به همراه وابستگی ها در لینوکس
اگر شما دستور modprobe را بدون هیچ پارامتری در خط فرمان وارد نمایید سیستم عامل اقدام به نصب یک ماژول به همراه وابستگی ها در لینوکس خواهد کرد.
حذف یک ماژول به وسیله modprobe
با استفاده از دستور modprobe میتوانید یک ماژول را از کرنل لینوکس حذف نمایید. این دستور به همراه پارامتر r- میتواند یک ماژول را از کرنل حذف نماید.
مشاهده وابستگی های(Dependecy) یک ماژول
دستور modprobe به همراه show-depends– لیستی از وابستگی های یک ماژول را به شما نمایش میدهد همانند تصویر زیر:
لازم به ذکر است که تمامی موارد ذکر شده تا الان فقط تا قبل از ریبوت کردن سیستم عامل معتبر می باشد و پس از اینکه شما سیستم خود را ری استارت کنید تنظیماتی که انجام داده اید همگی حذف خواهد شد. برای اینکه این تنظیمات بصورت دائمی اعمال شود باید به مسیر etc/modprobe.d/ رفته و در فایل blacklist.conf لیست ماژول هایی که نمیخواهید کلا در کرنل فعال گردد را وارد نمایید.