Bizi tercih ettiğiniz için teşekkür ederiz. Ekip üyelerimiz en kısa sürede sizlerle iletişime geçecektir.
Rezervasyonunuzu gönderdiğiniz için teşekkür ederiz! Ekibimizden bir yetkili kısa süre içinde sizinle iletişime geçecektir.
Eğitim İçeriği
Giriş
- GNU/Linux'un hızlı tarihi
- lisanslama
- çekirdek sürümleme
- yayın döngüsü
- çekirdek ağaçları
- ana dal (mainline)
- çekirdek ile kullanıcı alanı
- mekanizma ile politika
- çekirdek sürücü alternatifleri
- RTOS ile Linux
Bellek Yönetimi
- Sanal bellek ile fiziksel bellek
- çekirdekte bellek tahsisi
- sayfalar
- bölgeler (zones)
- API
- slab
Çekirdek Yaması (Patch)
- yaşam döngüsü
- git
- çekirdek kaynağı
- yama oluşturma
- yama kontrolü
- yama düzeltme
- yama gönderme
- denetlenmiş kod
Çekirdek Modülleri
- çekirdek kaynak kodunu alma
- konfigürasyon/derleme/kurulum
- aygıt sürücüleri (statik olarak bağlantılanmış, çalışma zamanında yüklenen)
- init/exit
- lisanslama
- EXPORT_SYMBOL GPL
- üçüncü dal (out of tree) makefile
- module-init-tools
- çekirdek ağacında modül
- Kconfig
- parametre geçirimi
- sparse
Karakter Aygıt Sürücüleri (Char Drivers)
- mimari
- kullanıcı/çekirdek arayüzü
- G/Ç alt sistemi
- VFS
- sysfs (aygıtlar, veri yolu (bus), sürücüler, sınıflar),
- kobject/ktype/kset
- Linux çekirdek sürücü modeli
- aygıt dosyaları
- karakter sürücüsü
- başlatma
- kayıt
- açma, kapatma (release)
- cdev, cdev add, cdev del,...
- büyük/küçük numara (major/minor)
- udev, udevmonitor, udevadm
Gelişmiş Karakter Aygıt Sürücü İşlemleri
- ioctl
- unlocked ioctl
- uyumlu ioctl (compat ioctl)
- kullanıcı alanı API
- çekirdek alanı API
- işlem yaşam döngüsü
- uyuma/engelleme (blocking)
- uyuma/uyanma
- bekleme kuyruğu
- kalabalık sürü (thundering herd) sorunu
- poll/select
Çekirdek Hata Ayıklama (Debugging)
- hata ayıklama
- çekirdeği hata ayıklama
- git ile ikili arama (binary search)
- çekirdekten hata ayıklama desteği
- printk syslogd, klogd, günlük düzeyleri, hız sınırı, hata ayıklama düzeyleri, seçili alt sistemlerin hata ayıklaması
- debugfs sorgulama ile hata ayıklama
- oops hata ayıklaması, oops tetikleme
- Büyüklü Sayıç Anahtarı (Magic SysRq Key)
- kgdb/kdb
- JTAG
İzleme (Tracing)
- gcov
- lcov
- oprofile
- ftrace
- nop izleyici
- fonksiyon izleyici
- tamamlayıcı (sched switch) izleyici
- fonksiyon grafiği izleyici
- dinamik izleyici
- trace-cmd/kernelshark
- perf
- LTTng
Kesintiler (Interrupts)
- kesintiler ile sorgulama (polling) arasındaki fark
- kesinti
- program bölümleri
- yeniden girilebilirlik (reentrancy)
- olaylar
- kesinti işleyicisi
- paylaşılan kesinti işleyicisi
- kesinti akışı
- kesinti kontrolü
İşin Erteleilmesi (Deferring Work)
- üst/alt yarım işler (top/bottom halves)
- yumuşak kesintiler (softirqs)
- tasklet'ler
- iş kuyrukları (work queues)
- çalıştırılmış (threaded) kesintiler
Eşzamanlılık (Concurrency)
- kritik bölge/bölüm
- atomik
- yarış durumu (race condition)
- eşitleme
- kitaplık kilitleri (locking)
- kilitleme çözümleri
- ölüm kalıp (deadlock)
- rekabet (contention)
- neyi kilitlemeli?
- ne kullanılabilir?
- atomik işlemler
- spin kilitleri
- okuyucu-yazıcı spin kilitleri
- semaphor
- ikili semaphor
- mutex
- okuyucu-yazıcı semaphor
- tamamlanma değişkenleri (completion variables)
- sıralı kilitler (sequential locks)
- ön emir devre dışı bırakma
- sıralama ve bariyerler
Zaman
- HZ
- Jiffies
- büyük/küçük gecikmeler
- çekirdek zamanlayıcıları
Donanım G/Ç (Hardware I/O)
- G/Ç Portları
- G/Ç Belleği
- Kayıtlara erişimin yan etkileriyle nasıl başa çıkılır?
Kullanıcı-Çekirdek İletişimi
- put(get)_user()
- copy to(from)_user()
- Çekirdek G/Ç
- bellek eşleme
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Taşınabilirlik (Portability)
- kelime boyutu
- şeffaf türler (opaque types)
- imzalı/imzasız karakter
- veri hizalama
- tam sayı yükseltme (integral promotion)
- kod yeniden kullanımı
- biteşlik (endianess)
- sistem tik zamanı
- sayfa boyutu
- yönerge sıralaması
- SMP/ön emir (preemption/yüksek bellek)
Aksi belirtilmediği sürece bu içeriğin ve kurs taslağının lisansı Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0). altında bulunmaktadır.
Kurs İçin Gerekli Önbilgiler
- GNU/Linux sistemini son kullanıcı olarak kullanmaya yönelik temel aşinalık
- Komut satırı kabuğuna yönelik temel aşinalık
- Kullanıcı alanı (user space) / uygulama geliştirme konusunda temel bilgi
- Orta düzey C programlama bilgisi
- Aşağıdaki eğitime katılmış olmalıGömülü GNU/Linux Sistem Mimarisi (şiddetle tavsiye edilir!) ve/veya burada belirtilen konulara dair iyi bir anlayışa sahip olmalı
35 Saatler
Danışanlarımızın Yorumları (3)
Her şey yolunda.
Adrian Rybka - SEOyon
Eğitim - Flutter Development Bootcamp with Dart
Yapay Zeka Çevirisi
Çok faydalı ek bilgiler
Grzegorz - Comp S.A.
Eğitim - BLoC Pattern
Yapay Zeka Çevirisi
Eğitmenin sunumu ve iletişim tarzı.
Gianpiero Arico - Urmet Spa
Eğitim - Embedded Linux Systems Architecture
Yapay Zeka Çevirisi