LINUX/UNIX SYSTEM PROGRAMMING EĞİTİMİ

Çekirdekle konuşan C programları yazın

fork/exec, sinyaller, pipe/socket, pthread ve mmap gibi POSIX sistem çağrılarıyla düşük seviye UNIX uygulamaları geliştirin.

C diliyle Linux/UNIX çekirdeğine yönelik sistem programlamayı dosya G/Ç, süreç yönetimi, sinyaller, IPC, iş parçacıkları ve soketler odağında uygulamalı öğreten ileri seviye eğitim.

4 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

POSIX sistem çağrıları ve C ile çekirdek seviyesinde programlama

Bu eğitim, Linux ve UNIX çekirdeğiyle doğrudan etkileşen C programları yazmayı öğretir. Dosya tanımlayıcıları üzerinden open, read, write, lseek, fcntl sistem çağrılarını; fork, exec, wait ve exit ile süreç yaşam döngüsünü; sinyal yönetimini (signal, sigaction, sigprocmask) ele alırsınız. Süreçler arası iletişimde pipe, FIFO, POSIX paylaşımlı bellek, semaforlar ve mesaj kuyruklarını; eşzamanlılıkta pthread kütüphanesi, mutex ve koşul değişkenlerini uygularsınız. mmap ile bellek eşleme, soket API ile TCP/UDP istemci-sunucu geliştirme ve errno temelli hata yönetimini gerçek kod üzerinde kavrarsınız. Tüm örnekler gcc ile derlenir ve strace/gdb ile incelenir.

Süre ve Format

4 Gün. Her gün dört modül; sistem çağrıları gcc ile derlenen örneklerde yazılır ve strace/gdb ile incelenir.

Seviye

İleri Seviye — C ile sistem çağrıları, süreç yönetimi, sinyaller, dosya G/Ç, IPC, iş parçacıkları ve soket programlamayı kapsar.

Öğrenme Metodu

Her sistem çağrısı, C ile yazılan çalışan bir örnek üzerinde uygulanır ve strace ile çekirdek etkileşimi gözlemlenir.

Neden Bu Eğitim?

🧠Çekirdek Anlayışı

Sistem çağrılarının çekirdekle nasıl etkileştiğini kavrayarak performanslı uygulamalar yazarsınız.

🔗IPC Ustalığı

Pipe, paylaşımlı bellek ve soketlerle süreçler arası güçlü iletişim mekanizmaları kurarsınız.

🧵Eşzamanlılık

pthread, mutex ve koşul değişkenleriyle çok iş parçacıklı, güvenli programlar geliştirirsiniz.

Anahtar Konular

sistem programlama eğitimilinux system programmingposix sistem çağrılarıc fork execpthread eğitimilinux soket programlamaipc paylaşımlı bellekepollunix c programlama
“Sistem programlama, çekirdeğin dilini konuşmayı ve her baytın hesabını vermeyi öğretir.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
C Dili

İşaretçiler, bellek yönetimi ve struct kullanımı dahil orta-ileri C bilgisi gereklidir.

2
Linux Temelleri

Dosya sistemi, izinler ve süreç kavramlarına aşinalık beklenir.

3
Derleme Araçları

gcc, make ve gdb kullanabilmek pratikleri kolaylaştırır.

4
Lab Ortamı

glibc ve geliştirme başlıkları kurulu bir Linux sistemi gereklidir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı sistem çağrısı arayüzünü, dosya tanımlayıcılarını ve düşük seviye G/Ç mekanizmalarını kavrar.
Modül 1
Sistem Çağrı Modeli
  • Kullanıcı/çekirdek modu geçişi ve trap mekanizması
  • errno, perror ve strerror ile hata raporlama
  • glibc sarmalayıcıları ile ham sistem çağrısı (syscall) farkı
  • Geri dönüş değeri sözleşmesi ve -1 hata kontrolü
  • man 2 ve man 3 bölümleri arasındaki ayrım
  • strace ile bir programın sistem çağrılarını izleme
Modül 2
Dosya G/Ç Çağrıları
  • open() bayrakları: O_RDONLY, O_WRONLY, O_CREAT, O_APPEND, O_TRUNC
  • read() ve write() ile bayt bloğu transferi ve kısmi okuma
  • close() ve dosya tanımlayıcı sızıntısının önlenmesi
  • lseek() ile konumlandırma ve seyrek (sparse) dosya oluşturma
  • dup, dup2 ile dosya tanımlayıcı çoğaltma ve yönlendirme
  • Standart akışlar (0,1,2) ve tampon (buffer) stratejileri
Modül 3
Dosya Metadata ve Dizinler
  • stat, fstat, lstat ile dosya özniteliklerini okuma
  • st_mode, st_size, st_mtime alanları ve dosya türü makroları
  • opendir, readdir, closedir ile dizin gezme
  • symlink, readlink ve sembolik bağların çözümlenmesi
  • chmod, chown, umask ile izin yönetimi
  • access() ile erişim kontrolü ve TOCTOU riski
Modül 4
İleri G/Ç ve fcntl
  • fcntl ile dosya tanımlayıcı bayrakları (O_NONBLOCK, FD_CLOEXEC)
  • Tavsiye niteliğinde dosya kilitleri (F_SETLK, F_GETLK)
  • readv, writev ile dağılmış/toplanmış (scatter-gather) G/Ç
  • pread, pwrite ile atomik konumlu okuma/yazma
  • O_DIRECT ve senkron G/Ç bayrakları (O_SYNC)
  • Boru hatları için G/Ç tamponlama ve kısmi yazma yönetimi
Günün hedefiKatılımcı süreç oluşturma, program yükleme ve sinyal temelli olay yönetimini uygular.
Modül 1
Süreç Oluşturma
  • fork() ile çocuk süreç yaratma ve kopyala-yaz (copy-on-write)
  • getpid, getppid ve süreç kimliği hiyerarşisi
  • wait, waitpid ve WIFEXITED, WEXITSTATUS makroları
  • Zombi ve yetim (orphan) süreçlerin oluşumu ve önlenmesi
  • exit, _exit ve atexit ile çıkış yolu farkları
  • Süreç çıkış kodu ve kabuk ile etkileşim
Modül 2
Program Yükleme
  • exec ailesi: execl, execv, execle, execvp farkları
  • fork+exec deseni ve kabuk komut yürütme mantığı
  • environ ve ortam değişkenlerinin aktarımı
  • Dosya tanımlayıcıların exec sonrası miras alınması (FD_CLOEXEC)
  • setuid/setgid programlar ve efektif kullanıcı kimliği
  • system() ve popen() kullanımı ve güvenlik riskleri
Modül 3
Sinyaller
  • signal ve sigaction ile sinyal işleyici kurulumu
  • SIGINT, SIGTERM, SIGKILL, SIGCHLD, SIGSEGV anlamları
  • sigprocmask ile sinyal maskeleme ve kritik bölge koruması
  • sigset_t, sigemptyset, sigaddset ile sinyal kümeleri
  • Yeniden giriş güvenli (async-signal-safe) fonksiyonlar
  • kill, raise, alarm ve zamanlayıcı sinyalleri
Modül 4
Oturum ve Daemon
  • setsid ile oturum lideri olma ve kontrol terminalinden ayrılma
  • Daemon süreç oluşturma adımları ve çift fork deseni
  • Süreç grupları, ön plan/arka plan ve iş kontrolü
  • umask sıfırlama, çalışma dizini ve dosya tanımlayıcı kapatma
  • syslog ile daemon günlükleme
  • SIGHUP ile yapılandırma yeniden yükleme deseni
Günün hedefiKatılımcı farklı IPC mekanizmalarını karşılaştırır ve senkronizasyonlu veri paylaşımı kurar.
Modül 1
Pipe ve FIFO
  • pipe() ile anonim boru ve çift yönlü iletişim kısıtı
  • fork ile boru üzerinden üretici-tüketici deseni
  • mkfifo ile adlandırılmış boru (FIFO) oluşturma
  • PIPE_BUF ve atomik yazma garantisi
  • SIGPIPE yönetimi ve okuyucu kapandığında EPIPE
  • Engelleyici/engellemeyen boru G/Ç davranışı
Modül 2
Paylaşımlı Bellek
  • POSIX shm_open, ftruncate ve mmap ile paylaşımlı segment
  • System V shmget, shmat, shmdt arayüzü
  • Paylaşımlı bellekte veri yapısı yerleşimi ve hizalama
  • mmap koruma bayrakları PROT_READ/PROT_WRITE ve MAP_SHARED
  • munmap ve shm_unlink ile kaynak temizliği
  • Paylaşımlı bellekte senkronizasyon ihtiyacı ve yarış koşulları
Modül 3
Semaforlar
  • POSIX sem_open, sem_wait, sem_post ile adlandırılmış semafor
  • İsimsiz semafor sem_init ve iş parçacıkları arası kullanım
  • İkili ve sayan (counting) semafor desenleri
  • Üretici-tüketici probleminde dolu/boş semafor çifti
  • Kilitlenme (deadlock) ve açlık (starvation) riskleri
  • System V semafor kümeleri semget/semop farkı
Modül 4
Mesaj Kuyrukları
  • POSIX mq_open, mq_send, mq_receive arayüzü
  • Mesaj önceliği ve kuyruk öznitelikleri (mq_attr)
  • Engellemeyen alım ve O_NONBLOCK kullanımı
  • mq_notify ile asenkron bildirim
  • System V msgget/msgsnd/msgrcv karşılaştırması
  • IPC yöntemi seçimi: gecikme, verim ve karmaşıklık ölçütleri
Günün hedefiKatılımcı çok iş parçacıklı programlar ve soket tabanlı istemci-sunucu uygulamaları geliştirir.
Modül 1
pthread Temelleri
  • pthread_create, pthread_join ile iş parçacığı yaşam döngüsü
  • İş parçacığı argümanı ve dönüş değeri aktarımı
  • pthread_detach ve ayrık (detached) iş parçacıkları
  • İş parçacığı yerel depolama (TLS) ve __thread
  • pthread_cancel ve iptal noktaları
  • Derlemede -pthread bayrağı ve bağlama
Modül 2
Senkronizasyon
  • pthread_mutex ile karşılıklı dışlama ve kritik bölge
  • pthread_cond_wait/signal ile koşul değişkenleri
  • Okuyucu-yazar kilidi (rwlock) kullanımı
  • Yarış koşulu ve veri yarışının (data race) teşhisi
  • Kilitlenme önleme: kilit sırası ve trylock
  • Bellek görünürlüğü ve atomik işlemler (stdatomic)
Modül 3
Soket API
  • socket, bind, listen, accept ile TCP sunucu kurulumu
  • connect ile TCP istemci ve üç yönlü el sıkışma
  • sockaddr_in, htons, inet_pton ile adres yapılandırma
  • send/recv ve kısmi veri transferi yönetimi
  • UDP için sendto/recvfrom ve bağlantısız iletişim
  • SO_REUSEADDR ve soket seçenekleri (setsockopt)
Modül 4
G/Ç Çoğullama
  • select() ile çoklu dosya tanımlayıcı izleme ve fd_set
  • poll() ile ölçeklenebilir izleme ve pollfd dizisi
  • epoll_create, epoll_ctl, epoll_wait ile verimli olay döngüsü
  • Seviye-tetiklemeli ve kenar-tetiklemeli (edge-triggered) mod
  • Engellemeyen soketlerle olay güdümlü sunucu tasarımı
  • Zaman aşımı yönetimi ve EINTR ile kesilen çağrıların yeniden denenmesi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Sistem Çağrıları

open, read, write ve fcntl ile düşük seviye dosya G/Ç uygulamaları yazarsınız.

✅
Süreç Kontrolü

fork, exec ve wait ile süreç yaşam döngüsünü yöneten programlar geliştirirsiniz.

✅
Sinyal İşleme

sigaction ile sağlam sinyal işleyicileri ve daemon süreçleri kurarsınız.

✅
IPC Mekanizmaları

Pipe, paylaşımlı bellek ve semaforlarla süreçler arası iletişim tasarlarsınız.

✅
Eşzamanlılık

pthread, mutex ve koşul değişkenleriyle güvenli çok iş parçacıklı kod yazarsınız.

✅
Ağ Programlama

Soket API ile TCP ve UDP istemci-sunucu uygulamaları geliştirirsiniz.

✅
G/Ç Çoğullama

epoll ve poll ile yüksek eşzamanlı, olay güdümlü sunucular kurarsınız.

✅
Hata Ayıklama

strace ve gdb ile sistem seviyesi hataları teşhis edip çözersiniz.

Kimler İçin Uygundur?

  • C diline hakim
  • Linux/UNIX üzerinde sistem yazılımı
  • sunucu uygulaması veya gömülü yazılım geliştiren mühendisler
  • ileri düzey programcılar için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
C diline hakim, Linux/UNIX üzerinde sistem yazılımı, sunucu veya gömülü uygulama geliştiren ileri düzey programcılar ve mühendisler için uygundur.
C bilmeden katılabilir miyim?
Önerilmez; işaretçiler, bellek yönetimi ve struct dahil orta-ileri düzey C bilgisi eğitimin temel ön koşuludur.
Hangi IPC yöntemleri işlenir?
Pipe, FIFO, POSIX ve System V paylaşımlı bellek, semaforlar ve mesaj kuyrukları karşılaştırmalı olarak uygulanır.
Ağ programlama kapsamda mı?
Evet, soket API ile TCP ve UDP istemci-sunucu geliştirme ve epoll/poll ile G/Ç çoğullama son günde ele alınır.
Eğitim sonunda sertifika verilir mi?
Evet, başarıyla tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Linux/UNIX System Programming Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre4 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Linux ve UnixLinux ve Shell-Bash Script Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

Linux ve Shell-Bash Script Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Bash scripting: değişkenler, koşul ve döngüler, fonksiyonlar, getopts, sed/awk metin işleme, set -euo pipefail hata yönetimi ve cron otomasyonu. Uygulamalı DVA

Detayları Gör →
Linux ve UnixLinux Yönetimi Temelleri Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

Linux Yönetimi Temelleri Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Linux yönetimine giriş: kurulum ve ilk yapılandırma, kullanıcı ve izin temelleri, apt/dnf paketler, systemd servisleri, ağ ayarı ve basit sorun giderme. DVA eği

Detayları Gör →
Linux ve UnixLinux'e Giriş Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

Linux'e Giriş Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Linux'e giriş: Linux tarihi ve açık kaynak felsefesi, dağıtım ekosistemi, masaüstü kullanımı, terminale ilk adım, dosya sistemi ve yazılım kurulumu. DVA eğitimi

Detayları Gör →
Linux ve UnixLinux/UNIX Shell Programming Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

Linux/UNIX Shell Programming Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Bash ve POSIX sh ile değişken genişletme, döngüler, fonksiyonlar, sed/awk ve güvenli otomasyon betikleri yazmayı uygulamalı öğrenin.

Detayları Gör →
Linux ve UnixMastering Bash Scripts Eğitimi
Sistem ve Sunucu Yönetimi Eğitimleri

Mastering Bash Scripts Eğitimi

4 günUzmanOnline / Yüz Yüze / Hibrit

İleri Bash: parametre genişletme, diziler, trap, coproc, performans, güvenlik ve bats testleriyle üretim kalitesinde CLI araçları yazmayı öğrenin.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn