دستور rmmod در لینوکس

دستور rmmod در لینوکس

عضو اصلی هر سیستم عامل لینوکسی هسته ی آن است. هسته (kernel) مدیریت منابع سیستم را به عهده دارد و نقش واسط ببین سخت افزار و نرم افزار کامپیوتر را ایفا می کند.


 هسته لینوکس نرم افزاری است که ساختاری ماژولار دارد. یک ماژول هسته قطعه کدی است که عملکرد هسته را گسترش می دهد.

ماژولها را می توان به صورت قابل load شدن کامپایل کرد و یا به صورت موجود در هسته. ماژولهای قابل load روی هسته ی در حال کار می توانند بسته به درخواست به صورت داینامیک احضار و همچنین ترخیص شوند بدون اینکه نیاز به ریبوت وجود داشته باشد. در این مطلب قصد بررسی دستور rmmod در لینوکس را داریم که به ما امکان حذف ماژولها از روی هسته را می دهد.

 

سینتکس عادی برای دستور rmmod به صورت زیر است:

 
    rmmod [OPTIONS] MODULE_NAME...

در سیستم های لینوکسی مدرن rmmod بخشی از kmod است که باینری است و برنامه های متعددی را برای مدیریت ماژولهای هسته لینوکس اجرا می کند. تنها کاربرانی که سطح دسترسی ادمین دارند می توانند ماژولها را حذف کنند. شما می توانید با استفاده از دستور lsmod لیست ماژولهای لود شده روی سیستمتان را مشاهده کنید. ماژولهای هسته در دایرکتوری /lib/modules/ وجود دارند. حذف یک ماژول با استفاده از rmmod کار بسیار ساده ای است. به سادگی ابتدا دستور سپس نام ماژول را وارد کنید و ماژول حذف می شود:

 
    rmmod module_name

دقت کنید که پس از انجام هیچ پیامی نخواهید گرفت مگر در صورت نا موفق بودن عملیات، مانند حالتی که ماژول دیگری در حال استفاده از ماژول مورد نظر شما باشد.

 
    rmmod: ERROR: Module module_name is in use by: module_name_2

برای نمایش اطلاعات درباره اینکه دستور چه کاری انجام می دهد از دستور و آپشن -v (--verbose) استفاده کنید. در صورتی که می خواهید ماژولی را حذف کنید که در حال استفاده است یا به منظور حذف شدن طراحی نشده می توانید از دستور و آپشن -f (--verbose) استفاده کنید. استفاده از این آپشن می تواند به شدت خطرناک باشد و حتی باعث کرش سیستم شود. rmmod همچنین ماژولهای متعدد به عنوان آرگومان را نیز قبول می کند:

 
    rmmod module_name1 module_name2

جلوگیری از ماژول هسته در زمان بوت وقتی ماژولی به وسیله rmmod حذف شود تا زمان ریبوت شدن سیستم unload باقی می ماند سپس در هنگام بوت بعدی سیستم ماژول مجدد load می شود. برای اینکه ماژول هسته را از load شدن هنگام بوت حذف نمایید، یک فایل .conf بسازید با هر نامی که در آدرس etc modprobe.d وجود دارد. سینتکس آن به صورت زیر است:

 
    blacklist module_name