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.
- Ö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.
- 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.
- 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.
►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.
Yorumlar
Yorum Gönder