[{"content":"","date":"26 Nisan 2026","externalUrl":null,"permalink":"/tools/can-bit-timing/","section":"Online Mühendislik Araçları","summary":"","title":"CAN Bit Timing Hesaplayıcı","type":"tools"},{"content":"","date":"26 Nisan 2026","externalUrl":null,"permalink":"/tools/can-id-pgn-converter/","section":"Online Mühendislik Araçları","summary":"","title":"CAN ID ↔ J1939 PGN Dönüştürücü","type":"tools"},{"content":"","date":"26 Nisan 2026","externalUrl":null,"permalink":"/tools/j1939-dtc-decoder/","section":"Online Mühendislik Araçları","summary":"","title":"J1939 DTC / DM1 Çözücü","type":"tools"},{"content":"","date":"26 Nisan 2026","externalUrl":null,"permalink":"/tools/obd2-pid-lookup/","section":"Online Mühendislik Araçları","summary":"","title":"OBD-II PID Lookup","type":"tools"},{"content":"","date":"26 Nisan 2026","externalUrl":null,"permalink":"/tools/","section":"Online Mühendislik Araçları","summary":"","title":"Online Mühendislik Araçları","type":"tools"},{"content":"","date":"26 Nisan 2026","externalUrl":null,"permalink":"/","section":"Tuna Girişken","summary":"","title":"Tuna Girişken","type":"page"},{"content":"","date":"26 Nisan 2026","externalUrl":null,"permalink":"/tools/uds-service-lookup/","section":"Online Mühendislik Araçları","summary":"","title":"UDS Servis ID \u0026 NRC Lookup","type":"tools"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/series/ad-hoc-networks/","section":"Series","summary":"","title":"Ad-Hoc Networks","type":"series"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/ad-hoc-networks/","section":"Tags","summary":"","title":"Ad-Hoc Networks","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/ak%C4%B1ll%C4%B1-ula%C5%9F%C4%B1m/","section":"Tags","summary":"","title":"Akıllı Ulaşım","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/apn/","section":"Tags","summary":"","title":"APN","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/boot/","section":"Tags","summary":"","title":"Boot","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/categories/embedded-systems/","section":"Categories","summary":"","title":"Embedded Systems","type":"categories"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/embedded-systems/","section":"Tags","summary":"","title":"Embedded Systems","type":"tags"},{"content":" Boot Performansı Analizi: Boot Süresini Ölçme ve Optimize Etme Araçları # Boot süresi, gömülü Linux sistemleri için kritik bir performans metriğidir. Özellikle sistemin hızla ayağa kalkması gereken uygulamalarda bu metrik hayati önem taşır. Otomotiv sistemleri, endüstriyel kontrolörler ya da IoT cihazları geliştiriyor olun fark etmez; boot performansını anlamak ve optimize etmek, kullanıcı deneyimini ve sistem tepki süresini ciddi ölçüde iyileştirir.\nBu rehber, Linux boot performansını ölçmek, analiz etmek ve optimize etmek için kullanılan temel araçları ve yöntemleri ele almaktadır.\nBoot Aşamalarını Anlamak # Analiz araçlarına geçmeden önce boot sürecini kavramak gerekir:\nFirmware/Bootloader - Donanım initialization ve bootloader çalıştırma Kernel Boot - Linux kernel\u0026rsquo;in yüklenmesi ve başlatılması Userspace Init - Sistem servislerinin ve uygulamaların ayağa kalkması Modern systemd tabanlı sistemler, boot süresinin büyük kısmını oluşturan 2. ve 3. aşamalar için mükemmel görünürlük sağlar.\nTemel Analiz Araçları # systemd-analyze: Ana Boot Analiz Aracınız # systemd-analyze komutu systemd ile birlikte gelir ve ek kurulum gerektirmeden kapsamlı boot süresi analizi sunar.\nTemel Boot Süresi Ölçümü # # Toplam boot süresinin dökümünü göster systemd-analyze # Örnek çıktı: # Startup finished in 2.847s (kernel) + 12.534s (userspace) = 15.381s Bu tek komut size büyük resmi verir: kernel\u0026rsquo;in initialize olmasının ne kadar sürdüğünü ve userspace servislerin ayağa kalkmasının ne kadar zaman aldığını.\nServis Bazlı Analiz # # Tüm servisleri initialization süresine göre sıralı listele systemd-analyze blame # Sadece en yavaş 20 servisi göster systemd-analyze blame | head -20 # 1 saniyeden uzun süren servisleri bul systemd-analyze blame | awk \u0026#39;$1 \u0026gt; \u0026#34;1s\u0026#34; {print}\u0026#39; blame alt komutu, hangi servislerin boot süresini tükettiğini belirlemek için son derece değerlidir. Ancak şunu unutmayın: servisler paralel başlayabildiğinden, toplam servis süresi her zaman boot süresine olan gerçek etkiyi yansıtmaz.\nCritical Path Analizi # # Critical boot path\u0026#39;i göster (diğerlerini bloke eden servisler) systemd-analyze critical-chain # Belirli bir servisin dependency\u0026#39;lerini analiz et systemd-analyze critical-chain servis-adiniz.service # Örnek çıktı: # graphical.target @8.234s # └─multi-user.target @8.233s # └─network.target @8.210s # └─NetworkManager.service @3.156s +5.051s Critical chain, boot\u0026rsquo;un tamamlanmasını fiilen hangi servislerin engellediğini gösterir. Bu zincirde yer almayan servisler, boot süresini etkilemeden ertelenebilir veya optimize edilebilir.\nGörsel Analiz Araçları # Boot Timeline Görselleştirme # # Boot sürecinin SVG timeline\u0026#39;ını oluştur systemd-analyze plot \u0026gt; boot-timeline.svg # Dependency graph\u0026#39;ı görüntüle systemd-analyze dot | dot -Tsvg \u0026gt; boot-dependencies.svg Bu görsel çıktılar şunları belirlemenize yardımcı olur:\nParalel ve sıralı servis başlatma durumu Dependency darboğazları Paralelleştirme fırsatları Gereksiz yere erken başlayan servisler Bootchart2: Detaylı Sistem Aktivitesi # Bootchart, boot sırasında CPU, disk I/O ve process aktivitesi dahil olmak üzere daha detaylı sistem seviyesi bilgi sağlar.\n# Bootchart2 kurulumu (Debian/Ubuntu) apt-get install bootchart2 # Yocto/gömülü sistemler için image recipe\u0026#39;ye ekleyin: IMAGE_INSTALL += \u0026#34;bootchart2\u0026#34; Kurulumdan sonra bootchart her boot\u0026rsquo;ta otomatik olarak chart üretir ve bunları /var/log/bootchart/ altında saklar.\nEk Diagnostik Komutlar # # Servis durumlarını doğrula systemctl list-units --state=failed # Ordering cycle\u0026#39;ları olan servisleri kontrol et systemctl list-dependencies --all # Belirli bir servisin timing\u0026#39;ini incele systemctl status \u0026lt;servis-adi\u0026gt; # Yavaş başlayan servislerin loglarını incele journalctl -u \u0026lt;servis-adi\u0026gt; -b Sonuçları Yorumlama ve Hedef Belirleme # Gerçekçi Boot Süresi Hedefleri # Boot süresi hedefleri sistem gereksinimlerine göre önemli ölçüde değişir:\nTüketici Gömülü Cihazları:\nKernel: \u0026lt; 2s Userspace: \u0026lt; 5s Toplam: \u0026lt; 8s Endüstriyel/Otomotiv Sistemleri:\nKernel: \u0026lt; 3s Userspace: \u0026lt; 10s Toplam: \u0026lt; 15s Sunucu/Kompleks Sistemler:\nKernel: \u0026lt; 5s Userspace: \u0026lt; 30s Toplam: \u0026lt; 40s Yaygın Boot Süresi Suçluları # systemd-analyze blame çıktısını analiz ederken şu tipik yavaş servislere dikkat edin:\nNetwork Servisleri - NetworkManager, systemd-networkd (genellikle 2-5s) Disk Servisleri - fsck, filesystem mount, RAID initialization Güvenlik Servisleri - SSH key generation, random number generator initialization Veritabanı Servisleri - PostgreSQL, MySQL (boot\u0026rsquo;ta etkinse) Hardware Enumeration - ModemManager, bluetooth, USB device discovery Custom Script\u0026rsquo;ler - Legacy init script\u0026rsquo;leri, kötü optimize edilmiş startup kodu Optimizasyon Stratejileri # 1. Gereksiz Servisleri Eleyin # # Tüm etkin servisleri listele systemctl list-unit-files --state=enabled # Boot\u0026#39;ta gerekmeyen servisleri devre dışı bırak systemctl disable \u0026lt;servis-adi\u0026gt; # Bir servisin başlamasını tamamen engelle systemctl mask \u0026lt;servis-adi\u0026gt; # Devre dışı bırakmak için yaygın adaylar: systemctl disable bluetooth.service systemctl disable avahi-daemon.service systemctl disable ModemManager.service 2. Servis Dependency\u0026rsquo;lerini Optimize Edin # Gereksiz ordering dependency\u0026rsquo;lerini kaldırmak için servis unit dosyalarını düzenleyin:\n[Unit] Description=Benim Uygulamam # Sadece gerçekten gerekli dependency\u0026#39;leri dahil edin After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/bin/benim-uygulamam [Install] WantedBy=multi-user.target Temel prensipler:\nMümkün olduğunda Requires= yerine Wants= kullanın (daha yumuşak dependency) Paralel başlatmaya izin vermek için After= direktiflerini minimize edin Before= direktifini dikkatli kullanın, sadece sıralama kritik olduğunda 3. Socket Activation Uygulayın # Socket activation, servislerin boot\u0026rsquo;ta değil talep üzerine başlamasını sağlar:\n# Socket\u0026#39;i etkinleştir, servisi devre dışı bırak systemctl enable \u0026lt;servis\u0026gt;.socket systemctl disable \u0026lt;servis\u0026gt;.service Bir socket unit dosyası oluşturun:\n# /etc/systemd/system/benim-servisim.socket [Unit] Description=Benim Servisim Socket [Socket] ListenStream=8080 [Install] WantedBy=sockets.target 4. Kritik Olmayan Servisleri Erteleyin # Boot tamamlandıktan sonra servisleri başlatmak için timer unit\u0026rsquo;leri kullanın:\n# /etc/systemd/system/ertelenmis-servis.timer [Unit] Description=Boot Sonrası Kritik Olmayan Servisi Başlat [Timer] OnBootSec=30s Unit=ertelenmis-servis.service [Install] WantedBy=timers.target 5. Kernel ve Bootloader Optimizasyonu # # Kernel komut satırı optimizasyonları (bootloader config\u0026#39;e ekleyin): # - Konsol ayrıntı düzeyini azalt: quiet loglevel=3 # - Kernel modül yükleme gecikmelerini atla: rootwait # - Gereksiz özellikleri devre dışı bırak: noresume (hibernation yoksa) # Örnek GRUB konfigürasyonu: GRUB_CMDLINE_LINUX=\u0026#34;quiet loglevel=3 rootwait\u0026#34; 6. Filesystem Optimizasyonu # # /etc/fstab\u0026#39;da daha hızlı filesystem seçenekleri kullanın: # - noatime: erişim zamanlarını güncelleme # - data=writeback: daha hızlı ama daha az güvenli (dikkatli kullanın) /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 7. Custom Script\u0026rsquo;leri Paralelize Edin # Custom initialization script\u0026rsquo;leriniz varsa, gereksiz yere bloke etmediklerinden emin olun:\n[Service] Type=forking # Daha hızlı startup için mümkünse \u0026#39;simple\u0026#39; kullanın ExecStart=/usr/bin/benim-scriptim # Diğerleriyle paralel başlamasına izin ver DefaultDependencies=no Performans Baseline Oluşturma # Başlangıç Noktanızı Belgeleyin # # Kapsamlı bir boot raporu oluşturun mkdir -p ~/boot-analysis cd ~/boot-analysis # Baseline metrikleri kaydedin systemd-analyze \u0026gt; baseline-summary.txt systemd-analyze blame \u0026gt; baseline-blame.txt systemd-analyze critical-chain \u0026gt; baseline-critical.txt systemd-analyze plot \u0026gt; baseline-timeline.svg # Sistem bilgisi ekleyin uname -a \u0026gt;\u0026gt; baseline-summary.txt date \u0026gt;\u0026gt; baseline-summary.txt Sürekli İzleme # Bir boot süresi loglama script\u0026rsquo;i oluşturun:\n#!/bin/bash # /usr/local/bin/log-boot-time.sh LOG_FILE=\u0026#34;/var/log/boot-times.log\u0026#34; { echo \u0026#34;=== Boot Analizi $(date) ===\u0026#34; systemd-analyze echo \u0026#34;En yavaş 10 servis:\u0026#34; systemd-analyze blame | head -10 echo \u0026#34;---\u0026#34; } \u0026gt;\u0026gt; \u0026#34;$LOG_FILE\u0026#34; Bunu bir servis olarak etkinleştirin:\n# /etc/systemd/system/log-boot-time.service [Unit] Description=Boot Süresi Analizini Logla After=multi-user.target [Service] Type=oneshot ExecStart=/usr/local/bin/log-boot-time.sh [Install] WantedBy=multi-user.target Öncesi/Sonrası Karşılaştırma # # Optimizasyon öncesi systemd-analyze \u0026gt; /tmp/boot-once.txt systemd-analyze blame | head -20 \u0026gt;\u0026gt; /tmp/boot-once.txt # Değişikliklerinizi yapın, reboot edin # Optimizasyon sonrası systemd-analyze \u0026gt; /tmp/boot-sonra.txt systemd-analyze blame | head -20 \u0026gt;\u0026gt; /tmp/boot-sonra.txt # Karşılaştırın diff -u /tmp/boot-once.txt /tmp/boot-sonra.txt İleri Düzey Analiz Teknikleri # Kernel Boot Süresi Analizi # Derinlemesine kernel boot analizi için kernel\u0026rsquo;in dahili timing\u0026rsquo;ini kullanın:\n# Bootloader\u0026#39;da kernel timing\u0026#39;i etkinleştirin (kernel komut satırına ekleyin): initcall_debug printk.time=y # Boot sonrası kernel logunu analiz edin: dmesg | grep \u0026#34;initcall\u0026#34; | head -50 # En yavaş kernel initialization\u0026#39;ları bulun: dmesg | grep \u0026#34;initcall\u0026#34; | sort -k 4 -n | tail -20 Userspace Tracing # Detaylı uygulama seviyesi analiz için:\n# Yavaş bir servisin ne yaptığını anlamak için strace kullanın strace -tt -T -f -o /tmp/service-trace.log /usr/bin/servisiniz # Filesystem erişim pattern\u0026#39;lerini analiz edin strace -e trace=open,openat,read,write -o /tmp/fs-trace.log /usr/bin/servisiniz I/O Darboğaz Analizi # # Boot sırasında I/O\u0026#39;yu izleyin (iotop gerektirir) # Reboot öncesi ayrı bir konsolda veya SSH ile çalıştırın: iotop -b -o -d 1 \u0026gt; /tmp/boot-io.log \u0026amp; # Boot sonrası analiz edin: grep -E \u0026#34;systemd|servisiniz\u0026#34; /tmp/boot-io.log Pratik İş Akışı # Adım Adım Optimizasyon Süreci # Baseline Ölçün\nsystemd-analyze systemd-analyze blame | head -20 systemd-analyze critical-chain Hedefleri Belirleyin\n2 saniyeden uzun süren servisler Critical chain üzerindeki servisler Gereksiz dependency\u0026rsquo;leri olan servisler Optimizasyonları Uygulayın\nGereksiz servisleri devre dışı bırakın Dependency şişkinliğini temizleyin Socket activation uygulayın Kritik olmayan servisleri erteleyin Test Edin ve Doğrulayın\nreboot # Boot sonrası: systemd-analyze systemctl --failed # Bozuk servisleri kontrol edin İyileşmeyi Ölçün\n# Öncesi/sonrası karşılaştır diff baseline-summary.txt current-summary.txt Değişiklikleri Belgeleyin\nNeyin değiştirildiğine dair notlar tutun Servis hatalarını kaydedin Nihai boot süresi iyileşmesini kaydedin Hızlı Sağlık Kontrolü Script\u0026rsquo;i # Kullanışlı bir analiz script\u0026rsquo;i oluşturun:\n#!/bin/bash # boot-health-check.sh echo \u0026#34;=== Boot Süresi Özeti ===\u0026#34; systemd-analyze echo -e \u0026#34;\\n=== En Yavaş 10 Servis ===\u0026#34; systemd-analyze blame | head -10 echo -e \u0026#34;\\n=== Critical Chain ===\u0026#34; systemd-analyze critical-chain | head -15 echo -e \u0026#34;\\n=== Başarısız Servisler ===\u0026#34; systemctl --failed echo -e \u0026#34;\\n=== Degraded State\u0026#39;teki Servisler ===\u0026#34; systemctl list-units --state=degraded Best Practice\u0026rsquo;ler ve Tuzaklar # Yapılması Gerekenler # ✔ Her zaman önce baseline alın - Başlangıç noktanızı bilin\n✔ Artımlı değişiklikler yapın - Bir seferde tek bir şeyi değiştirin\n✔ Kapsamlı test edin - Optimizasyon sonrası servislerin hâlâ çalıştığından emin olun\n✔ Her şeyi belgeleyin - Neyi neden değiştirdiğinize dair notlar tutun\n✔ Critical path\u0026rsquo;e odaklanın - Boot tamamlanmasını bloke eden servislere yoğunlaşın\n✔ Önce dahili araçları kullanın - systemd-analyze ihtiyaçların %90\u0026rsquo;ını karşılar\nYapılmaması Gerekenler # ✗ Servisleri körü körüne devre dışı bırakmayın - Önce ne yaptıklarını anlayın\n✗ Erken optimizasyon yapmayın - Önce ölçün, sonra optimize edin\n✗ Güvenilirlikten ödün vermeyin - Hızlı boot, kararsız sistem demek olmamalı\n✗ Dependency\u0026rsquo;leri görmezden gelmeyin - Dependency kaldırmak işlevselliği bozabilir\n✗ Edge case\u0026rsquo;leri unutmayın - Cold boot, warm boot ve recovery senaryolarını test edin\n✗ Aşırı paralelleştirme yapmayın - Çok fazla concurrency işleri yavaşlatabilir\nSonuç # Boot süresi optimizasyonu; ölçüm, analiz ve sistematik iyileştirmeyi birleştiren iteratif bir süreçtir. systemd\u0026rsquo;nin sağladığı araçlar bu süreci basit ve veri odaklı hale getirir.\nTemel çıkarımlar:\nsystemd-analyze ile ölçümle başlayın Toplam servis süresi yerine critical path\u0026rsquo;e odaklanın Gereksiz servisleri eleyin, erteleyin veya paralelize edin Sistem stabilitesini sağlamak için değişiklikleri doğrulayın İyileştirmeleri korumak için belgeleyin ve izleyin Bu araçlar ve yöntemlerle, sistem güvenilirliğini ve işlevselliğini korurken önemli boot süresi iyileştirmeleri elde edebilirsiniz. Unutmayın ki amaç sadece hızlı bir boot değil, stabil ve tam işlevsel bir sistem sunan hızlı bir boot\u0026rsquo;tur.\nEk Kaynaklar # systemd Boot Optimization systemd.unit Man Page systemd-analyze Documentation Boot Time Optimization Techniques ","date":"5 Ocak 2025","externalUrl":null,"permalink":"/posts/boot_analizi/","section":"Posts","summary":"Boot Performansı Analizi: Boot Süresini Ölçme ve Optimize Etme Araçları # Boot süresi, gömülü Linux sistemleri için kritik bir performans metriğidir. Özellikle sistemin hızla ayağa kalkması gereken uygulamalarda bu metrik hayati önem taşır. Otomotiv sistemleri, endüstriyel kontrolörler ya da IoT cihazları geliştiriyor olun fark etmez; boot performansını anlamak ve optimize etmek, kullanıcı deneyimini ve sistem tepki süresini ciddi ölçüde iyileştirir.\n","title":"Gömülü Linux Boot Optimizasyonu","type":"posts"},{"content":" Karluna Mühendislik\u0026rsquo;te Kıdemli Gömülü Linux Geliştirme Mühendisi olarak çalışıyorum. Savunma ve otomotiv sektörlerinde emniyet kritik gömülü sistemlerin tasarım ve geliştirilmesinde 5 yılı aşkın deneyime sahibim. 📄 CV Özet # Kıdemli Gömülü Yazılım Mühendisi olarak savunma ve otomotiv sektörlerinde emniyet kritik gömülü sistemlerin tasarım ve geliştirilmesinde 5 yılı aşkın deneyime sahibim. Baykar Teknoloji ve TÜBİTAK SAGE\u0026lsquo;de, üretim seviyesindeki havacılık ve savunma sistemleri için aviyonik ve gömülü yazılım mimarisi tasarlama ve geliştirme çalışmalarında aktif roller üstlendim.\nGerçek zamanlı işletim sistemleri (RTLinux, Zephyr) üzerinde, zamanlama hassasiyeti yüksek ve deterministik sistemlerin geliştirilmesi konusunda uzmanlığa sahibim. Çok çekirdekli (ARM Cortex-A53/A55, PowerPC, x86) MPU platformları için Yocto ve Buildroot tabanlı gömülü Linux sistemlerinin geliştirilmesi ile MCU tabanlı (ARM Cortex-R5/M4/M33) sistemlerde bare-metal firmware geliştirme alanlarında deneyimim bulunuyor.\nŞu anda elektrikli ticari araçlar için uçtan uca bir Telematics Control Unit (TCU) yazılım yığınını mimariden uygulamaya kadar geliştiriyorum; CAN/J1939 araç ağları, GNSS konumlandırma, LTE bağlantısı, MQTT tabanlı bulut telemetrisi ve arka uç veri entegrasyonu gibi konularında teknik liderlik yapıyorum.\nTeknik Beceriler # Kategori Teknolojiler Gömülü Sistemler Bare-metal programlama, RTOS (PREEMPT_RT, RTLinux, Zephyr), Gömülü Linux (Yocto, Buildroot), U-Boot, Devicetree, Linux Kernel Modülü ve Sürücü Geliştirme Programlama Dilleri C, C++ (98/11/14/17/20/23), Assembly, Python, Bash/Batch Scripting, QML, SQL Mimariler ARM Cortex (R5, M4, M33, A53, A55), PowerPC (P4080DS), x86 (Xeon D-1700) İletişim Protokolleri CAN/J1939, TCP/UDP, MQTT, I2C, SPI, UART, USB, RS-232/485, MIL-STD-1553 Gerçek Zamanlı Ağ Time-Sensitive Networking (TSN), Precision Time Protocol (IEEE 1588v2) Araçlar GCC, GDB, LLVM, Clang, CMake, Meson, Git/GitLab CI, QEMU, OpenSSL, Qt Standartlar JSF AV C++, MISRA-C/C++ Deneyim # Kıdemli Gömülü Linux Geliştirme Mühendisi Ara. 2024 - Günümüz Karluna Mühendislik, İzmir Hafif ticari elektrikli araçlar için uçtan uca Telematics Control Unit (TCU) yazılım yığınını mimariden uygulamaya kadar tasarladım NXP i.MX93 SoC için otomotiv standartlarına uygun Yocto Linux dağıtımı geliştirdim Modern C++ standartlarında kapsamlı bir telemetri yazılım çerçevesi geliştirdim; thread-safe CAN iletişim katmanı ve SAE J1939 protokol yığını implementasyonu OTA (Over-The-Air) güncelleme altyapısı tasarladım; delta paket yönetimi ve atomik güncelleme mekanizması MQTT tabanlı bulut telemetrisi ile filo yönetimi ve uzaktan araç kontrolü sağladım Quectel LTE modemlerini (EC2x/EGxx serisi) PPP ve QMI protokolleri ile entegre ettim Gömülü Linux Geliştirme Mühendisi Ara. 2022 - Kas. 2024 Baykar Teknoloji, İstanbul Yeni nesil İHA görev bilgisayarları için gerçek zamanlı işletim sistemleri geliştirdim Güvenlik kritik yazılım çerçevesini mimari düzeyinde tasarladım; JSF ve MISRA C/C++ standartlarına tam uyum Time-Sensitive Networking (TSN) altyapısını geliştirdim; mikrosaniye altı zaman senkronizasyonu ve deterministik iletişim Bare-metal MCU firmware'den Linux tabanlı MPU uygulamalarına kadar çeşitli gömülü mimarilerde çözümler tasarladım Simetrik (AES) ve asimetrik (RSA/ECC) kriptografik algoritmaları kullanan gömülü güvenlik altyapısı uyguladım Gömülü Yazılım Mühendisi Stajyeri Şub. 2022 - May. 2022 TÜBİTAK SAGE, Ankara ELDK ve Yocto kullanarak gömülü işletim sistemlerinin derleme ve entegrasyon süreçlerine katkı sağladım VxWorks RTOS için bootloader seviyesinde NVMe sürücüsü geliştirdim Füze sistemlerinde NVMe cihazları için önyükleme zamanı depolama başlatma işlemlerini entegre ettim Yazılım Eğitmeni Mar. 2022 - May. 2022 Deneyap Türkiye, Gaziantep Gaziantep Büyükşehir Belediyesi ve T3 Vakfı desteğiyle C++ programlama kursu verdim Bellek yönetimi, RAII, STL ve nesne yönelimli tasarım gibi ileri düzey C++ konularını işledim Projeler # NXP P4080DS Özel Linux Dağıtımı PowerPC 2.8 GB/s NVMe Sürücü Geliştirme PowerPC P4080DS platformu için U-Boot ve SPL optimizasyonları ile üretime hazır Yocto BSP DMA desteğiyle bootloader seviyesinde NVMe PCIe sürücüsü; veri aktarım gecikmesini %40 azalttım TI Sitara AM65x SBL Geliştirme ARM Cortex Güvenli Önyükleme Sistemi Bellek eşlemeli XIP ile OSPI Flash tabanlı Secondary Boot Loader (SBL); \u0026lt;2 saniye önyükleme süresi Şifrelenmiş görüntü doğrulaması ile güvenli önyükleme zinciri uyguladım Eğitim # Yüksek Lisans - Bilgisayar Mühendisliği 2025 - Devam Ediyor Ege Üniversitesi, İzmir Lisans - Elektrik-Elektronik Mühendisliği 2017 - 2022 Hasan Kalyoncu Üniversitesi, Gaziantep %100 İngilizce Burs | Bitirme Projesi: PID kontrolü ile RF tabanlı step motor kontrol sistemi C++ C Linux Python Git Docker C++ C Linux Python Git Docker ","date":"5 Ocak 2025","externalUrl":null,"permalink":"/about/","section":"Tuna Girişken","summary":" Karluna Mühendislik’te Kıdemli Gömülü Linux Geliştirme Mühendisi olarak çalışıyorum. Savunma ve otomotiv sektörlerinde emniyet kritik gömülü sistemlerin tasarım ve geliştirilmesinde 5 yılı aşkın deneyime sahibim. 📄 CV Özet # Kıdemli Gömülü Yazılım Mühendisi olarak savunma ve otomotiv sektörlerinde emniyet kritik gömülü sistemlerin tasarım ve geliştirilmesinde 5 yılı aşkın deneyime sahibim. Baykar Teknoloji ve TÜBİTAK SAGE‘de, üretim seviyesindeki havacılık ve savunma sistemleri için aviyonik ve gömülü yazılım mimarisi tasarlama ve geliştirme çalışmalarında aktif roller üstlendim.\n","title":"Hakkımda","type":"page"},{"content":"Benimle iletişime geçmek için aşağıdaki kanalları kullanabilirsiniz:\n📧 E-posta: info@tunagirisken.com\n🔗 LinkedIn: linkedin.com/in/tunagrskn\n💻 GitHub: github.com/tunagirisken\n✍️ Medium: medium.com/@tunagirisken\n","date":"5 Ocak 2025","externalUrl":null,"permalink":"/contact/","section":"Tuna Girişken","summary":"Benimle iletişime geçmek için aşağıdaki kanalları kullanabilirsiniz:\n📧 E-posta: info@tunagirisken.com\n🔗 LinkedIn: linkedin.com/in/tunagrskn\n💻 GitHub: github.com/tunagirisken\n✍️ Medium: medium.com/@tunagirisken\n","title":"İletişim","type":"page"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/network/","section":"Tags","summary":"","title":"Network","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/categories/networking/","section":"Categories","summary":"","title":"Networking","type":"categories"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/otomotiv/","section":"Tags","summary":"","title":"Otomotiv","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/performans/","section":"Tags","summary":"","title":"Performans","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/posts/","section":"Posts","summary":"","title":"Posts","type":"posts"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/security/","section":"Tags","summary":"","title":"Security","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/v2i/","section":"Tags","summary":"","title":"V2I","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/v2v/","section":"Tags","summary":"","title":"V2V","type":"tags"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/vanet/","section":"Tags","summary":"","title":"VANET","type":"tags"},{"content":"Modern ulaşım sistemleri hızla dijitalleşiyor ve araçlar artık sadece birer taşıt değil, aynı zamanda birbirleriyle ve çevreleriyle sürekli iletişim halinde olan akıllı cihazlar haline geliyor. Bu dönüşümün merkezinde Vehicular Ad-Hoc Networks (VANET) teknolojisi yer alıyor. Peki VANET nedir ve neden bu kadar önemli? Bu yazıda, VANET\u0026rsquo;in temellerinden uygulamalarına kadar her şeyi detaylıca inceleyeceğiz.\nAd-Hoc Networks: Temel Kavramlar # VANET\u0026rsquo;i anlamadan önce, Ad-Hoc ağların ne olduğunu kavramak gerekiyor. Ad-hoc network, kelime anlamı olarak \u0026ldquo;anlık, belirli bir amaç için oluşturulan\u0026rdquo; ağ demektir. Bilgisayar ağları bağlamında ise önceden var olan bir altyapıya ihtiyaç duymadan, birbirine doğrudan bağlanan düğümlerden oluşan kendi kendini organize eden kablosuz ağlar anlamına gelir.\nBu ağların en önemli özelliği, merkezi bir yönlendirici (router), erişim noktası (access point) veya baz istasyonu olmamasıdır. Her düğüm hem istemci hem de yönlendirici görevi görebilir. Düğümler arası iletişim çok atlamalı (multi-hop) olabilir; yani A → B → C şeklinde veri aktarımı yapılabilir.\nAd-Hoc Networks\u0026rsquo;ün Temel Özellikleri # 1. Merkezi Olmayan (Decentralized) Mimari # Klasik ağlarda iletişim genellikle bir erişim noktası üzerinden yürürken, Ad-hoc ağlarda merkezi bir yönetici yoktur. Her bir düğüm (node) hem istemci hem yönlendirici görevi görür. Bu sayede ağ, herhangi bir merkez noktasının çökmesi durumunda bile iletişimi sürdürebilir ve tek hata noktasını (single point of failure) ortadan kaldırır.\nAncak bu durum yönlendirme ve kaynak yönetimi süreçlerini karmaşıklaştırır, çünkü ağdaki tüm düğümler bu yükü paylaşmak zorundadır.\n2. Kendi Kendini Organize Edebilme (Self-Organizing) # Ad-hoc ağlar önceden yapılandırmaya ihtiyaç duymadan çalışabilir. Düğümler birbirini otomatik olarak keşfeder (neighbor discovery), bağlantı kurar ve gerektiğinde ağ topolojisini yeniden oluşturur. Bu özellik özellikle afet bölgeleri, askeri operasyonlar veya geçici etkinlik alanları gibi dinamik ortamlarda kritik avantaj sağlar.\nAğ topolojisi değiştikçe, düğümler yönlendirme tablolarını günceller. Bu süreç genellikle protokol tabanlıdır (örneğin AODV, DSR, OLSR).\n3. Dinamik Topoloji (Dynamic Topology) # Ad-hoc ağların en belirgin özelliklerinden biri topolojinin sürekli değişebilmesidir. Düğümler (araçlar, telefonlar, dronlar) hareket ettikçe bağlantılar kopabilir veya yeni bağlantılar oluşabilir. Bu durum ağın sürekli olarak yeni yollar hesaplamasını gerektirir.\nBu sebeple dinamik yönlendirme algoritmaları kullanılır. Bu yapı yüksek esneklik sağlar ama aynı zamanda latency ve paket kaybı gibi zorlukları da beraberinde getirir.\n4. Çok Atlama (Multi-Hop) İletişimi # Ad-hoc ağlarda iki düğüm arasındaki doğrudan iletişim her zaman mümkün değildir. Bu durumda veri, arada bulunan diğer düğümler üzerinden çok atlamalı bir şekilde iletilir. Her düğüm, kendisine gelen paketleri hedefe ulaşana kadar yönlendirir.\nBu mekanizma sayesinde ağ kapsama alanı genişler; örneğin 100 m menzilli düğümler 3 atlamayla 300 m uzaklıktaki hedefe ulaşabilir. Ancak çok atlamalı iletişim enerji tüketimini, gecikmeyi ve paket kaybı riskini artırır.\n5. Enerji Kısıtlılık (Energy Constraints) # Özellikle taşınabilir cihazlar (sensörler, araç modülleri, mobil terminaller) pil gücüyle çalıştığı için enerji verimliliği kritik önemdedir. Bu nedenle Ad-hoc ağlarda yönlendirme protokolleri yalnızca en kısa yolu değil, aynı zamanda enerji açısından en uygun yolu da hesaba katabilir. Bu yaklaşım \u0026ldquo;Energy-Aware Routing\u0026rdquo; olarak bilinir.\n6. Kısıtlı Bant Genişliği (Limited Bandwidth) # Kablosuz iletişim kanalları, kablolu ağlara göre daha dar bant genişliğine sahiptir. Ayrıca kanalın paylaşılması (CSMA/CA veya TDMA gibi erişim yöntemleriyle) çatışmalara ve paket gecikmelerine neden olabilir.\nAncak son yıllarda 5G D2D (Device-to-Device) ve 802.11p (VANET standardı) gibi teknolojilerle bu kısıtlar büyük oranda azaltılmıştır.\nAd-Hoc Networks Ağ Mimarisi # Ad-hoc ağlar, önceden kurulmuş bir altyapıya ihtiyaç duymadan, mobil veya sabit cihazların doğrudan birbirleriyle haberleştiği dağıtık yapılı ağlardır. Bu mimaride her cihaz bir terminal (end node) olarak veri üretip tüketir ve aynı zamanda bir yönlendirici (router node) gibi davranarak diğer düğümlerin trafiğini iletir. Yani ağda \u0026ldquo;her düğüm hem kullanıcı hem yönlendiricidir.\u0026rdquo;\nAğ Mimarisi Türleri # Saf (Pure) Ad-Hoc Mimari:\nHiçbir altyapı yoktur Tüm düğümler eşit konumdadır Veri yalnızca multi-hop (çok atlamalı) olarak taşınır Avantajı: Esneklik, hızlı kurulum, altyapıya bağımlılık yok Dezavantajı: Yönlendirme karmaşık, ölçeklenebilirlik sınırlı Hibrit (Hybrid) Ad-Hoc Mimari:\nKısmen altyapı bulunur (erişim noktaları veya sabit istasyonlar) Mobil düğümler birbirleriyle doğrudan iletişim kurabilir, ancak gerektiğinde altyapı üzerinden de haberleşir VANET, MANET, Mesh Network gibi sistemlerde sıkça görülür Avantajı: Daha iyi kapsama alanı ve yönlendirme verimliliği Ad-Hoc Networks Türleri # MANET (Mobile Ad-hoc Network) # MANET, mobil cihazların statik altyapıdan bağımsız olarak, dinamik topolojiye sahip, kendiliğinden organize olan ağlardır. Bu ağlar, sürekli hareket eden düğümlerle birlikte, yönlendirme protokollerinin yüksek mobiliteyi ve sık topoloji değişikliklerini yönetmesini gerektirir.\nVANET (Vehicular Ad-hoc Network) # VANET, araçlar arasındaki doğrudan iletişimi sağlayan, yüksek hızda hareket eden ve sık sık bağlantı kopmalarına neden olan ağlardır. Bu ağlar, düşük gecikme süreleri ve güvenilir veri iletimi için, özellikle yönlendirme ve güvenlik protokollerinde optimizasyon gerektirir.\nSANET (Sensor Ad-hoc Network) # SANET, dağıtık sensör düğümlerinin birbirleriyle iletişim kurarak çevresel verileri topladığı ve ilettiği ağlardır. Düşük enerji tüketimi ve veri iletimi için verimli protokoller gerektiren bu ağlar, genellikle düşük bant genişliğine sahip, yüksek gecikmeli ve düşük maliyetli ağlardır.\nFANET (Flying Ad-hoc Network) # FANET, insansız hava araçları (İHA) arasındaki ağları ifade eder ve bu ağlar, uçuş esnasında düşük gecikmeli veri iletimi ve yüksek hızda yönlendirme gereksinimlerini karşılamalıdır. FANET, uçuş dinamiklerine bağlı olarak sık sık topoloji değişiklikleri yaşar ve bu da ağın güvenilirliğini artıran özel yönlendirme ve hata toleranslı protokoller gerektirir.\nVANET: Araç Ağlarının Derinlemesine İncelenmesi # Vehicular Ad-Hoc Network (VANET), araçların kendi aralarında ve yol kenarı altyapılarla kablosuz iletişim kurarak kendiliğinden ağlar oluşturduğu, Akıllı Ulaşım Sistemleri\u0026rsquo;nin temel bileşenidir. Her araç hem veri gönderen hem de veri ileten bir düğüm görevi üstlenir.\nVANET\u0026rsquo;in temel özellikleri:\nMerkezi bir yönlendirici, erişim noktası veya baz istasyonu yoktur Her düğüm (araç) hem istemci hem yönlendirici görevi görebilir Düğümler arası iletişim çok atlamalı olabilir (A → B → C şeklinde) VANET Ağ Mimarisi # VANET ekosistemi, farklı iletişim türlerini kapsayan kapsamlı bir mimari üzerine kurulmuştur:\nV2V (Vehicle-to-Vehicle): Araçlar Arası İletişim # Araçlar arası doğrudan iletişim, VANET\u0026rsquo;in en temel bileşenidir. Araçlar birbirleriyle kablosuz iletişim kurarak hız, konum ve fren durumu gibi bilgileri paylaşır. Çarpışma uyarıları ve acil fren bildirimleri anlık olarak komşu araçlara iletilerek kazalar önlenir.\nV2I (Vehicle-to-Infrastructure): Araç-Altyapı İletişimi # Trafik ışıkları, yol işaretleri ve baz istasyonları gibi sabit altyapı elemanları ile araçlar arasındaki iletişimdir. Trafik yönetimi, park yeri bilgilendirme ve yol durumu gibi hizmetler sağlar.\nV2P (Vehicle-to-Pedestrian): Araç-Yaya İletişimi # Akıllı cihaz taşıyan yayalar ile araçlar arasındaki iletişimdir. Özellikle yaya geçitlerinde güvenlik uyarıları sağlar.\nV2N (Vehicle-to-Network): Araç-Ağ İletişimi # Araçların internet ve bulut servisleri ile iletişimidir. Gerçek zamanlı navigasyon, trafik analizi ve uzaktan teşhis hizmetleri sunar.\nVANET\u0026rsquo;in Avantajları # Güvenlik: Kaza riskini azaltır, sürücüleri potansiyel tehlikeler hakkında uyarır Verimlilik: Trafik akışını optimize eder, yakıt tüketimini azaltır Konfor: Otomatik sürüş ve akıllı park sistemleri gibi özellikler sağlar Çevre: Emisyonları azaltır, daha yeşil ulaşım sistemi oluşturur VANET\u0026rsquo;in Zorlukları # Güvenlik ve Gizlilik: Veri güvenliği ve kullanıcı mahremiyeti kritik öneme sahiptir Yüksek Mobilite: Hızlı hareket eden araçlar arasında bağlantı sürekliliğini sağlamak zordur Ölçeklenebilirlik: Binlerce aracın aynı anda iletişim kurması yoğunluk sorunları yaratır Standartizasyon: Farklı üreticiler arasında uyumluluğu sağlamak gerekir Sonuç # VANET teknolojisi, akıllı ulaşım sistemlerinin omurgasını oluşturacak devrim niteliğinde bir teknolojidir. Araçlar arası iletişim, trafik güvenliğini artırırken, trafik verimliliğini de optimize eder. Önümüzdeki yıllarda, 5G, yapay zeka ve otonom sürüş teknolojileriyle birleşerek VANET, ulaşımda yeni bir çağ başlatacaktır.\n","date":"5 Ocak 2025","externalUrl":null,"permalink":"/posts/vanet/","section":"Posts","summary":"Modern ulaşım sistemleri hızla dijitalleşiyor ve araçlar artık sadece birer taşıt değil, aynı zamanda birbirleriyle ve çevreleriyle sürekli iletişim halinde olan akıllı cihazlar haline geliyor. Bu dönüşümün merkezinde Vehicular Ad-Hoc Networks (VANET) teknolojisi yer alıyor. Peki VANET nedir ve neden bu kadar önemli? Bu yazıda, VANET’in temellerinden uygulamalarına kadar her şeyi detaylıca inceleyeceğiz.\n","title":"Vehicular Ad-Hoc Networks (VANET): Akıllı Ulaşımın Geleceği","type":"posts"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/vpn/","section":"Tags","summary":"","title":"VPN","type":"tags"},{"content":"Gömülü sistemler ve IoT cihazları geliştirirken en sık karşılaşılan sorulardan biri şudur: \u0026ldquo;Cihazım internete nasıl çıkacak ve bu bağlantı ne kadar güvenli olacak?\u0026rdquo; Bu noktada iki temel kavram devreye girer — APN ve VPN. Her ikisi de ağ erişimiyle ilgili olsa da, birbirinden tamamen farklı katmanlarda çalışan teknolojilerdir. Bu yazıda her iki teknolojiyi detaylıca inceleyecek, aralarındaki farkları netleştirecek ve özellikle gömülü sistemler bağlamında nasıl kullanıldıklarına bakacağız.\nAPN Nedir? # APN (Access Point Name — Erişim Noktası Adı), bir mobil cihazın hücresel ağ üzerinden dış dünyaya (internet veya özel bir kurumsal ağ) bağlanırken kullandığı ağ geçidini tanımlayan yapılandırma parametresidir. Daha teknik bir ifadeyle APN, mobil cihaz ile operatörün Packet Data Network Gateway (PGW/P-GW) arasındaki bağlantıyı kuran mantıksal bir isimdir.\nBir telefon ya da IoT modülü hücresel ağa bağlandığında, veri oturumu başlatmak için operatöre bir APN bilgisi gönderir. Operatör bu bilgiye göre cihazı doğru ağ geçidine yönlendirir: genel internete mi çıkacak, kurumsal bir VPN\u0026rsquo;e mi bağlanacak, yoksa özel bir MMS sunucusuna mı erişecek — tüm bunlar APN üzerinden belirlenir.\nAPN\u0026rsquo;in Yapısı # Bir APN iki ana bileşenden oluşur:\nNetwork Identifier (Ağ Tanımlayıcı): Bağlanılacak dış ağı belirtir. Örneğin internet, kurumsal veya m2m gibi isimler olabilir. Operator Identifier (Operatör Tanımlayıcı): Hangi operatör ağına ait olduğunu belirten, MCC (Mobile Country Code) ve MNC (Mobile Network Code) bilgilerini içeren opsiyonel kısımdır. Örneğin Türkiye\u0026rsquo;deki Turkcell için mnc001.mcc286.gprs gibi bir yapı kullanılır. Tam bir APN şu şekilde görünür:\ninternet.mnc001.mcc286.gprs Ancak pratikte çoğu zaman sadece ağ tanımlayıcı kısmı (internet, web, m2m.provider.com gibi) kullanılır.\nAPN Türleri # APN Türü Açıklama Örnek Kullanım Genel APN Cihazı doğrudan internete çıkarır Telefon internet erişimi Özel/Kurumsal APN Cihazı operatörün özel bir ağ segmentine yönlendirir Filo yönetimi, kurumsal IoT M2M APN Makineler arası iletişim için optimize edilmiş Telematik cihazlar, sensörler MMS APN Multimedya mesajlaşma hizmeti için MMS gönderimi Sabit IP APN Cihaza her bağlantıda aynı IP adresini atar Uzaktan erişim gereken cihazlar APN ve Gömülü Sistemler # Gömülü Linux sistemlerinde hücresel bağlantı genellikle ModemManager ve NetworkManager üzerinden ya da doğrudan AT komutları ile yönetilir. Bir LTE modülünü (örneğin Quectel EC25, Sierra Wireless HL7812) yapılandırırken APN ayarı şu şekilde yapılır:\n# AT komutuyla APN tanımlama AT+CGDCONT=1,\u0026#34;IP\u0026#34;,\u0026#34;m2m.provider.com\u0026#34; # ModemManager ile bağlantı kurma mmcli -m 0 --simple-connect=\u0026#34;apn=m2m.provider.com\u0026#34; # NetworkManager ile profil oluşturma nmcli connection add type gsm con-name \u0026#34;lte-baglanti\u0026#34; \\ ifname \u0026#34;*\u0026#34; apn \u0026#34;m2m.provider.com\u0026#34; Özellikle TCU (Telematics Control Unit) veya endüstriyel gateway gibi cihazlarda özel M2M APN\u0026rsquo;ler tercih edilir. Bunun birkaç önemli sebebi vardır:\nSabit veya öngörülebilir IP adresi atanabilir, bu sayede uzaktan erişim kolaylaşır. Özel ağ segmenti sayesinde cihaz trafiği genel internet trafiğinden izole edilir. QoS (Quality of Service) parametreleri M2M trafiğine göre optimize edilebilir. Güvenlik politikaları daha sıkı şekilde uygulanabilir. VPN Nedir? # VPN (Virtual Private Network — Sanal Özel Ağ), mevcut bir ağ altyapısı (genellikle internet) üzerinden şifreli ve güvenli bir tünel oluşturarak iki nokta arasında özel bir bağlantı kurma teknolojisidir.\nVPN\u0026rsquo;in özünde yaptığı iş oldukça basittir: veriyi göndermeden önce şifreler, bir \u0026ldquo;tünel\u0026rdquo; içine koyar ve karşı tarafa ulaştığında tekrar çözer. Bu süreçte aradaki hiçbir düğüm — ne ISP, ne de üzerinden geçilen yönlendiriciler — verinin içeriğini göremez.\nVPN Nasıl Çalışır? # VPN bağlantısı kurulurken şu adımlar gerçekleşir:\nKimlik doğrulama (Authentication): İstemci ve sunucu birbirini doğrular. Sertifika tabanlı (X.509), kullanıcı adı/parola veya pre-shared key (PSK) yöntemleri kullanılabilir. Anahtar değişimi (Key Exchange): Şifreleme için kullanılacak oturum anahtarları güvenli bir şekilde paylaşılır. Genellikle Diffie-Hellman veya ECDH algoritmaları kullanılır. Tünel oluşturma (Tunnel Establishment): Şifreli iletişim kanalı kurulur. Orijinal IP paketleri yeni bir başlıkla sarmalanır (enkapsülasyon). Veri iletimi: Tüm trafik şifreli tünelden geçer. Dışarıdan bakıldığında sadece VPN sunucusuyla iletişim kurulduğu görülür. VPN Protokolleri # Farklı senaryolar için farklı VPN protokolleri geliştirilmiştir:\nProtokol Katman Şifreleme Kullanım Alanı IPsec L3 (Ağ) AES, 3DES Site-to-site bağlantılar, kurumsal ağlar OpenVPN L3/L4 OpenSSL (AES-256-GCM) Genel amaçlı, esnek yapılandırma WireGuard L3 ChaCha20, Curve25519 Yüksek performans, düşük gecikme L2TP/IPsec L2 IPsec ile birlikte Eski sistemlerle uyumluluk PPTP L2 MPPE (zayıf) ❌ Güvenli değil, kullanılmamalı VPN Topolojileri # VPN bağlantıları farklı topolojilerde kurulabilir:\nSite-to-Site VPN: İki farklı lokasyondaki ağları birbirine bağlar. Örneğin bir fabrikanın yerel ağı ile merkez ofis ağı arasında kalıcı bir tünel kurulur. Her iki tarafta da bir VPN gateway bulunur ve arkasındaki tüm cihazlar karşı ağa erişebilir.\nRemote Access VPN: Tek bir cihazın uzak bir ağa güvenli şekilde bağlanmasını sağlar. Sahadan çalışan mühendislerin şirket ağına erişimi bu modelle yapılır.\nHub-and-Spoke VPN: Birden fazla uç noktanın merkezi bir sunucu üzerinden birbirine bağlandığı yapıdır. IoT cihaz filolarında sıklıkla tercih edilir — tüm cihazlar merkezi bir VPN sunucusuna bağlanır ve gerektiğinde birbirleriyle bu merkez üzerinden iletişim kurar.\nVPN ve Gömülü Sistemler # Gömülü Linux cihazlarda VPN yapılandırması genellikle WireGuard veya OpenVPN üzerinden yapılır. WireGuard, çekirdek seviyesinde çalışması ve minimalist tasarımı sayesinde kaynak kısıtlı gömülü sistemlerde öne çıkmaktadır.\n# WireGuard arayüzü oluşturma ip link add dev wg0 type wireguard # Yapılandırma dosyası uygulama wg setconf wg0 /etc/wireguard/wg0.conf # Arayüzü aktifleştirme ip addr add 10.0.0.2/24 dev wg0 ip link set wg0 up # Yönlendirme ekleme ip route add 192.168.1.0/24 dev wg0 Yocto ile geliştirilen bir gömülü Linux imajında WireGuard desteği eklemek için:\n# local.conf veya image recipe\u0026#39;ye eklenir IMAGE_INSTALL:append = \u0026#34; wireguard-tools wireguard-module\u0026#34; # Kernel konfigürasyonuna eklenir (5.6 öncesi çekirdekler için) CONFIG_WIREGUARD=m Bir TCU veya endüstriyel gateway senaryosunda VPN şu amaçlarla kullanılır:\nUzaktan firmware güncelleme (OTA): Güncelleme sunucusuna güvenli erişim Telemetri verisi iletimi: MQTT/AMQP trafiğinin şifrelenmesi Uzaktan tanılama: SSH üzerinden cihaza güvenli erişim Cihaz filosu yönetimi: Tüm cihazların merkezi bir VPN ağında toplanması APN ile VPN Arasındaki Temel Farklar # Bu iki teknoloji farklı soruları yanıtlar:\nAPN → \u0026ldquo;Cihazım hücresel ağdan nereye bağlanacak?\u0026rdquo; VPN → \u0026ldquo;Bağlantım nasıl korunacak?\u0026rdquo; Özellik APN VPN Katman Hücresel ağ erişim katmanı Uygulama/Ağ katmanı Temel işlev Ağ geçidi tanımlama Şifreli tünel oluşturma Şifreleme Kendisi şifreleme yapmaz Uçtan uca şifreleme sağlar Bağımsızlık Operatöre bağımlı Operatörden bağımsız IP ataması Operatör tarafından VPN sunucusu tarafından Kapsam Hücresel bağlantıya özel Her türlü ağ üzerinde çalışır Yapılandırma Operatörle koordineli Tamamen kullanıcı kontrolünde Maliyet Operatör tarifesine dahil Ek altyapı/lisans maliyeti Birlikte Kullanım: APN + VPN # Pratikte APN ve VPN birbirinin alternatifi değil, tamamlayıcısıdır. Özellikle gömülü sistemlerde en sağlam mimari ikisinin birlikte kullanıldığı yapıdır.\nTipik bir senaryo şu şekilde işler:\n[TCU Cihazı] → LTE Modül (APN: m2m.operator.com) → Operatör PGW → İnternet ↓ WireGuard Tünel ↓ [Bulut VPN Sunucusu] ↓ [MQTT Broker / OTA Sunucu] Bu mimaride:\nAPN cihazı operatörün M2M ağ segmentine yönlendirir — böylece cihaz genel internet trafiğinden izole olur. VPN tüneli ise internet üzerinden geçen trafiği şifreler — operatör dahil hiç kimse veri içeriğini göremez. Katmanlı Güvenlik Yaklaşımı # Üretim ortamında güvenlik tek bir katmana bırakılmamalıdır. APN ve VPN\u0026rsquo;in birlikte kullanımı defense in depth (derinlemesine savunma) prensibine uygundur:\nKatman Teknoloji Sağladığı Koruma Fiziksel SIM kilidi, cihaz sertleştirme Fiziksel erişim koruması Ağ erişimi Özel APN Ağ segmentasyonu İletişim VPN (WireGuard/IPsec) Uçtan uca şifreleme Uygulama TLS/mTLS Uygulama seviyesi doğrulama Veri Payload şifreleme Veri bütünlüğü Sonuç # APN ve VPN, ağ iletişiminin farklı katmanlarında farklı sorunları çözen teknolojilerdir. APN, hücresel ağda cihazın hangi kapıdan çıkacağını belirlerken; VPN, o kapıdan çıktıktan sonra verinin güvenli bir şekilde hedefe ulaşmasını sağlar.\nGömülü sistemler geliştirirken bu iki teknolojiyi birbirinin alternatifi olarak değil, birlikte çalışan güvenlik katmanları olarak düşünmek gerekir. Özel bir M2M APN üzerinden çıkış yapıp, ardından WireGuard tüneli ile bulut altyapısına bağlanan bir cihaz — hem operatör tarafında izole edilmiş hem de internet üzerinde şifrelenmiş bir bağlantıya sahip olur.\nSonuç olarak güvenli bir bağlantı tek bir teknolojiye değil, doğru katmanda doğru aracı kullanmaya dayanır.\n","date":"5 Ocak 2025","externalUrl":null,"permalink":"/posts/vpn_apn/","section":"Posts","summary":"Gömülü sistemler ve IoT cihazları geliştirirken en sık karşılaşılan sorulardan biri şudur: “Cihazım internete nasıl çıkacak ve bu bağlantı ne kadar güvenli olacak?” Bu noktada iki temel kavram devreye girer — APN ve VPN. Her ikisi de ağ erişimiyle ilgili olsa da, birbirinden tamamen farklı katmanlarda çalışan teknolojilerdir. Bu yazıda her iki teknolojiyi detaylıca inceleyecek, aralarındaki farkları netleştirecek ve özellikle gömülü sistemler bağlamında nasıl kullanıldıklarına bakacağız.\n","title":"VPN ve APN: Erişim Noktaları Arasındaki Farklar","type":"posts"},{"content":"","date":"5 Ocak 2025","externalUrl":null,"permalink":"/tags/yocto/","section":"Tags","summary":"","title":"Yocto","type":"tags"}]