readelf가 Linux 대신 OS로 “System V”를 표시하는 이유는 무엇입니까?

ELF 파일 형식을 이해하려고 gcc로 작은 C 프로그램 (2 줄의 코드)을 컴파일했습니다. readelf -h객체 파일을 수행하면 헤더에 있습니다.

OS/ABI:                            UNIX - System V

Fedora를 사용하고 있는데 왜 Linux가 아닌가요?

편집 : 내가 컴파일

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

gcc -o main.o -c main.c. 내 gcc 버전은

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



답변

다른 플랫폼에서 ELF 실행 파일 간에는 약간의 차이가 있습니다. “UNIX-System V”가 공통점입니다. 시스템 VELF 형식이 시작된 곳 입니다. 해당 숫자 값은 0입니다.이 값은 실행 파일이 OS 별 확장자를 사용하지 않음을 나타냅니다. 최소한 데비안 GNU / 리눅스는이 필드를 기본적으로 0으로 설정하여 실행 파일을 생성하도록 GCC / binutils를 구성합니다.


답변