14 Ekim 2017 Cumartesi

LİNUX KERNELDE İKİ SAYIYI TOPLAYAN MODÜL PROGRAMLAMA



“ sudo –i ” komutuyla yönetici girişi yapıyoruz.



" cd /home/terzi " komutunu yazarak o dizine gidiyoruz. Dikkat edin terzi benim bilgisayarımın adı siz sizinkine göre değiştirin.



" mkdir modules " komutuyla terzi uzantısında modules adlı dosya oluşturuyoruz. Bu arada terminalde clear yazarak ekranı temizleyebilirsiniz.



“ cd modules ” yazarak oluşturduğumuz dosyanın içine giriyoruz.




“ gedit sum.c ” yazarak modules dosyasının içinde sum.c isimli dosya oluşturuyoruz ve içine giriyoruz. İçinde c ye çok benzeyen kodlarla tasarım yapıcaz.



“gedit sum.c ”yazdıktan sonra beyaz bir gedit ekranı açıldı. İçine bu kodları yazıyoruz ve kaydediyoruz.

İnclude = Kütüphaneleri yazıyoruz. Kernel.h kütüphanesi kernelde kullandığımız için yazıyoruz. Module.h       kütüphanesi ise modülleri kullanacağımız için yazıyoruz.
Module_param = Bu modül bize kullanıcıdan sayı almamızı sağlayacak.
Module_init= Bu modül ise oluşturduğumuz modülü kernele tanıtacak.
Module_exit= Bu modül ise tanıttığımız modülü kernelden geri alacak.





“ make ” komutunu kullanarak derlemeye başlıyoruz.



” make ” komutuyla birlikte modules klasöründe bu dosyalar oluştu.





“ insmod sum.ko n1=26 n2=13” yazarak modülümü kernele tanıtıyorum. İnsmod tanıtma komutu .

sum.ko tanıtılacak dosyanın ismi. n1 ve n2 hatırlarsınız sum.c dosyamızdaki toplama yapmak için aldığımız int değerinde parametrelerdi.



“ dmesg ” yazarak kernelin verdiği debug mesajlarını görüntülüyoruz.





Gördüğünüz gibi modülümüz çalışmış ve girdiğimiz sayıları toplamış.




“ lsmod ” yazarak çalışır halde olan modülleri görebiliriz.




Sum modülü şu anda çalıştığı için görebiliyoruz.





“ rmmod sum.ko ” yazarak çalışır halde olan sum modülümüzü kernelden alıyoruz.




Tekrardan dmesg komutunu yazarak mesajlara baktık ve modülden çıktığımızı bize yazdığını gördük.