Dikkat: Bu makalede belirtilen komutların ikisi de Linux merkezli CentOS Hem de Linux tabanlı ret Hat (RHEL) işletim sistemi.

Modül nedir?

Modüller, C programlama dili ile geliştirilmiş bir yazılımdır. Sıradan bir program gibi. Bu programlar çekirdeğe, Linux çekirdeğine eklenir ve çalışmaya hazır hale getirilir.

Sürücü yazılımı aslında bir modül. Örneğin, DVD oynatıcı gibi bir donanım aygıtının sürücü yazılımını göz önünde bulundurun. Bu sürücü, çekirdeğin işletim sistemi ile iletişim kurmasını ve çalışmasını sağlar.

Bu sürece çekirdek eklememiz gerekecek. Çekirdek değişiklikleri sonucunda, çekirdek yeniden derlenecek ve sistem yeniden başlatılacaktır. Bu, her zaman açık kalması gereken linux tabanlı bir sunucuysa, sorun olacaktır. Bu gibi durumlarda, modüller hayat kurtarır. Çünkü modülleri sistemi kapatmadan çalıştırabiliriz.

Linux tabanlı işletim sistemleri hazır modüllere sahiptir. Örneğin, varsayılan A sürücüsü modülüne yüklenen donanım sürücüleri de eklenebilir. Veya ihtiyaç ortaya çıkar çıkmaz modül kaldırılır ve çekirdek boyut olarak küçültülür.

Özel modüller “insmod""modeprobe""rmmod”,“lsmod”,“modinfo“Böyle araçlar var.

Sistemdeki Modüller

Çekirdek modüllerin dosya ve dizinleri “/ Lib / modüller”Sistem başlangıcında yüklenir.

Bu dizinin içeriği “ls -al / lib / modülleriGörülebilir komut.

linux centos kırmızı şapka rhel çekirdek modül konumu
Çekirdek Modüllerinin Yeri ”

Donanım sürücüleri gibi dosyalar bu dizinin altında bulunur ve modüller.ko"Uzantı. Örneğin, bazı modüller aşağıda listelenmiştir.

.ko uzantılı linux centos kırmızı şapka rhel modülü dosyaları
.Ko uzantılı Modül Modül Dosyaları ”

Modül Bilgilerini Görüntüleme (modinfo Aracı)

Modüllerin bilgilerini görüntülemek için aşağıdaki komut kullanılır.

  • modinfo /home/nizam/module_name.ko (modülün yolu dosya uzantısıyla belirtilmelidir)

Bu komut aşağıda örneklenmiştir.

Modül bilgilerini görüntülemek için linux centos kırmızı şapka rhel modinfo komutu
Modül Modül Bilgisi ile Modül Öğrenme Modülü ”

Kurulu Modülleri Görüntüle (lsmod Aracı)

Kurulu modülleri görmek için aşağıdaki komutlardan birini kullanmanız gerekir.

Veya

Altında "lsmod”Komutu ile yüklenen modüller listelenmiştir.

linux centos kırmızı şapka rhel lsmod komutu
Üz Yüklü Modüllerin Listesi ”

Modülleri Çıkarma / Silme (rmmod Aracı)

Kullanılmayan modüller aşağıdaki komutla silinebilir.

  • rmmod module_name (modül_adı_2 modülü_adı_3)

Silmek istediğiniz modül diğer modüller tarafından kullanılıyorsa, bir hata verecektir. Modül kullanılmazsa silinir.

Modülü bağımlı modüller ile birlikte çıkarmak istiyorsanız “-R“Parametresi ile birliktemodprobe -rKomut komutu kullanılıyor.

Modülleri Çekirdeğe Takma (insmod / modprobe Araçları)

Çekirdeğe farklı işlevler eklemek için modüller yazılabilir. Bu modüller sistemi kapatmadan çekirdeğe de eklenebilir.

Aşağıdaki yapı komutu kullanır.

  • modprobe module_name.ko (sadece modül adını belirtin)
  • modprobe module_name (sadece modül adını belirtin)

Veya

  • insmod /home/nizam/module_name.ko (modülün yolu dosya uzantısıyla belirtilmelidir)

Bazı modüller kurulu olan diğer modüllere bağlıdır. Bu nedenle, bazı modüller kurulursa, kurulum başarılı olur. Bağımlı modüller kurulmamışsa, insmod komutu başarısız olur. Bu durumda, bağımlı modülleri tek tek elle, yani elle yüklemek veya bu rahatsızlığı önlemek için modprobe aracını kullanmak gerekir. Çünkü modprobe bu modülleri otomatik olarak arar ve depmod komutu tarafından geliştirilen veritabanında yükler.

İnsmod komutunda, modülün yolu dosya uzantısıyla belirtilmelidir. Ancak, modprobe komutunda, sadece modül adını belirtin.

Parametreler gerekliyse, parametreler aşağıdaki gibi gönderilebilir.

  • modprobe module_name.ko param = parametre1 param = parametre2

Modülleri Düzenleme

/Etc/modprobe.conf dosyası, modprobe komutunun çalışmasını kontrol eden çeşitli parametreleri belirtmek için kullanılır. Örneğin,

  • Daha uygun adlara sahip modülleri kullanmamızı sağlayan takma adlar (takma ad)
  • Yükleme aşamasında otomatik olarak modüle geçecek parametreler (varsayılan)
  • Bir modül yüklendiğinde veya kaldırıldığında çalıştırılacak Bash komutları

İsteklerinizi bu dosyadan yerine getirebilirsiniz.

Örnek: Basit Bir Çekirdek Modülü Yazma

1. Masaüstünde “module ünde” adlı bir klasör oluşturun. İz nizammodul.c isinde adlı bir dosya oluşturun ve aşağıdaki komutları dosya içeriğine yazın.

#Dahil etmek // tüm çekirdek modüllerinde kullanılır

#Dahil etmek // printk için kullanılır

#Dahil etmek // __init ve __exit makroları için dahil edildi

MODULE_AUTH ("sipariş");

MODULE_DESCRIPTIO ("networkkampus_modul");

statik int __init Instagram Hesabındaki Resim ve Videoları hello_init

{

printk (KERN_INFO "Merhaba Networkkampus İnsanları! n");

0 döndür; // Sıfır olmayan dönüş, modülün yüklenemediği anlamına gelir.

}

static void __exit Instagram Hesabındaki Resim ve Videoları hello_cleanup

{

printk (KERN_INFO “Modül siliniyor… n”);

}

module_init (hello_init);

module_exit (hello_cleanup);

Bu örnekte;

linux / module.h: Bu başlık dosyası tüm çekirdek modüllerinde kullanılır.

linux / kernel.h: Bu başlık dosyası printk () işlevinde kullanılır.

printk (), C printf () 'ye benzer ancak çekirdek düzeyinde ekran baskısı için kullanılır. Ekrana çıkış yapmıyor, “/ Var / log / mesajlar”Dosya veya veyadmesgGörülebilir komut.

linux centos kırmızı şapka rhel kernele basit bir modül yazma
Yazma C Diliyle Çekirdeğe Basit Bir Modül Yazmak ”

2. Modülü masaüstünde oluşturulan “ulan” isimli klasörde derlemek için “Makefile için” adında bir dosya oluşturun ve aşağıdaki komutları yazın.

obj-m + = nizammodul.o

herşey:

make-C / lib / modülleri / $ (kabuk uname -r) / build M = $ (PWD) modülleri

temiz:

-C / lib / modülleri / $ (kabuk uname -r) / build M = $ (PWD) temizleyin

linux centos kırmızı şapka rhel çekirdek modul derleme
Yazma, C dilinde yazılmış bir modül derlemek için bir dosya dosyası yazmak ”

3. Şimdi terminal ekranındaki “make” komutunu aynı klasörde kullanıp derleyelim.

kırmızı şapka ile linux centos kernele modülü derleme yapmak rhel
“Modül'ü çekirdek komutu ile make komutuyla derlemek”

Derlemeden sonra, klasörde 7 dosya daha vardı. Toplam 9 dosya vardı.

kırmızı şapka rhel ile derledikten sonra linux centos yapmak
“Make komutuyla derledikten sonra”

Yine aynı klasörde “modinfo nizammodul.koYeni modülümüzü ”komutu ile kontrol edelim.

Modül bilgilerini görüntülemek için linux centos kırmızı şapka rhel modinfo komutu
“Modinfo komutu yeni eklenen modül hakkında bilgi edinmek için

Gördüğün gibi bağımlılık yapan, “nizammodul.ko”Adlandırılmış yazar“tüzük“Hangisi ve“networkkampus_modulModül, açıklamalı bir modül oluşturduk.

4. Şimdi modülümüzü “insmod” komutu ile ekleyelim.

linux centos kırmızı şapka rhel insmod komutu
“Insmod Command ile Çekirdeğe Modül Yükleme”

Kurulum sırasında “kök”. Modülümüzün yüklenip yüklenmediğine bir bakalım. Bunun için "lsmod | grep“Komut.

linux centos kırmızı şapka rhel lsmod komutu
“Lsmod Komutuyla Kurulan Modülleri Görüntüleme”

Gördüğünüz gibi, modülümüz yüklü. İyi "nizammodul.c"Dosya C dili yazdığımız komutları Yani programımız doğru çalışıyor mu? Bunun içindmesg | kuyruk -1“Komut.

linux centos kırmızı şapka rhel dmesg komut örneği
Mu C de yazdığımız modüldeki printk komutu çalışıyor mu? ”

İşte "kuyruk -1"Parametre"Son satırı göster!“. Canlı görmek istiyorsanız canlıkuyruk -f / / var / log / mesajlarKomutu var. Böylece "rmmod nizammodul.koModül ”command“ ile silindiğindeModül siliniyor…“,“insmod /home/nizam/Desktop/module/nizammodul.ko”Komutu kullanıldığında daMerhaba Ağ Kampüsü İnsanları!”Mesaj anlık olarak ekrana düşecek.

(tToTranslate) ağ kursları (t) ccna eğitimi (t) ingilizce cisco eğitimi (t) ağ sistemleri (t) bilgisayar ağları (t) ağ (t) linux eğitimi (t) ipsec (t) voip (t) DID (t) FCT (t) kırmızı çizgi dersleri (t) centos dersleri (t) linux komutları (t) ağ protokolleri (t) ağ türleri (t) ağ aygıtları