Dilini seç
Linux Sistem Programlama Eğitimi
Dünya çapında 2 milyondan fazla öğrenci

Linux Sistem Programlama Eğitimi

Linux çekirdeğinin derinliklerine inin ve doğrudan işletim sistemiyle konuşan, üretim kalitesinde C programları yazmayı öğrenin. Bu kurs

Dedika İşletmeler için

Neler öğreneceksiniz:

Linux'un süreçleri, belleği, dosyaları ve ağ bağlantılarını sistem çağrısı düzeyinde nasıl yönettiğine dair kesin bir anlayış geliştireceksin. Dosya G/Ç, süreçler arası iletişim ve soket tabanlı ağ oluşturma için POSIX API'lerini kullanan C programları yazacaksın. pthreads eşzamanlama ilkellerini kullanarak çok iş parçacıklı uygulamalar geliştirecek ve veri yarışlarını ortadan kaldıracaksın. GDB, strace, Valgrind, AddressSanitizer, perf ve io_uring dahil olmak üzere ileri düzey araçları uygulayacaksın. Ayrıca ad alanları, seccomp ve yetenekler gibi Linux güvenlik ilkellerini de ele alacaksın. Sonunda, üretim Linux ortamlarında güvenilir bir şekilde çalışan sistem yazılımlarını tasarlama, hata ayıklama ve optimize etme becerisine sahip olacaksın.

Nasıl pratik şekilde çalışırsınız Linux Sistem Programlama Eğitimi

Nasıl pratik yaparsınız Linux Sistem Programlama Eğitimi

Şirketiniz için ekibinizi eğitmek isteyenlere özel

Dedika Kurumsal'da, kurs kendi işinize ve şirketinizin ihtiyaçlarına uygun egzersizler ve örneklerle gelir.

Buraya tıklayın

Kurs İçeriği

8 Bölüm • 40 Ders4 ile 360 saat arasında (siz karar verin)

Bölüm 1Detayları Gör

Linux Sistem Programlamanın Temelleri

  • Ders 1 • Sistem Çağrılarına Giriş

    Kullanıcı programlarının, glibc sarmalayıcıları ve ham syscall kullanarak çekirdek hizmetlerini nasıl çağırdığını gösterir. C kütüphane işlevlerini temel çekirdek işlemlerine bağlar.

  • Ders 2 • Linux Mimarisi ve Çekirdeğe Genel Bakış

    Çekirdek alanı ile kullanıcı alanı arasındaki farkı, monolitik çekirdek tasarımını ve donanım soyutlamasını kapsar. Sonraki tüm programlama konularının dayandığı kavramsal çerçeveyi oluşturur.

  • Ders 3 • Derleme, Bağlama ve Yükleme

    Kaynak koddan çalıştırılabilir dosyaya kadar tüm araç zinciri hattını, statik ve dinamik bağlama dahil olmak üzere açıklar. Öğrencileri derleme hatalarını teşhis etmeye ve ikili dosya yapısını anlamaya hazırlar.

  • Ders 4 • Sistem Çalışmaları için Temel C Bilgisi

    Sistem kodları için kritik olan işaretçiler, bellek düzeni, yapılar ve bit düzeyinde işlemleri gözden geçirir. Genel C bilgisini, kurs boyunca kullanılan düşük seviyeli kalıplara köprüler.

  • Ders 5 • Geliştirme Ortamı Kurulumu

    GCC, GDB, Make ve gerekli kütüphanelerle bir Linux geliştirme ortamı yapılandırır. Her öğrencinin herhangi bir kod yazmadan önce tekrarlanabilir bir derleme taban çizgisine sahip olmasını sağlar.

Bölüm 2Detayları Gör

Dosya G/Ç'si ve VFS Katmanı

  • Ders 1 • Dizin ve Metaveri İşlemleri

    stat(), dizin dolaşımı ve sabit ve sembolik bağlantılar dahil bağlantı yönetimini öğretir. Programların dosya sistemi yapısını programlı olarak incelemesini ve değiştirmesini sağlar.

  • Ders 2 • POSIX Dosya İşlemleri

    open(), read(), write(), lseek() ve close() işlevlerini ilgili tüm bayraklar ve modlarla kapsar. Doğru kullanım kalıplarını ve kısmi okuma/yazma gibi yaygın tuzakları öğretir.

  • Ders 3 • Bellekle Eşlenen Dosyalar

    Hızlı G/Ç ve paylaşılan veri için dosyaları süreç adres alanına eşlemek üzere mmap()'i gösterir. Dosya G/Ç'sini sonraki bölümlerde tanıtılan sanal bellek kavramlarına bağlar.

  • Ders 4 • Dosya Tanımlayıcıları ve Açık Dosyalar

    Açık dosya tablosunu, dosya tanımlayıcı tam sayılarını ve bunların arkasındaki çekirdek veri yapılarını açıklar. Sonraki tüm G/Ç çalışmalarını, çekirdeğin açık dosyaları nasıl takip ettiğine dair kesin bir modele dayandırır.

  • Ders 5 • Gelişmiş Dosya İşlemleri

    Dağınık-topla G/Ç, dosya kırpma ve seyrek dosyalar için delik açmayı tanıtır. Temel G/Ç becerilerini yüksek performanslı ve depolama açısından verimli senaryolara genişletir.

Bölüm 3Detayları Gör

Süreçler: Oluşturma, Kontrol ve Sonlandırma

  • Ders 1 • Süreç İç Yapısı ve Nitelikleri

    PID, PPID, UID, GID ve çekirdeğin tuttuğu süreç tanımlayıcı alanlarını inceler. Süreçleri programlı olarak kontrol etmek için gereken kelime dağarcığını ve veri modelini sağlar.

  • Ders 2 • Alt Süreçleri Bekleme ve Toplama

    Alt süreç çıkış durumunu toplamak ve zombileri önlemek için wait(), waitpid() ve waitid()'i öğretir. Öğrencilerin sızıntısız çok süreçli programlar yazmasını sağlar.

  • Ders 3 • exec() ile Programları Çalıştırma

    exec ailesini, argüman ve ortam geçirmeyi ve exec sırasında neyin korunduğunu açıklar. Öğrencilerin süreç görüntülerini doğru şekilde değiştiren kabuklar ve süreç başlatıcılar oluşturmasını sağlar.

  • Ders 4 • fork() ile Süreç Oluşturma

    Kopyalama-üzerine-yazma semantiğini, dönüş değeri yönetimini ve fork() sonrası kaynak mirasını kapsar. Kurstaki tüm çok süreçli programlama kalıplarının temelini oluşturur.

  • Ders 5 • Süreç Kimlik Bilgileri ve Ayrıcalık

    setuid/setgid bitlerini, yetenek kümelerini ve güvenli süreç tasarımı için ayrıcalık düşürmeyi kapsar. Öğrencileri yükseltilmiş izinleri güvenli bir şekilde yöneten programlar yazmaya hazırlar.

Bölüm 4Detayları Gör

Sinyaller: İletim, İşleme ve Maskeleme

  • Ders 1 • Sinyal Kavramları ve Standart Sinyaller

    Sinyal numaralarını, varsayılan düzenleri ve çekirdek iletim mekanizmasını tanıtır. Herhangi bir sinyal işleme kodu yazmadan önce gereken kavramsal modeli oluşturur.

  • Ders 2 • Sinyal Maskeleri ve Engelleme

    sigprocmask(), sigset_t manipülasyonu ve engelleme yoluyla kritik bölge korumasını öğretir. Öğrencilerin çok adımlı işlemlerde sinyal yarışlarını önlemesini sağlar.

  • Ders 3 • Eşzamansız-Sinyal-Güvenli Programlama

    Doğru, yeniden girişli işleyiciler yazmak için eşzamansız-sinyal-güvenli işlevleri ve kalıpları tanımlar. İşleyicilerin içinde güvenli olmayan işlevleri çağırmaktan kaynaklanan ince hataları önler.

  • Ders 4 • Gerçek Zamanlı Sinyaller ve signalfd

    POSIX gerçek zamanlı sinyallerini, sıralama garantilerini ve senkron işleme için signalfd() arayüzünü kapsar. Sinyal becerilerini yüksek güvenilirlikli ve olay güdümlü mimarilere genişletir.

  • Ders 5 • Sinyal İşleyicileri Kurma

    sigaction() yapısını, SA_bayraklarını ve eski signal()'dan farklarını kapsar. Yarış koşullarından kaçınan işleyiciler kurmanın doğru ve taşınabilir yolunu öğretir.

Bölüm 5Detayları Gör

Süreçler Arası İletişim

  • Ders 1 • POSIX Mesaj Kuyrukları

    mq_open(), mq_send(), mq_receive() ve öncelik tabanlı mesaj teslimatını öğretir. Mesaj odaklı IPC için bayt akışı borularına yapılandırılmış, türlendirilmiş bir alternatif sağlar.

  • Ders 2 • IPC Mekanizmalarını Karşılaştırma ve Seçme

    Tüm IPC türlerinde verim, gecikme süresi, karmaşıklık ve kalıcılık ödünleşimlerini analiz eder. Öğrencileri gerçek sistem tasarımlarında bilinçli mimari kararlar alabilmeleri için donatır.

  • Ders 3 • POSIX Semaforları

    Adlandırılmış ve adlandırılmamış semaforları, sem_wait/sem_post ve karşılıklı dışlama kalıplarını kapsar. Paylaşımlı belleği güvenli kullanmak için gereken senkronizasyon katmanını sağlar.

  • Ders 4 • Borular ve FIFO'lar

    Anonim boruları, FIFO oluşturmayı ve ilişkili ve ilişkisiz süreçler için üretici-tüketici kalıbını kapsar. En basit koordinasyon ilkeli olarak tek yönlü bayt akışı IPC'sini tanıtır.

  • Ders 5 • POSIX Paylaşımlı Bellek

    Süreçler arasında paylaşımlı bellek bölgeleri oluşturmak için shm_open(), ftruncate() ve mmap()'i gösterir. Yüksek verimli sıfır kopyalı veri alışverişini sağlar ve öğrencileri semafor tabanlı senkronizasyona hazırlar.

Bölüm 6Detayları Gör

Bellek Yönetimi ve Sanal Bellek

  • Ders 1 • Gelişmiş mmap() Kullanımı

    Performans ayarı için MAP_ANONYMOUS, MAP_FIXED, büyük sayfalar ve madvise()'i gösterir. mmap() becerilerini dosya G/Ç'sinden genel amaçlı bellek yönetimine genişletir.

  • Ders 2 • Öbek Ayırma ve Ayırıcı

    malloc(), calloc(), realloc(), free()'i ve alanlar dahil glibc ayırıcı iç yapısını kapsar. Doğru ayırma kalıplarını ve öbek bozulmasından nasıl kaçınılacağını öğretir.

  • Ders 3 • Bellek Koruması ve İzinler

    Sayfa izinlerini değiştirmek için mprotect()'i ve ara bellek taşması tespiti için koruma sayfalarını öğretir. Öğrencilerin bellek düzeyinde güvenlik sertleştirme teknikleri uygulamasını sağlar.

  • Ders 4 • Sanal Bellek Mimarisi

    Sayfa tablolarını, sanal adres alanı düzenini ve /proc/pid/maps arayüzünü açıklar. Ayırıcı davranışını ve mmap() semantiğini anlamak için gereken zihinsel modeli sağlar.

  • Ders 5 • Bellek Hatalarını Tespit Etme ve Düzeltme

    Sızıntıları, kullanım-sonrası-serbest bırakma hatalarını ve taşmaları bulmak için Valgrind, AddressSanitizer ve LeakSanitizer kullanır. Üretim kalitesinde bellek güvenliğini sürdürmek için gereken tanı becerilerini oluşturur.

Bölüm 7Detayları Gör

POSIX İş Parçacıkları ve Senkronizasyon

  • Ders 1 • İş Parçacığı Oluşturma ve Yaşam Döngüsü

    pthread_create(), iş parçacığı niteliklerini, ayırma durumunu ve pthread_join()'i kapsar. Tüm senkronizasyon konularının üzerine inşa edildiği iş parçacığı yaşam döngüsü modelini oluşturur.

  • Ders 2 • Okuma-Yazma Kilitleri ve Bariyerler

    Okuma ağırlıklı iş yükleri için rwlock ve aşama senkronizasyonu için pthread_barrier'ı kapsar. Senkronizasyon araç setini, özel kilitlemenin çok kaba olduğu kalıplara genişletir.

  • Ders 3 • Koşul Değişkenleri

    pthread_cond_wait(), hatalı uyandırmalar ve yüklem döngüsü kalıbını gösterir. İş parçacıklarının boşta bekleme yapmadan durum değişikliklerini verimli bir şekilde beklemesini sağlar.

  • Ders 4 • Muteksler ve Kritik Bölgeler

    Muteks başlatma, kilit/açık disiplini ve hata denetleyen muteks türlerini öğretir. Paylaşılan verileri eşzamanlı değişiklikten korumak için birincil aracı sağlar.

  • Ders 5 • İş Parçacığı-Yerel Depolama ve Güvenlik

    __thread, pthread_key_t ve çok iş parçacıklı programlamada eşzamansız-sinyal güvenliğini açıklar. Paylaşımı önleyen ve kilit çekişmesini azaltan iş parçacığı başına durum kalıplarını öğretir.

Bölüm 8Detayları Gör

Soketler ve Ağ Programlama

  • Ders 1 • Bloke Olmayan G/Ç ve epoll

    Bloke olmayan soketler, epoll_create() ve kenar tetiklemeli mod kullanarak olay güdümlü bir sunucu uygular. Bağlantı yönetimini iş parçacığı başına bağlantı modelinin ötesine taşır.

  • Ders 2 • Soket API Temelleri

    IPv4 ve IPv6 için socket(), bind(), listen(), accept(), connect() ve adres yapılarını kapsar. Tüm ağ programlamanın üzerine inşa edildiği temel API yüzeyini oluşturur.

  • Ders 3 • UDP ve Verigram Soketleri

    UDP için sendto(), recvfrom() ve bağlantısız iletişim kalıplarını kapsar. UDP'nin güvenilmez teslimatını TCP ile karşılaştırır ve uygun kullanım durumlarını belirler.

  • Ders 4 • Soket Seçenekleri ve Gelişmiş Özellikler

    Tamponları, keepalive'ı ve Nagle algoritması kontrolünü ayarlamak için getsockopt()/setsockopt()'u öğretir. Ağ bağlantılarının ince ayarlı performans ve güvenilirlik ayarını sağlar.

  • Ders 5 • TCP İstemci-Sunucu Programlama

    Doğru bağlantı yönetimi ve sonlandırma ile tam bir TCP yankı sunucusu ve istemcisi uygular. Güvenilir akış iletişimini ve kısmi gönderme/alma işlemlerini yönetmenin önemini öğretir.

Sertifikasyon

Geçerli tamamlama sertifikanız

Bu kurs sizin için:

  • Framework'lerinin altında neler olduğunu anlamak isteyen arka uç geliştiriciler.

  • Linux tabanlı platformlara ve POSIX API'lerine geçiş yapan gömülü sistem mühendisleri.

  • Ders çalışmaları ile endüstriyel sistem çalışmaları arasındaki boşluğu doldurmak isteyen bilgisayar bilimi mezunları.

  • Tahmin yürütmeden çekirdek düzeyindeki sorunları teşhis etmek isteyen DevOps mühendisleri.

  • Eğitimlerin ötesine geçip gerçek işletim sistemi etkileşimine geçmeye hazır hobi C programcıları.

  • Güvenlik açıklarını bulmak için Linux iç yapısını anlaması gereken güvenlik araştırmacıları.

Öğrencilerimiz ne diyor

Dersleriniz mükemmel. Bir yıllık paketi aldım ve sonunda ilgilendiğim çeşitli konuları platform değiştirmek zorunda kalmadan takip etme fırsatım var... yaptığınız her şey için teşekkür ederim, sizi başkalarına da tavsiye ettim...
Giulio Carlo
Giulio CarloDijital Pazarlama Öğrencisi
Derslerin doğrudan konuya odaklanmasını ve bölümleri değiştirebilmemi, ihtiyacım olmayan içerikleri atlayabilmemi seviyorum.
Mariana Ferres
Mariana FerresFotoğrafçılık Öğrencisi
İçeriği ve video sunumu ile transkripsiyon yöntemini seviyorum, bu süreci hızlandırıyor!
Luciana Alvarenga
Luciana AlvarengaTırnak Tasarımı Öğrencisi
Platform hızlı, kullanımı kolay. İçerik çeşitliliği ve tamamlayıcı videolar öğrenmeye çok yardımcı oluyor.
André Felipe
André FelipePrompt Mühendisliği Öğrencisi

Başlıca yetkinlikler

SSS

Dedika kimdir?

Sertifika Türkiye’de geçerli mi?

Kurslar ücretsiz mi?

Kursların ders yükü nedir?

Kurslar nasıl bir yapıya sahip?

Kurslar nasıl çalışıyor?

Kursların süresi nedir?

Kursların maliyeti veya fiyatı nedir?

Eğitimde uzaktan eğitim (EAD) veya online kurs nedir ve nasıl çalışır?

PDF Kursu