Linux Sistem Programlama
  • Kapak
  • Önsöz
  • Sistem Programlamaya Giriş
    • Tarihçe
    • Standartlar
    • Sistem Çağrıları
    • API ve ABI
  • Linux Çekirdeği
  • Kabuk
  • Dosya Sistemi
  • Kullanıcı, Grup ve Erişim Yetkileri
  • Process Kavramı
  • Dosya İşlemleri
  • IO Modelleri
    • Senkron IO
    • Asenkron IO
  • Sinyaller
    • Temel Kavramlar
    • Sinyal Yakalama ve Gönderme
    • Signal-Safe Kavramı
    • Sinyal Kümeleri
    • Sinyal Bloklama
    • Sinyal İle Birlikte Veri Gönderimi
    • Sinyal ve Core Dump
    • RealTime Sinyaller
    • File Descriptor Üzerinden Sinyal İşleme
    • Genel Değerlendirme
  • Thread Kullanımı
    • Thread Oluşturma
    • Thread Türleri
    • Thread Sonlandırma
    • Mutex Kullanımı
    • SpinLock & Mutex Karşılaştırması
    • Futex
  • Semafor Kullanımı
    • Semafor ve Mutex Karşılaştırması
    • Semafor Türleri
    • Semafor Operasyonları
  • Shared Memory Kullanımı
  • Memory Mapped IO
  • Soket Kullanımı
    • Soket API
    • TCP Soketleri
    • UDP Soketleri
    • UNIX Soketleri
    • Birden Çok İstemciyle Çalışma
  • Timer Kullanımı
    • Basit Timer Yapıları
    • POSIX Timer API
    • Event Loop İçinde Kullanım
  • Daemon Oluşturma
  • Capabilities API
  • Paylaşımlı Kütüphaneler
    • Kütüphane Gereksinimi
    • Statik Kütüphaneler
    • Kod Referanslarının Ele Alınması
    • Paylaşımlı Kütüphanelerin Oluşturulması
    • Dinamik Yükleme
    • Derleme Zamanında Kütüphanelerin Aranması
    • Çalışma Zamanında Kütüphanelerin Aranması
    • Statik ve Dinamik Kütüphanelerin Beraber Kullanılması
    • Versiyon Yönetimi
  • Process'ler Arası Haberleşme
  • Memory Allocation
  • Memory Barriers
  • Hata Ayıklama Yöntemleri
    • GNU Debugger
    • Strace
  • GNU Build Sistemi Araçları
    • Make
    • Autoconf, Automake
  • Ek Bölümler
    • Derleyici Optimizasyonları
    • Clang ve LLVM
    • İçsel ve Anonim Fonksiyonlar
      • İçsel Fonksiyonlar
      • Anonim Fonksiyonlar
    • FreeTDS ile SqlServer Bağlantısı
  • Kaynak Dosyalar
Powered by GitBook
On this page

Was this helpful?

Önsöz

PreviousKapakNextSistem Programlamaya Giriş

Last updated 5 years ago

Was this helpful?

Unix/Linux platformlarında verimli uygulamalar geliştirebilmek için uygulama geliştiricinin kullandığı sistemin genel özelliklerinden ve sistem programlama disiplini altında değerlendirilen temel kavramlarla ilgili daha fazla bilgi sahibi olması gereklidir.

Bunu tek başına olumsuz bir faktör olarak değerlendirmemek gerekir. Esasen iyi bir uygulama geliştiricinin yolu, elbette sistem programlamadan da geçmelidir. Eğer Java, Ruby on Rails vb. gibi çok üst düzey soyutlamalar sunan gelişmiş bir dil/platform kullanıyorsanız, sistem programlama bilgisi günlük çalışmalarınız için elzem değildir. Bununla birlikte sistem programlama bilgisi, bu platformlarda dahi ortaya çıkan iş kalitesini artıran bir etken olacaktır. Ne kadar üst seviye bir dil olursa olsun, daha karmaşık konularda sistem programlamaya başvuru kaçınılmazdır.

Örnek olarak Ruby 2.1 Garbage Collection iyileştirmesi ve bir takım sihirli ortam değişkenlerinin etkisini anlayabilmek için, sistem programlama konularına önemli oranda aşina olmanız gerekir.

Bu kitapta biz öncelikli olarak Linux Sistem Programlama konularına değinecek, yanısıra doğrudan sistem programlama ile ilgisi olmamakla birlikte ilginizi çekebilecek bazı ek başlıklara da yer vereceğiz.

Ruby 2.1 Garbage Collection: ready for production
Ruby 2.1: Out-of-Band GC