«dynamic-linking» etiketlenmiş sorular

Hesaplamada dinamik bir bağlantı, bir işletim sisteminin (OS), çalışma zamanında çalıştırılabilir bir dosyanın ihtiyaç duyduğu paylaşılan kitaplıkları yükleyen (kalıcı depolama alanından RAM'e kopyalar) ve bağlanan (atlama tablolarını doldurur ve işaretçileri yeniden konumlandırır) işlemidir, yani, yürütülür.

1
Ld-linux.so kesmek ile alternatif libc kullanma; temizleyici yöntem?
Çok eski bir glibc ile eski bir sistemim var, bu da bir test / doğrulama çalışması dağına çıkmadan yükseltemiyoruz. Bu sistemde birkaç kez daha yeni programlar (Java 1.7 gibi) çalıştırmam gerekiyor. Gerekli tüm kütüphaneleri paketlediğim ve bir krootta bir hizmet yürüttüğüm bir chroot çözümü seçtim. Kroot çok sınırlayıcı ve sorunu …

1
Linux, GNU GCC, ld, sürüm komut dosyaları ve ELF ikili biçimi - Nasıl çalışır?
Linux'ta kütüphane sürümlemesi ve bunların nasıl işe yarayacağı hakkında daha fazla bilgi edinmeye çalışıyorum. Bağlam şöyledir: - Dinamik bir kütüphanenin aynı arayüz setini ortaya koyan iki versiyonum var, diyelim libsome1.sove libsome2.so. - Bir uygulamaya bağlı libsome1.so. - Bu uygulama, libdl.sodinamik olarak başka bir modül yüklemek için kullanır diyelim libmagic.so. - …

2
Dinamik bağlayıcı / yükleyicinin kendisi `dosya` tarafından bildirildiği gibi dinamik olarak nasıl bağlanabilir?
Ve paylaşılan nesne bağımlılıkları düşünün /bin/bashiçerir, /lib64/ld-linux-x86-64.so.2(dinamik bağlayıcı / yükleyici): ldd /bin/bash linux-vdso.so.1 (0x00007fffd0887000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f57a04e3000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f57a04de000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f57a031d000) /lib64/ld-linux-x86-64.so.2 (0x00007f57a0652000) İnceleme /lib64/ld-linux-x86-64.so.2, bunun aşağıdakiler için bir sembolik olduğunu gösterir /lib/x86_64-linux-gnu/ld-2.28.so: ls -la /lib64/ld-linux-x86-64.so.2 lrwxrwxrwx 1 root root 32 May 1 19:24 /lib64/ld-linux-x86-64.so.2 …

2
NixOS'ta ikili çalıştırılamıyor - Böyle bir dosya veya dizin yok
Mevcut oracle jre'i NixOS çalıştıran bir sanal makineye kurmaya çalıştım. Şimdi aşağıdakiler olur: [michas@cc:~]$ tar xvzf jre-7u40-linux-x64.tar.gz |grep bin/java jre1.7.0_40/bin/javaws jre1.7.0_40/bin/java_vm jre1.7.0_40/bin/java [michas@cc:~]$ ls -l ./jre1.7.0_40/bin/java -rwxr-xr-x 1 michas nogroup 7750 Aug 27 09:17 ./jre1.7.0_40/bin/java [michas@cc:~]$ ./jre1.7.0_40/bin/java bash: ./jre1.7.0_40/bin/java: No such file or directory O NE LAN? Adı verilen dosya …

2
ELF paylaşılan kütüphaneleri - PLT için motivasyon
Kendi kendini değiştiren kod, dinamik olarak bağlı kütüphanelerde fonksiyon çağrısını hızlandırmak için kullanılabilir mi? Anladığım kadarıyla, ELF paylaşılan kütüphaneleri , kütüphane fonksiyonlarının tembel bağlanmasını sağlamak için bir tür dolaylı atlama tablosu (prosedür bağlantı tablosu veya PLT) kullanır. Amaç, ilk çağrıda işlev konumlarının tembel çözümlenmesini sağlarken kod segmentindeki tabloyu değiştirmekten kaçınmak …


1
ELF yürütülebilir dosyasının hangi bölümleri belleğe yüklenir ve nerede?
Zaten bildiğim: Bir ELF yürütülebilir dosyasının birkaç bölümü vardır, açıkçası .text ve .data bölümleri programın ana bölümleri olduğu için belleğe yüklenir. Ancak bir programın çalışması için, özellikle dinamik olarak bağlandığında daha fazla bilgiye ihtiyaç duyar. İlgilendiğim şey .plt, .got, .dynamic, .dynsym, .dynstr etcetera gibi bölümlerdir. ELF'nin işlevlerin adreslere bağlanmasından sorumlu …

2
Neden paylaşılan bir kitaplığın birden çok sürümünü yükleyemiyorum?
Genellikle belirli bir programın xy kitaplığı sürümüne ve xz'de başka bir programa bağlı olacağı durumlar vardır, ancak bildiğim kadarıyla, hiçbir paket yöneticisi hem xy hem de xz'yi yüklememe izin vermeyecektir Bazen her iki ana sürüme de (örneğin qt4 ve qt5, aynı anda yüklenebilir), ancak (görünüşte) asla küçük sürümler değildir. Bu …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.