KURUMSAL EĞİTİM, GÖMÜLÜ LİNUX
EĞİTİM SÜRESİ
- Eğitim Süresi: 5 Gün
- Günlük Eğitim Süresi: 6 Saat
- Ders Yapısı: 50 dakika oturum + 10 dakika mola
- Eğitim Saatleri: 10:00 - 17:00
- Öğle Arası: 12:00 - 13:00 (1 Saat)
Eğitimler, uzaktan canlı sınıf formatında Microsoft Teams platformu üzerinden gerçekleştirilir. Katılımcılar eğitim öncesinde paylaşılan bağlantılarla oturumlara katılır. Eğitim süresince eğitmen, uygulamalı anlatım, canlı demo ve anlık soru-cevap yöntemlerini birlikte kullanarak maksimum etkileşim sağlar.
Bu 5 günlük yoğunlaştırılmış program, C++ uzmanlarının mevcut programlama yeteneklerini, Linux çekirdeğinin derinliklerine, donanım arayüzlerine ve sistem seviyesi optimizasyonuna taşıyarak onları tam teşekküllü birer gömülü sistem mimarına dönüştürmeyi hedefler.
EĞİTİM HEDEFİ
5 Gün sürecek bu yoğun ve uygulamalı eğitimle, katılımcılar gömülü Linux ekosisteminde bootloader–kernel–device tree zincirini yönetme, Buildroot/Yocto ile üretim kalitesinde imaj oluşturma, minimal ve güvenli rootfs tasarlama, temel sürücü geliştirme ve userspace donanım erişimi, multithreading/IPC ile modüler servisler geliştirme, gdb/perf/ftrace ile sorun giderme ve optimizasyon, ağ yapılandırma ve güvenlik sertleştirme ile güvenli OTA stratejilerini uygulama becerisi kazanır.
Program sonunda ekipler; hedef kart için tekrarlanabilir build hatları kurabilen, cihazın açılış yolculuğunu özelleştirip hata ayıklayabilen, sahada güvenilir güncelleme yapabilen ve üretim senaryoları için performans/güvenlik dengesini doğru kurabilen gömülü Linux geliştiricileri seviyesine ulaşır.
EĞİTİM İÇERİĞİ
Modül 1: Gömülü Linux Ekosistemine Stratejik Bakış ve Geliştirme Ortamı Kurulumu
Seviye: Başlangıç
- Gömülü Mimariler ve Linux'un Rolü: MCU vs MPU farkları; RTOS vs GPOS (Linux) karşılaştırması; ARM (Cortex-A/M), RISC-V, x86 mimarilerinin C++ geliştirmeye etkileri.
- Çapraz Derleme Ortamı: Host/Target ayrımı; GCC, binutils, glibc/musl ile toolchain temini (manuel ve Buildroot/Yocto); SYSROOT ve paylaşımlı kütüphane yönetimi.
Kazanımlar: Gömülü terminoloji ve mimarilere hâkimiyet; profesyonel toolchain kurulumu ve hedef donanım için C++ derleme becerisi.
İşlenen Anahtarlar: MCU/MPU, RTOS/GPOS, ARM/RISC-V/x86, Cross-Compilation, Toolchain, SYSROOT.
Modül 2: Gömülü Cihazın Anatomisi: Bootloader, Kernel ve Device Tree
Seviye: Başlangıç / Orta
- U-Boot: Boot sekansı (ROM → SPL → U-Boot), TFTP ile imaj yükleme,
bootargs yönetimi, environment script’leri.
- Linux Kernel ve Device Tree: Scheduler, MMU, VFS;
defconfig/menuconfig ile çekirdek yapılandırma ve derleme; DTS/DTB, compatible, node/property/phandle ile donanım bildirimi.
Kazanımlar: Güç düğmesinden main()'e giden yolun tüm aşamalarına hâkimiyet; çekirdek ve DT özelleştirme.
İşlenen Anahtarlar: U-Boot, Kernel Config, Device Tree (DTS/DTB).
Modül 3: Endüstriyel Build Sistemleri: Buildroot ve Yocto Project
Seviye: Orta
- Buildroot:
menuconfig ile toolchain/kernel/bootloader/rootfs içeren minimal sistem imajı; Boost/Eigen, gdbserver paket entegrasyonu; BR2_EXTERNAL ile şirket içi içerik ekleme.
- Yocto Project: BitBake, katmanlar ve metadata; ürün için özel dağıtım, imaj ve BSP; C++ uygulaması için
.bb tarifi ve bağımlılık yönetimi.
Kazanımlar: Prototipten seri üretime uzanan, tekrarlanabilir ve izlenebilir build hatları kurma.
İşlenen Anahtarlar: Buildroot, Yocto, BitBake, Layers, Recipes, BSP.
Modül 4: Kök Dosya Sistemi (RootFS) Mimarisi ve Yönetimi
Seviye: Orta
- Minimal RootFS: Linux hiyerarşisi (/bin, /etc, /lib, /dev); BusyBox; C++ uygulamalarında dinamik/statik link;
ldd ile bağımlılık analizi; chroot ile test.
- Depolama ve FS Seçimi: JFFS2/UBIFS (NOR/NAND, wear-leveling), SquashFS (read-only), ext4 (SD/eMMC) ve journaling etkileri.
Kazanımlar: Kaynaklara uygun FS seçimiyle performans, güvenilirlik ve cihaz ömrünü optimize etme.
İşlenen Anahtarlar: BusyBox, ext4, SquashFS, JFFS2, UBIFS.
Modül 5: Donanım Arayüzleri ve Cihaz Sürücüsü Geliştirmeye Giriş
Seviye: Orta
- Userspace Donanım Erişimi: sysfs ve libgpiod ile GPIO;
i2c-dev/spidev üzerinden I2C/SPI; UART için termios.
- Karakter Aygıt Sürücüsü (LKM): Basit hello modülü;
file_operations ile open/read/write/ioctl; copy_to_user/copy_from_user ile güvenli veri aktarımı.
Kazanımlar: Sensör/çevre birimleriyle çalışma ve çekirdek tarafında temel sürücü geliştirme yetkinliği.
İşlenen Anahtarlar: sysfs, libgpiod, i2c-dev, spidev, termios, LKM, file_operations.
Modül 6: Gömülü Sistemler için İleri Seviye C++ Uygulama Geliştirme
Seviye: Orta / İleri
- Modern C++ ile Performans:
unique_ptr/shared_ptr, std::thread, std::mutex, std::condition_variable; constexpr ve şablonlar ile derleme zamanı optimizasyonları.
- IPC ve Senkronizasyon: Pipes, message queues, shared memory; D-Bus ile modüler servisler; mutex/semaphore ile race/deadlock önleme.
- Gerçek Zamanlı Linux: PREEMPT_RT;
sched_setscheduler() (SCHED_FIFO, SCHED_RR) ve deterministik davranış.
Kazanımlar: Çok görevli ve modüler, performans odaklı C++ uygulamaları tasarlama.
İşlenen Anahtarlar: Multithreading, IPC, D-Bus, PREEMPT_RT.
Modül 7: Hata Ayıklama (Debugging), Profiling ve Performans Optimizasyonu
Seviye: Orta / İleri
- Debugging:
gdb/gdbserver ile uzaktan debug; JTAG/SWD + OpenOCD; dmesg, printk, kgdb ile çekirdek analizi.
- Profiling:
perf ile CPU ve hotspot analizi; ftrace ile call graph/latency; valgrind ve AddressSanitizer ile bellek sorunları.
Kazanımlar: Sorunları hızlı teşhis ve bilimsel verilerle optimizasyon.
İşlenen Anahtarlar: gdb/gdbserver, OpenOCD, dmesg/printk/kgdb, perf, ftrace, valgrind, ASan.
Modül 8: Gömülü Ağ Yönetimi ve Siber Güvenlik Temelleri
Seviye: Orta
- Ağ:
iproute2 ile Ethernet/Wi‑Fi yapılandırma; C++ ile socket programlama.
- Güvenlik: SSH sunucu yapılandırma;
iptables/nftables ile firewall; least privilege ve sistem sertleştirme.
Kazanımlar: Cihazları güvenli şekilde ağa bağlama ve koruma.
İşlenen Anahtarlar: iproute2, SSH, iptables/nftables, Hardening.
Modül 9: Güvenli OTA (Over-the-Air) Güncelleme Stratejileri
Seviye: İleri
- Zorluklar: Güç kesintisi/ağ sorunu koşullarında güvenli güncelleme; atomik ve fault‑tolerant mekanizmalar.
- A/B Partitioning: Pasif bölüme imaj yükleme, doğrulama, reboot ve rollback.
- Açık kaynak framework'ler: SWUpdate, Mender.io, RAUC entegrasyonları.
Kazanımlar: Büyük cihaz filoları için kesintisiz ve güvenli güncelleme altyapıları.
İşlenen Anahtarlar: OTA, A/B Partition, SWUpdate, Mender, RAUC.
Modül 10: Kapsamlı Proje: Gömülü Görüntü İşleme Sistemi
Seviye: İleri
- Sistem Kurulumu: Yocto/Buildroot ile özel imaj (V4L2, OpenCV, GStreamer dahil).
- Donanım Entegrasyonu: V4L2 API ile USB veya MIPI‑CSI kameradan görüntü yakalama.
- Görüntü İşleme: OpenCV ile gerçek zamanlı işlemler (renk dönüşümü, filtre, kenar tespiti).
- ML Entegrasyonu: TensorFlow Lite ile hafif nesne tanıma; akış üzerinde çalışma.
- Performans:
perf ile darboğaz analizi; mümkünse GPU/NPU hızlandırma.
- Sunum: Nesneleri kutulama ve MJPEG streamer ile web arayüzüne yayın.
Kazanımlar: Teori ve pratiğin birleştiği üretim kalitesinde bir prototip oluşturma.
İşlenen Anahtarlar: V4L2, OpenCV, GStreamer, TensorFlow Lite, MJPEG streamer.