Π’Π°Π±Π»ΠΈΡΠ° 2.4. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Ρ e_machine Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ELF-ΡΠ°ΠΉΠ»Π°
| ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° |
|---|---|
ΠΠ_Π32 | AT&T WE 32100 |
ΠΠ_SPARC | Sun SPARC |
ΠΠ_386 | Intel 80386 |
ΠΠ_68K | Motorola 68000 |
EM_88K | Motorola 88000 |
ΠΠ_486 | Intel 80486 |
ΠΠ_860 | Intel i860 |
ΠΠ_MIPS | MIPS RS3000 Big-Endian |
EM_MIPS_RS3_LE | MIPS RS3000 Little-Endian |
EM_RS6000 | RS6000 |
EM_PA_RISC | PA-RISC |
EM_nCUBE | nCUBE |
EM_VPP500 | Fujitsu VPP500 |
EM_SPARC32PLUS | Sun SPARC 32+ |
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°ΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΄ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ· ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ (ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ) Π² ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΈ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΆΠ΄ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
β‘Β Π’ΠΈΠΏ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠΌ
β‘Β Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π² ΡΠ°ΠΉΠ»Π΅
β‘Β Π‘ΡΠ°ΡΡΠΎΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°
β‘Β Π Π°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π² ΡΠ°ΠΉΠ»Π΅
β‘Β Π Π°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ
β‘Β Π€Π»Π°Π³ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ (Π·Π°ΠΏΠΈΡΡ, ΡΡΠ΅Π½ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅)
Π§Π°ΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ LOAD, ΠΏΡΠ΅Π΄ΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠ΄ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠΈΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΡ. Π‘Π΅Π³ΠΌΠ΅Π½Ρ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ELF-ΡΠ°ΠΉΠ»Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΎΡΠ½ΠΎΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΊΠΎΠ΄) ΠΈ Π΅Π΅ Π΄Π°Π½Π½ΡΠ΅. ΠΡΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠ±Π»Π°ΡΡΠΈ, Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π½ΡΠ»ΡΠΌΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° (BSS). ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΎΠ±Π»Π°ΡΡΡΡ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π² Π³Π»Π°Π²Π΅ 3.
Π ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ ΡΠΈΠΏΠ° INTERP Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠ°Π½Π½ΡΠΉ ΡΠΈΠΏ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅. Π‘ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ) ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π΅ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° Π½Π° ΡΡΠ°ΠΏΠ΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠΌΡ ΡΠ°ΠΉΠ»Π°, ΡΠ²Π»ΡΡΡΠ΅Π³ΠΎΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ ΡΠ²ΡΠ·Π΅ΠΉ, Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΄ΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ²ΡΠ·Π΅ΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π² ΠΏΠ°ΠΌΡΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π½Π΅ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ²ΡΠ·Π΅ΠΉ. ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ²ΡΠ·Π΅ΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΠ΄ΡΠΎΠΌ UNIX ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅. Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°ΠΉΠ» ΡΠ°Π±Π»ΠΈΡΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠΈΠΉ (section). Π Π°Π·Π΄Π΅Π»Ρ (ΡΠ΅ΠΊΡΠΈΠΉ) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΠ°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΈ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ². ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°Ρ . Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠ°Π·Π΄Π΅Π» ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π΄Π΅Π», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡ Π΅ΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΠΎΡΠΌΠ°ΡΡ ELF Π² Π³Π»Π°Π²Π΅ 3 ΠΏΡΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π° ΠΏΠΎΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΌΡ ΡΠΎΡΠΌΠ°ΡΡ β COFF.
Π€ΠΎΡΠΌΠ°Ρ COFF
ΠΠ° ΡΠΈΡ. 2.5 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠΎΡΠΌΠ°ΡΠ° COFF. ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° β Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ COFF ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΈΡΡΠ΅ΠΌΡ UNIX β a.out. ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΡΠ°ΠΌΠΈ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΠ°ΠΉΠ»Π°, Π² ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ°ΠΊΠΆΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.

Π ΠΈΡ. 2.5. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ COFF
Π ΡΠ°ΠΉΠ»Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½ΡΠ»ΡΠΌΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π΄Π»Ρ Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ.
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (symbol table) ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΡΠΎΠΊ (string table). Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΠΈ ΡΠΈΠΏΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»
locptrΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ELF-ΡΠ°ΠΉΠ»Π°, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (ΡΠ°Π±Π». 2.5).
Π’Π°Π±Π»ΠΈΡΠ° 2.5. ΠΠΎΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° COFF-ΡΠ°ΠΉΠ»Π°
| ΠΠΎΠ»Π΅ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
f_magic | ΠΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» |
f_nscns | ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅ |
f_timdat | ΠΡΠ΅ΠΌΡ ΠΈ Π΄Π°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° |
f_symptr | Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅ |
f_nsyms | ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² |
f_opthdr | Π Π°Π·ΠΌΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° |
f_flags | Π€Π»Π°Π³ΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ Π½Π° ΡΠΈΠΏ ΡΠ°ΠΉΠ»Π°, ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ Ρ.Π΄. |