Kendini neden Linux yerine işletim sistemim olarak “Sistem V” gösteriyor?


10

ELF dosya biçimini anlamaya çalışmak için gcc ile küçük bir C programı (2 satır kod) derledim. Bir yaparak readelf -hnesne dosya üzerinde, ben başlığında var:

OS/ABI:                            UNIX - System V 

Fedora kullanıyorum, neden Linux değil?

Düzenleme : Derledim

int main(){
  int x = 0;
  x++;
}

ile gcc -o main.o -c main.c. Gcc versiyonum

gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4) 

Lütfen bize i) derlediğiniz kodu ii) çıktısını gcc --versionve iii) derlemek için kullandığınız komutun aynısını gösterin .
terdon

Soruyu buna göre düzenledim.
alex_reader

Ben readelf -h /bin/lsdebian gnu / linux üzerinde yaptım . Ayrıca gösterdi OS/ABI: UNIX - System V. Tahminimce ABI sadece linux üzerinde değil, birden fazla çekirdekte kullanılıyor. Ayrıca linux'un birden fazla ABI'yi desteklediğini de biliyorum.
ctrl-alt-delor

6
Vikipedi diyor O [ELF başlığındaki OSABI alanı] sıklıkla ayarlandığında 0 [SysV] bakılmaksızın hedef platformun
Stéphane Chazelas

1
Bu alan, ELF dosyasının işletim sistemine özel uzantılar kullanıp kullanmadığını gösterir, varsayılan değer 0'dır. Burada daha ayrıntılı açıklama (EI_OSABI'da).
Leiaz

Yanıtlar:


8

Farklı platformlarda ELF yürütülebilir dosyaları arasında çok az fark vardır. “UNIX - Sistem V” ortak bir zemindir; Sistem V , ELF formatının geldiği yerdir . Karşılık gelen sayısal değer 0'dır. Bu değer, yürütülebilir dosyanın işletim sistemine özgü bir uzantı kullanmadığını gösterir. Debian GNU / Linux, en azından GCC / binutils'i, bu alan varsayılan olarak 0'a ayarlanmış yürütülebilir dosyalar oluşturacak şekilde yapılandırır.


3
Ve ELF standart 0 araçları "ELFOSABI_NONE 0 Yok uzantıları veya belirtilmemiş" diyor sco.com/developers/gabi/2003-12-17/ch4.eheader.html
Ciro Santilli冠状病毒审查六四事件法轮功
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.