LINUX KERNEL PROGRAMMING EĞİTİMİ

Çekirdeğin içine kod yazın

Yüklenebilir modüller, karakter aygıt sürücüleri, kernel bellek ve senkronizasyon ile Linux çekirdeğinde profesyonel geliştirme

Yüklenebilir çekirdek modülleri, karakter aygıt sürücüleri, çekirdek bellek yönetimi, kesme işleme, eşzamanlılık ve ftrace ile hata ayıklamayı uygulamalı öğreten 5 günlük uzman düzey DVA eğitimi.

5 gün Uzman Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Kbuild'den aygıt sürücüsüne, çekirdek içi programlamayı derinlemesine işleyen uzman eğitimi

Linux Kernel Programming eğitimi, çekirdek alanında (kernel space) kod geliştirmeyi derinlemesine ele alır. Yüklenebilir çekirdek modülü (LKM) yazımı, Kbuild sistemi, çekirdek bellek yönetimi (kmalloc, vmalloc, slab), karakter aygıt sürücüleri, file_operations, ioctl, /proc ve sysfs arayüzleri, kesme işleme (IRQ) ve alt yarılar, eşzamanlılık için spinlock, mutex ve atomik işlemler, iş kuyrukları ve kernel zamanlayıcıları konularını kapsar. Katılımcı; printk ve ftrace ile hata ayıklama, çekirdek-kullanıcı alanı veri aktarımı ve güvenli modül geliştirme pratiği kazanır. İçerik gerçek sürücü örnekleriyle işlenir.

Süre ve Format

5 Gün. Her gün dört modül; her modülde teori sonrası kendi çekirdek modülünüzü derleyip yükleme laboratuvarı yapılır.

Seviye

Uzman Seviye — çekirdek modülü geliştirme, aygıt sürücüleri, bellek yönetimi, eşzamanlılık ve çekirdek hata ayıklama

Öğrenme Metodu

Her konu kendi yazdığınız çekirdek modülünü derleyip insmod ile yükleyerek ve dmesg ile izleyerek uygulanır.

Neden Bu Eğitim?

🧩Sürücü Geliştirme

Donanımla konuşan karakter aygıt sürücülerini sıfırdan yazabilir hale gelirsiniz.

🔒Güvenli Eşzamanlılık

Spinlock ve mutex ile yarış koşulu olmadan çekirdek kodu yazmayı öğrenirsiniz.

🔬Derin Teşhis

ftrace ve printk ile çekirdek içi davranışı izleyip hataları çözersiniz.

Anahtar Konular

linux kernel programlamaçekirdek modülü eğitimiaygıt sürücüsü geliştirmekernel modulecharacter driverkmalloc spinlockirq handlerftrace kprobes
“Çekirdekte her satır, tüm sistemin kararlılığından sorumludur.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
C Dili

İşaretçiler ve bellek yönetimi dahil iyi düzeyde C bilgisi gereklidir.

2
Linux Yönetimi

Komut satırı, derleme ve paket kurulumuna hakimiyet beklenir.

3
İşletim Sistemi

Süreç, bellek ve kesme gibi işletim sistemi temelleri faydalıdır.

4
Geliştirme VM

Çekirdeği denemek için feda edilebilir bir sanal makine önerilir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı; yüklenebilir çekirdek modülü yazıp Kbuild ile derlemeyi ve yüklemeyi öğrenir.
Modül 1
Kernel ve User Alanı
  • Kernel space ve user space ayrımı
  • Sistem çağrısı sınırı ve geçiş
  • Monolitik çekirdek ve modül mimarisi
  • Çekirdek sürüm ve API kararsızlığı
  • Lisans (GPL) ve sembol dışa aktarımı
  • Çekirdekte libc olmaması
Modül 2
İlk Modül
  • module_init ve module_exit makroları
  • printk ve log seviyeleri (KERN_INFO)
  • MODULE_LICENSE ve MODULE_AUTHOR
  • insmod, rmmod, lsmod kullanımı
  • modinfo ile modül bilgisi
  • dmesg ile çıktıyı izleme
Modül 3
Kbuild
  • obj-m ile hedef tanımlama
  • Kernel kaynak ağacına karşı derleme
  • make -C /lib/modules/.../build kalıbı
  • Modül bağımlılıkları (depmod)
  • Out-of-tree modül derleme
  • modprobe ve /etc/modules-load.d
Modül 4
Modül Parametreleri
  • module_param ile parametre tanımlama
  • MODULE_PARM_DESC ile açıklama
  • sysfs üzerinden parametre görünümü
  • Yükleme anında değer geçme
  • Dizi parametreleri
  • Çekirdek komut satırı etkisi
Günün hedefiKatılımcı; çekirdekte bellek ayırmayı ve kullanıcı alanıyla güvenli veri alışverişini öğrenir.
Modül 1
Ayırma API
  • kmalloc ve GFP bayrakları
  • kzalloc ile sıfırlanmış bellek
  • vmalloc ile sanal sürekli bellek
  • kmalloc ve vmalloc farkları
  • kfree ile serbest bırakma
  • Atomik bağlamda GFP_ATOMIC
Modül 2
Sayfa ve Slab
  • alloc_pages ve sayfa kavramı
  • Slab/SLUB ayırıcı mantığı
  • kmem_cache ile nesne önbelleği
  • get_free_pages kullanımı
  • Bellek bölgeleri (zones)
  • Yüksek bellek (highmem) kavramı
Modül 3
Veri Aktarımı
  • copy_to_user ve copy_from_user
  • Kullanıcı işaretçisine doğrudan erişim yasağı
  • Hata durumunda dönen bayt sayısı
  • get_user ve put_user makroları
  • Sınır kontrolü ve güvenlik
  • access_ok kavramı
Modül 4
Bellek Hataları
  • Oops ve kernel panic farkı
  • KASAN ile bellek hatası tespiti
  • Bellek sızıntısı ve kmemleak
  • Use-after-free riskleri
  • Çift kfree sorunları
  • dmesg ile çağrı yığını okuma
Günün hedefiKatılımcı; karakter aygıt sürücüsü yazıp /dev altında erişilebilir hale getirmeyi öğrenir.
Modül 1
Aygıt Numaraları
  • major ve minor numara kavramı
  • alloc_chrdev_region ile tahsis
  • cdev_init ve cdev_add
  • mknod ile aygıt düğümü
  • udev ile otomatik düğüm
  • Aygıt sınıfı (class) oluşturma
Modül 2
file_operations
  • open ve release geri çağrıları
  • read ile çekirdekten okuma
  • write ile aygıta yazma
  • llseek ile konumlandırma
  • struct file ve private_data
  • Referans sayımı ve eşzamanlı açma
Modül 3
ioctl
  • unlocked_ioctl geri çağrısı
  • _IOR, _IOW ioctl numara makroları
  • Komut doğrulama ve güvenlik
  • Argüman kopyalama (user pointer)
  • Aygıt yapılandırma komutları
  • 32/64 bit uyumluluk (compat_ioctl)
Modül 4
sysfs ve proc
  • proc_create ile /proc girişi
  • seq_file arayüzü ile okuma
  • sysfs attribute tanımlama
  • kobject ve öznitelik bağlama
  • Okunabilir/yazılabilir öznitelikler
  • debugfs ile hata ayıklama arayüzü
Günün hedefiKatılımcı; kesmeleri işlemeyi ve çekirdekte yarış koşullarını kilitlerle önlemeyi öğrenir.
Modül 1
Kesme İşleme
  • request_irq ile IRQ kaydı
  • Kesme işleyici (ISR) kısıtları
  • IRQ_HANDLED dönüş değeri
  • Paylaşımlı kesme hatları
  • Kesme bağlamında uyuma yasağı
  • free_irq ile serbest bırakma
Modül 2
Alt Yarılar
  • Top half / bottom half ayrımı
  • softirq ve tasklet
  • Work queue ile ertelenmiş iş
  • threaded IRQ yaklaşımı
  • Zamanlayıcı (timer) kullanımı
  • Gecikmeli iş (delayed work)
Modül 3
Kilitleme
  • spinlock ve kullanım bağlamı
  • mutex ile uyuyabilen kilit
  • spin_lock_irqsave ile kesme güvenliği
  • Kilit sırası ve deadlock önleme
  • rwlock okuma/yazma kilitleri
  • RCU kavramına giriş
Modül 4
Senkronizasyon
  • Atomik değişkenler (atomic_t)
  • Bellek bariyerleri (barrier)
  • completion ile bekleme
  • wait_queue ile olay bekleme
  • Semaphore kullanımı
  • Yarış koşulu teşhisi
Günün hedefiKatılımcı; çekirdek kodunu ftrace ve dinamik araçlarla ayıklamayı ve güvenli modül geliştirmeyi öğrenir.
Modül 1
Çekirdek Hata Ayıklama
  • printk ve dinamik debug (pr_debug)
  • ftrace ile fonksiyon izleme
  • trace_printk kullanımı
  • kprobes ile dinamik sonda
  • kgdb ile uzak hata ayıklama
  • Oops çıktısını çözümleme (addr2line)
Modül 2
Zamanlama
  • jiffies ve HZ kavramı
  • ktime ve yüksek çözünürlüklü zamanlayıcı
  • msleep ve udelay farkı
  • Kernel timer kurma
  • schedule ve yeniden zamanlama
  • Gerçek zamanlı kısıtlar
Modül 3
Platform Sürücüleri
  • platform_driver yapısı
  • Device Tree ile aygıt eşleme
  • probe ve remove geri çağrıları
  • Kaynak (resource) alma
  • MMIO ile donanım register erişimi
  • regmap arayüzüne giriş
Modül 4
En İyi Pratikler
  • Kernel kodlama stili (checkpatch)
  • Hata yolu ve kaynak temizliği
  • goto ile temizlik deseni
  • Kaynak sızıntısını önleme
  • Modülü güvenli kaldırma
  • Upstream katkı süreci kavramı

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Modül Yazımı

Yüklenebilir çekirdek modüllerini yazıp Kbuild ile derleyebilirsiniz.

✅
Sürücü Geliştirme

Karakter aygıt sürücüleri yazıp /dev altında sunabilirsiniz.

✅
Bellek Yönetimi

kmalloc ve vmalloc ile çekirdek belleğini güvenle yönetebilirsiniz.

✅
Veri Aktarımı

copy_to_user ile kullanıcı alanıyla güvenli veri aktarabilirsiniz.

✅
Kesme İşleme

IRQ işleyicileri ve alt yarıları doğru biçimde kurabilirsiniz.

✅
Eşzamanlılık

Spinlock ve mutex ile yarış koşullarını önleyebilirsiniz.

✅
Çekirdek Teşhis

ftrace ve kprobes ile çekirdek içi davranışı izleyebilirsiniz.

✅
Güvenli Geliştirme

Hata yolu ve kaynak temizliği desenlerini uygulayabilirsiniz.

Kimler İçin Uygundur?

  • Aygıt sürücüsü geliştiren gömülü sistem mühendisleri
  • sistem programcıları
  • çekirdek düzeyinde çalışan ileri düzey C geliştiricileri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Aygıt sürücüsü geliştiren gömülü sistem mühendisleri, sistem programcıları ve çekirdek düzeyinde çalışan ileri düzey C geliştiricileri için uygundur.
C dili zorunlu mu?
Evet, işaretçiler ve bellek yönetimi dahil iyi düzeyde C bilgisi bu eğitim için gereklidir.
Laboratuvar nasıl yapılıyor?
Her konu kendi yazdığınız modülü insmod ile yükleyip dmesg ile izleyerek, feda edilebilir bir sanal makinede uygulanır.
Hangi çekirdek sürümü esas alınır?
Güncel kararlı 6.x çekirdek API'si esas alınır; sürümler arası API değişikliklerine dikkat çekilir.
Sertifika veriliyor mu?
Evet, eğitim sonunda Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Linux Kernel Programming Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre5 gün
SeviyeUzman Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Linux ve UnixCentOS Stream: Kurumsal Linux Yönetimi ve Altyapının Modernleştirilmesi Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

CentOS Stream: Kurumsal Linux Yönetimi ve Altyapının Modernleştirilmesi Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

CentOS Stream ile kurumsal Linux yönetimi: rolling model, dnf modülleri, Ansible otomasyonu, Podman konteynerleri, güvenlik ve göç. İleri düzey DVA eğitimi.

Detayları Gör →
Linux ve UnixCreating and Managing Unix File Systems Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

Creating and Managing Unix File Systems Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Unix/Linux dosya sistemlerini oluşturup yönetin: bölümleme, ext4/XFS, mount ve fstab, LVM, snapshot, kota, mdadm RAID ve fsck onarımı. Uygulamalı DVA eğitimi.

Detayları Gör →
Linux ve UnixDB for Linux, UNIX, and Windows Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

DB for Linux, UNIX, and Windows Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

IBM Db2 for Linux, UNIX and Windows temellerini öğrenin: instance ve veritabanı oluşturma, CLP, SQL, tablespace ve bufferpool yönetimi. Uygulamalı DVA eğitimi.

Detayları Gör →
Linux ve UnixDB for LUW: Administration in Linux/UNIX/Windows Environments Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

DB for LUW: Administration in Linux/UNIX/Windows Environments Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

Db2 for LUW yönetiminde ustalaşın: yedekleme/kurtarma, explain plan performans ayarı, güvenlik, LBAC ve HADR yüksek erişilebilirlik. İleri düzey DVA eğitimi.

Detayları Gör →
Linux ve UnixDebian Yönetimi Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

Debian Yönetimi Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Debian sunucu yönetimini uygulamalı öğrenin: apt/dpkg paket yönetimi, systemd, ağ yapılandırması, UFW güvenlik duvarı, cron ve otomatik bakım. DVA Linux eğitimi

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn