Dosya komutu neden ELF ikili dosyalarının Linux 2.6.9 için olduğunu söylüyor?


18

Ne zaman bir ELF ikili dosya çalıştırdığınızda bu çıktıyı alıyorum:

[jonescb@localhost ~]$ file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, 
not stripped

Linux 2.6.9'da bu ikilinin 2.6.8'de çalışamayacağını neyin değiştirdiğini merak ediyorum. Linux 2.0'da ELF desteği eklenmedi mi?

Yanıtlar:


23

glibc--enable-kerneldesteklenen en düşük çekirdek sürümünü belirtmenizi sağlayan bir yapılandırma seçeneğine sahiptir . Nesne dosyaları bu glibc derlemesine bağlandığında, linker sonuçta ortaya çıkan yürütülebilir dosyaya .note.ABI-tago minimum çekirdek sürümünü içeren bir SHT_NOTE bölümü ekler . Tam biçim LSB'de tanımlanır ve fileo bölümü ve nasıl yorumlanacağını bilir.

Belirli glibc'nizin 2.6.9 gerektirecek şekilde oluşturulmasının nedeni, onu kimin oluşturduğuna bağlıdır. Benim sistemimde de aynı şey (Gentoo); glibc ebuild'deki bir yorum, 2.6.9 belirttiğini söylüyor çünkü NPTL için gereken minimum değer , bu muhtemelen ortak bir seçim. Görünüşe göre bir diğeri 2.4.1, çünkü NPTL'den önce kullanılan paket LinuxThreads için gereken minimum değerdi


Gerekli olan minimum çekirdek sürümünü artırırken performans geliştirmeleri alıyor musunuz? Bunu yapmanın faydaları nelerdir?
Aaron Franke

Burada (Fedora 31, x86_64) /lib/libc-2.30.so, çekirdek 3.20'yi gerektirir (geçerli çekirdek sürümü 5.3.12-300'dür)
vonbrand
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.