2012-02-27 7 views
6

私は2つの従来のクロスコンパイルされたARM Linuxビルドを掘り下げています。 「ソースを構築するために、このVMイメージを使用」以外の多くのドキュメントがありませんファイルコマンドの出力間の唯一の違いは、ベースと仮定し、私はできるはずです何を「(SYSV)」Linuxファイルコマンド:SYSVは何を意味しますか?

# file Executable 
Executable: ELF 32-bit LSB executable, ARM, version 1 (SYSV) ... 

の存在であります文字列にSYSVが存在するかどうかについては?

+3

おそらくUNIXシステムに関連しています。V – Icarus

+1

+1 @icarus http://en.wikipedia.org/wiki/UNIX_System_Vこれには、まだUNIXのようなOSで使用されている多くの標準が含まれています。 – mikemaccana

答えて

10

あなたはその(SYSV)文字列が表示された場合、それはELFヘッダ内のe_ident[EI_OSABI]フィールドはELF spec (PDF link)から0に設定されている意味:

Table 5. Operating System and ABI Identifiers, e_ident[EI_OSABI] 
Name     Value Meaning 
ELFOSABI_SYSV   0  System V ABI 
ELFOSABI_HPUX   1  HP-UX operating system 
ELFOSABI_STANDALONE 255 Standalone (embedded) application 

私のローカルマシンの/usr/share/file/magic/elfファイルは、長いリストを持っています

# Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed 
# like proper ELF, but extracting the string had bad results. 
>4  byte   <0x80 
>>8 string  >\0  (%s) 
>8 string  \0 
>>7 byte  0  (SYSV) 
>>7 byte  1  (HP-UX) 
>>7 byte  2  (NetBSD) 
>>7 byte  3  (GNU/Linux) 
>>7 byte  4  (GNU/Hurd) 
>>7 byte  5  (86Open) 
>>7 byte  6  (Solaris) 
>>7 byte  7  (Monterey) 
>>7 byte  8  (IRIX) 
>>7 byte  9  (FreeBSD) 
>>7 byte  10  (Tru64) 
>>7 byte  11  (Novell Modesto) 
>>7 byte  12  (OpenBSD) 
>8  string   \2 
>>7  byte   13    (OpenVMS) 
>>7 byte  97  (ARM) 
>>7 byte  255  (embedded) 

参照用のELFヘッダーとオフセットは次のとおりです(this linkから):

#define EI_NIDENT 16 

typedef struct { 
     unsigned char e_ident[EI_NIDENT]; 
     Elf32_Half  e_type; 
     Elf32_Half  e_machine; 
     Elf32_Word  e_version; 
     Elf32_Addr  e_entry; 
     Elf32_Off  e_phoff; 
     Elf32_Off  e_shoff; 
     Elf32_Word  e_flags; 
     Elf32_Half  e_ehsize; 
     Elf32_Half  e_phentsize; 
     Elf32_Half  e_phnum; 
     Elf32_Half  e_shentsize; 
     Elf32_Half  e_shnum; 
     Elf32_Half  e_shstrndx; 
} Elf32_Ehdr; 


Figure 4-4: e_ident[] Identification Indexes 
Name  Value Purpose 
EI_MAG0  0  File identification 
EI_MAG1  1  File identification 
EI_MAG2  2  File identification 
EI_MAG3  3  File identification 
EI_CLASS  4  File class 
EI_DATA  5  Data encoding 
EI_VERSION 6  File version 
EI_OSABI  7  Operating system/ABI identification 
EI_ABIVERSION 8  ABI version 
EI_PAD  9  Start of padding bytes 
EI_NIDENT  16 Size of e_ident[] 
+0

詳細な対応をありがとうございます。 –

+0

問題ありません - 喜んで助けてください。 –

関連する問題