Linux Kernel Modülü Programlama

        Linux tabanlı işletim sistemlerinde yüzlerce hazır modüller vardır. Örneğin defaultta yüklü olarak gelen donanımlara ait sürücüler(driver) gibi…Bunlar dışında bir modül de geliştirilip eklenebilir veya ihtiyaç olmadığı anda modül kaldırılabilir.
        Modüllere özgü “insmod , rmmod , modprobe, lsmod ,modinfo “ gibi komutlar vardır.
Bu yazımızda kullanıcıdan alınan 2 sayıyı toplayıp Kernel ekranına yazdıran bir modül oluşturacağız.
  1. Öncelikle modüllerimizi bulunduracağımız bir klasör oluşturmalıyız. Bunun içinde mkdir yazıp klasör adını girelim. Daha sonra cd yazıp klasörün adını yazarak klasörün içine giriş yapıyoruz.
  2. Aynı işlemi bir kez daha yapıp bu sefer toplama işlemi yapacağımız bir klasör açalım ve içine giriş yapalım. 

  3.   gedit  Toplam.c yazarak toplama işlemini yaptıracağımız metin dosyasına giriş yapalım. Daha sonrasında resimdeki gibi kodumuzu yazalım.  

















►Modüle_param(değişken,tip,izinler) C deki scanf görevini görür. Tüm izinleri vermek  için “0” yazmak gerekir.
►Modüle_parm_desc(değişken,mesaj) ise alınacak değer için mesaj gönderme işlemi için kullanılır.
►Module_init modülün başlandığı , Module_exit ise modülün kapandığı zaman içine yazılan fonksiyonları tetikler.

  4.  Kodumuzu yazdıktan sonra gedit Makefile diyerek makefile dosyamızı oluşturuyoruz.obj ve KDIR içeriğini kendi sistemimize/klasörümüze göre uygun hale getirelim.

      

5.  Sıra geldi modülün derlenmesine. Bunun içinde Toplam isimli klasörümüzün olduğu dizine gelip make yazalım. Daha sonrasında “ls” yazarak oluşan dosyaları görebiliriz




 6. Modülümüz oluştuktan sonra “sudo -i” yazarak root haline geçelim ve dosyaların olduğu   dizine gelip “insmod Toplam.ko sayi1=10 sayi2=20” yazarak çalıştıralım. Sonrasında   “dmesg” yazarak kernel mesajını görebiliriz.
         



7.  Son olarak “lsmod” yazarak modülümüzün yüklendiğini görebiliriz.                                   


Yorumlar

Bu blogdaki popüler yayınlar