Bize Ulaşın

Eğitim İçeriği

1. Linux Çekirdeğine Giriş

  • Gömülü Linux'a genel bakış
  • Linux çekirdeği mimarisi
  • Kullanıcı alanı (User space) ve çekirdek alanı (Kernel space)
  • Çekirdeğin sorumlulukları
  • Çekirdek geliştirme iş akışı
  • Desteklenen gömülü platformlara genel bakış

2. Geliştirme Ortamının Kurulması

  • Geliştirme iş istasyonunun hazırlanması
  • Çapraz derleme (Cross-compilation) kavramları
  • Gerekli geliştirme araçlarının yüklenmesi
  • BeagleBone Black geliştirme kartının kurulması
  • Seri konsol yapılandırması
  • Hedef cihazın açılışı (boot)

3. Çekirdek Kaynağının Edinilmesi ve Anlaşılması

  • Linux çekirdeği kaynak ağacı
  • Stabil ve uzun süreli destek (LTS) çekirdekleri
  • Çekirdek kaynaklarının indirilmesi
  • Kaynak kod yapısının keşfi
  • Çekirdek dokümantasyonu
  • Çekirdek sürümlerinin yönetimi

4. Çekirdeğin Yapılandırılması, Derlenmesi ve Açılması

  • menuconfig ile çekirdek yapılandırması
  • Çekirdek özelliklerinin seçimi
  • Çekirdeğin çapraz derlenmesi
  • Çekirdek imajlarının oluşturulması
  • Çekirdek modüllerinin yüklenmesi
  • Açılış yükleyicisine (Bootloader) genel bakış
  • Özel bir çekirdeğin açılması (boot)

5. Cihaz Ağacı (Device Tree) Temelleri

  • Cihaz Ağacının amacı
  • Cihaz Ağacı Kaynak (DTS) dosyaları
  • Cihaz Ağacı Bloğu (DTB)
  • Donanım betimleme kavramları
  • Cihaz Ağacı dosyalarının değiştirilmesi
  • Cihaz Ağaçlarının derlenmesi ve dağıtımı

6. Linux Çekirdek Modülleri

  • Çekirdek modülü mimarisi
  • Yüklenebilir çekirdek modüllerinin derlenmesi
  • Modüllerin yüklenmesi ve kaldırılması
  • Modül parametreleri
  • Modül bağımlılıkları
  • Çekirdek modülleriyle etkileşim
  • Modül hata ayıklama teknikleri

7. Linux Çekirdeği Hata Ayıklama

  • printk() ile çekirdek günlükleme
  • dmesg kullanımı
  • Dinamik hata ayıklama
  • Çekirdek panik analizi
  • Oops mesajları
  • GDB ile hata ayıklama
  • Temel performans izleme araçları

8. Karakter Cihaz Sürücüleri

  • Linux cihaz sürücüsü modeli
  • Karakter cihazlar
  • Sürücülerin kaydedilmesi
  • Dosya işlemleri
  • Okuma ve yazma işlemleri
  • IOCTL arayüzü
  • Bellek yönetimi
  • Sürücü temizliği (cleanup)

9. Sürücü Entegrasyonu ve Donanım Erişimi

  • Platform cihazları ve sürücüleri
  • GPIO programlama
  • Yakalama (Interrupt) işleme
  • Zamanlayıcılar ve ertelenmiş işler
  • Donanım kayıtlarına erişim
  • Bellek haritalı G/Ç (Memory-mapped I/O) ile çalışma

10. Git ile Sürüm Kontrolü

  • Git temelleri
  • Çekirdek kaynak kodunun yönetimi
  • Dal (branch) oluşturma ve birleştirme
  • Yama (patch) oluşturma
  • Değişikliklerin incelenmesi
  • Çekirdek geliştirmede iş birliği

11. Uygulamalı Çekirdek Geliştirme Laboratuvarları

  • Özel bir çekirdeğin yapılandırılması
  • Çekirdeğin derlenmesi ve dağıtılması
  • Basit bir çekirdek modülünün oluşturulması
  • Temel bir karakter cihaz sürücüsünün geliştirilmesi
  • Cihaz Ağacı dosyalarının değiştirilmesi
  • BeagleBone Black üzerinde çekirdek sorunlarının hata ayıklanması

12. En İyi Uygulamalar ve Özet

  • Çekirdek kodlama stili
  • Bakımı kolay sürücüler yazma
  • Yaygın geliştirme tuzakları
  • Çekirdek dokümantasyonu kaynakları
  • Açık kaynak katkısı iş akışı
  • Temel kavramların gözden geçirilmesi
  • Soru ve cevap
  • Linux çekirdek geliştirme için sonraki adımlar

Kurs İçin Gerekli Önbilgiler

GNU/Linux sistemini kullanmaya temel düzeyde hâkimiyet

 14 Saatler

Katılımcı Sayısı


Katılımcı başına fiyat

Danışanlarımızın Yorumları (2)

Yaklaşan Etkinlikler

İlgili Kategoriler