Sadece Linux sistemlerinde TLS (thread-local storage) uygulamasının nasıl çalıştığını inceliyorum. ELF Handling for Thread-Local Storage belgesi, bir programın iş parçacığı yerel değişkenleri için gereksinimlerinin bir ELF ikili kodunda nasıl kodlanabileceğini ve "çalışma zamanı" nın bu ikili dosyaları nasıl işleyeceğini açıklamaktadır. Bununla birlikte, pratikte TLS alan (lar) ını oluşturan "çalışma zamanı" nın Linux çekirdeği (ve ELF ikili dosyalarını yükleme kodu) veya libc'de bazı başlatma kodu olup olmayacağı açık değildir. Birisi kısaca açıklayabilir mi?Linux'ta, çekirdek tarafından veya TLC (veya başka bir dil çalışma zamanı) tarafından kurulan TLS nedir?
(Arka plan: Bir uygulamayı statik olarak bağlamaya ve çalıştırmaya çalışıyorum, ancak başlangıçta segfaults. Gdb'de, segfault kodunun libc'den bir init kodu olduğunu görebiliyorum. Statik bir değişken okumaya çalışıyor GS'ye göre bir adres kullanılarak, ancak GS sıfırdır.)
glibc ve musl açık kaynaklıdır; onlar için kaynak kodunu kontrol edebilirsiniz. –
TLS (iş parçacığı depolama alanı) veya TLS (aktarım katmanı güvenliği) hakkında mı konuşuyorsunuz? İçerik, iş parçacığı yerel depolama önerir; tag [tag: ssl] ikincisini önerir. Sen eş anlamlı mıydın? [Tag: ssl] etiketini kaldırdım ve [tag: thread-local-storage] özelliğini ekledim, ancak [tag: tls] kendiliğinden açıkça [tag: ssl] ile eşlenmedi. –
@JonathanLeffler, thread-local-storage anlamına gelen tls ekledim. Hatayı düzeltdiğiniz için teşekkürler. –