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?

Paylaşımlı Kütüphaneler

Paylaşımlı kütüphaneler, çalışabilir dosya içeriğine kopyalanmaksızın, proses adres alanına sonradan dinamik olarak yüklenen kütüphanelerdir. Birden çok proses aynı paylaşımlı kütüphane kodunu kullanabilmektedir. Statik kütüphanelerin aksine, aynı kütüphaneyi kullanan uygulamalar kütüphane kodunu direkt olarak kopyalamadıklarından, disk ve RAM üzerinde kazanç elde edilmektedir.

Paylaşımlı kütüphaneler ayrıca, program tarafından ihtiyaç halinde eklenti (plugin) olarak yüklenebilmekte ve bu sayede program ek özellikler kazanabilmektedir.

Uygulamanın kütüphane koduna katı bir şekilde bağlanmaması sayesinde, bir çok durumda uygulama yeniden derlenmeksizin kütüphane üzerinde değişiklik yapılabilmektedir.

Paylaşımlı kütüphaneleri yukarıda saydıklarımıza ek bir çok özelliği daha bulunmaktadır, yeri geldikçe bunlara değinmeye çalışacağız.

Bu bölümde, temel olarak, Linux altında, x86 ve x64 hedefli paylaşımlı kütüphanelerin nasıl oluşturulduğunu ve kullanıldığını inceleyeceğiz.

Öncesinde, kütüphanelere neden ihtiyaç duyulduğuna ve statik kütüphanelere bakmak faydalı olacaktır.

Paylaşımlı kütüphaneler için İngilizce shared libraries, shared objects, dynamic shared objects (DSOs) ve dynamically linked libraries (DLLs) ifadelerinin kullanıldığını görmekteyiz.

PreviousCapabilities APINextKütüphane Gereksinimi

Last updated 5 years ago

Was this helpful?