Eğitim İçeriği
Giriş
- GNU/Linux’in kısa tarihi
- Lisanslama
- Çekirdek sürümleme
- Yayın döngüsü
- Çekirdek ağaçları
- Ana hat (mainline)
- Çekirdek ve kullanıcı alanı
- Mekanizma ve politika
- Çekirdek sürücü alternatifleri
- RTOS ve Linux
Bellek Management
- Sanal bellek ve fiziksel bellek
- Çekirdekte bellek tahsisi
- Sayfalar (pages)
- Bölgeler (zones)
- API
- Slab
Çekirdek Yaması
- Yaşam döngüsü
- Git
- Çekirdek kaynağı
- Yama oluştur
- Yamayı kontrol et
- Yamayı düzelt
- Yamayı gönder
- Denetlenmiş kod
Çekirdek Modülleri
- Çekirdek kaynaklarını al
- Yapılandır/derle/kur
- Cihaz sürücüleri (statik olarak bağlantılı, çalışma zamanında yüklenir)
- Başlat/bitir
- Lisanslama
- EXPORT SYMBOL GPL
- Ağaç dışı (out of tree) makefile
- module-init-tools
- Çekirdek ağacındaki modül
- Kconfig
- Parametre geçirme
- Sparse
Karakter Sürücüleri
- Mimari
- Kullanıcı/çekirdek arayüzü
- G/Ç alt sistemi
- VFS
- sysfs (cihazlar, bus, sürücüler, sınıflar)
- kobject/ktype/kset
- Linux çekirdek sürücü modeli
- Cihaz dosyaları
- Karakter sürücüsü
- Başlatma
- Kayıt
- Aç, serbest bırak
- cdev, cdev ekle, cdev sil,...
- Ana/alt sayılar
- udev, udevmonitor, udevadm
Gelişmiş Karakter Sürücü İşlemleri
- ioctl
- Kilitsiz ioctl
- Uyumlu ioctl
- Kullanıcı alanı API’si
- Çekirdek alanı API’si
- Süreç yaşam döngüsü
- Uyuma/engelleme
- Uyuma/uyandırma
- Bekleme kuyruğu
- Gürültülü sürü
- poll/select
Çekirdek Hata Ayıklama
- Hata
- Hata ayıklama
- Çekirdeği hata ayıklama
- Git ile ikili arama
- Çekirdekten hata ayıklama desteği
- printk syslogd, klogd, log seviyeleri, hız sınırı, hata ayıklama seviyeleri, hata ayıklama seçici alt sistemler
- debugfs’den sorgulayarak hata ayıklama
- oops hata ayıklama, oops’u onaylama
- Magic SysRq Key
- kgdb/kdb
- JTAG
İzleme
- gcov
- lcov
- oprofile
- ftrace
- nop izleyici
- fonksiyon izleyici
- sched geçiş izleyici
- fonksiyon grafik izleyici
- dinamik izleyici
- trace-cmd/kernelshark
- perf
- LTTng
Kesmeler
- Kesmeler ve yoklama
- Kesme
- Program bölümleri
- Yeniden giriş
- Olaylar
- Kesme işleyici
- Paylaşımlı kesme işleyici
- Kesme akışı
- Kesme kontrolü
İşleri Erteleme
- Üst/alt bölümler
- softirqs
- tasklets
- iş kuyrukları
- İş parçacıklı kesmeler
Eşzamanlılık
- Kritik bölge/bölüm
- Atomik
- Yarış durumu
- Senkronizasyon
- Kilitleme
- Kilitleme çözümleri
- Kilitlenme
- Çekişme
- Ne kilitlenecek?
- Ne kullanılabilir?
- Atomik işlemler
- Spin kilitleri
- Okuyucu-yazıcı spin kilitleri
- Semaphor
- İkili semaphor
- Mutex
- Okuyucu-yazıcı semaphor
- Tamamlama değişkenleri
- Ardışık kilitler
- Önlemeyi devre dışı bırak
- Sıralama ve engeller
Zaman
- HZ
- Jiffies
- Büyük/küçük gecikmeler
- Çekirdek zamanlayıcıları
Donanım G/Ç
- G/Ç Portları
- G/Ç Belleği
- Kayıt erişiminin yan etkileriyle nasıl başa çıkılır?
Kullanıcı-Çekirdek Communication
- put(get)_user()
- copy to(from)_user()
- Çekirdek G/Ç
- Bellek eşleme
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Taşınabilirlik
- Kelime boyutu
- Opak türler
- İmzalı/imzasız char
- Veri hizalaması
- Tamsayı tanıtımı
- Kod yeniden kullanımı
- Endianness
- Sistem tıkı
- Sayfa boyutu
- Talimat sıralaması
- SMP/önlemeyi devre dışı bırak/yüksek bellek
Aksi belirtilmedikçe içerik ve bu ders özetinin lisansı Atıf-Gayri Ticari-PaylaşımAynıLisans 4.0 Uluslararası (CC BY-NC-SA 4.0) altındadır.
Kurs İçin Gerekli Önbilgiler
- GNU/Linux sistemini bir kullanıcı olarak temel düzeyde aşinalık
- Komut satırı kabuğuyla temel düzeyde aşinalık
- Kullanıcı alanı / uygulama geliştirme konusunda temel bilgi
- Orta düzeyde C programlama bilgisi
- Daha önce Embedded GNU/Linux Systems Architecture'e katılmanız (şiddetle tavsiye edilir!) ve/veya orada özetlenen konuları iyi anlamanız gerekir
Danışanlarımızın Yorumları (5)
Edward is an awesome facilitator
Zibusiso Ncube - Agricatural Research Council
Eğitim - Ionic 4 and Angular for Developers
Maybe more exercises could be better for lerning but the time was to little
Gianpiero Arico' - Urmet Spa
Eğitim - Embedded Linux Systems Architecture
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Eğitim - Flutter Development Bootcamp with Dart
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Eğitim - The Yocto Project - An Overview - hands-on
The trainer was enthusiastic, kind, and loved the topic