ක්රියාත්මක කළ හැකි සහ සම්බන්ධ කළ හැකි ආකෘතිය (ELF)
දිගුව | none, .axf, .bin, .elf, .o, .prx, .puff, .ko, .mod and .so |
---|---|
අපූර්ව ඉලක්කම | 0x7F 'E' 'L' 'F' |
දියුණුකරන ලද්දේ | Unix System Laboratories[1]:3 |
ආකෘතියේ වර්ගය | Binary, executable, object, shared library, core dump |
කන්ටේනරය සදහා | Many executable binary formats |
පරිගණකයේදී, ධාවනය කළ හැකි ලිපිගොනු, වස්තු කේත, හවුල් පුස්තකාල සහ හරය බැහැරකිරීම් සඳහා ක්රියාත්මක කළ හැකි සහ සම්බන්ධ කළ හැකි ආකෘතිය[2] (ELF, කලින් හැඳින්වූයේ දිගු කළ හැකි සම්බන්ධක ආකෘතිය) පොදු ලෙස භාවිතා කරන ගොනු ආකෘතියකි. යුනික්ස් මෙහෙයුම් පද්ධති අනුවාදයේ System V Release 4 (SVR4) නම් වූ පද්ධතියේ යෙදුම් ද්වීමය අතුරුමුහුණත (ABI, Application Binary Interface) සඳහා වූ පිරිවිතරයන් තුළ මෙය මුලින්ම ප්රකාශයට පත් කළේය.[3] පසුව මෙවලම් අතුරුමුහුණත් සම්මතයේදී[1] විවිධ යුනික්ස් පද්ධති අලෙවිකරුවන් අතර ඉක්මනින් පිළිගන්නා ලදී. 1999 දී, 86open ව්යාපෘතිය මඟින් x86 ප්රොසෙසර වල යුනික්ස් සහ යුනික්ස්-වැනි පද්ධති සඳහා වූ සම්මත ද්විමය ගොනු ආකෘතිය ලෙස එය තෝරා ගන්නා ලදී.
සැලසුම අනුව, ELF ආකෘතිය නම්යශීලී, දිගු කළ හැකි සහ හරස් වේදිකාවේ. නිදසුනක් වශයෙන්, එය විවිධ අන්තයන් සහ ලිපිනයන් ප්රමාණවලට සහය දක්වන බැවින් එය කිසිදු විශේෂිත මධ්ය සැකසුම් ඒකකයක් (CPU) හෝ උපදෙස් මාලා නිර්මාණ ශිල්පයක් බැහැර නොකරයි. මේ නිසාම, විවිධ දෘඩාංග වේදිකා මත පවතින විවිධ මෙහෙයුම් පද්ධති මඟින් එය සම්මත කර ඇත.
ගොනු සැකැස්ම
[සංස්කරණය]සෑම ELF ගොනුවක්ම එක් ELF ශීර්ෂකයකින් සෑදී ඇති අතර පසුව ගොනු දත්ත වලින් සමන්විත වේ. දත්ත ඇතුළත් විය හැකි ආකාරය:
- වැඩසටහන් ශීර්ෂ වගුව, ශුන්ය හෝ වැඩි මතක අංශ විස්තර කරයි
- වගන්ති ශීර්ෂ වගුව, ශුන්ය හෝ වැඩි වගන්ති කොටස් විස්තර කරයි
- වැඩසටහන් ශීර්ෂ වගුව හෝ වගන්ති ශීර්ෂ වගුව මඟින් සඳහන් දත්ත
ගොනුවේ ධාවන කාල ක්රියාත්මක කිරීම සඳහා අවශ්ය තොරතුරු අංශ (segments) වල අඩංගු වන අතර, සම්බන්ධ කිරීම හා නැවත ස්ථානගත කිරීම සඳහා වැදගත් තොරතුරු වගන්ති වල අඩංගු වේ. ගොනුවේ ඇති එක් බයිටයක්, උපරිම ලෙස වගන්ති එකකට හිමිවිය හැකි අතර, අනාත බයිට කිසිදු වගන්තියකටවත් හිමි නොවී භාවිත කළ හැක.
ගොනු ශීර්ෂකය
[සංස්කරණය]ELF ශීර්ෂකය මඟින් බිට් 32 හෝ 64 ලිපිනයන් භාවිතා කළ යුතුද යන්න ප්රකාශ කරයි. ශීර්ෂකයෙහි මෙම සැකැස්ම මඟින් බලපාන ක්ෂේත්ර තුනක් අඩංගු වන අතර ඒවා අනුගමනය කරන අනෙකුත් ක්ෂේත්රයන්හි ආරම්භය තීරනය කරයි. ELF ශීර්ෂකය 32-බිට් සඳහා බයිට් 52 සහ 64-බිට් සඳහා බයිට් 64 ක් දිගයි.
ආරම්භය | ප්රමාණය (බයිට්) | ක්ෂේත්රය | අරමුණ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
32-බිටු | 64-බිටු | 32-බිටු | 64-බිටු | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00 | 4 | e_ident[EI_MAG0] through e_ident[EI_MAG3] | 0x7F ට පසුව ELF (45 4c 46 ) ASCII වලින්; මෙය මායා අංකය වේ.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x04 | 1 | e_ident[EI_CLASS] | මෙම බයිටය 1 නම 32-බිටු ලෙසත් 2 නම් 64-බිටු ලෙසත් සැලකේ.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x05 | 1 | e_ident[EI_DATA] | කුඩා හො විශාල අන්තයක් ද යන්න පිලිවෙලින් 1 හො 2 න් නිරූපනය කරයි. මෙය 0x10 න් ආරම්භ වන බහු-බයිට ක්ෂේත්ර අර්ථ නිරූපණයට බලපායි.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x06 | 1 | e_ident[EI_VERSION] | ELF හි මුල් සහ වර්තමාන අනුවාදය සඳහා 1 ලෙස සකසයි.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x07 | 1 | e_ident[EI_OSABI] | මෙහෙයුම් පද්ධති ABI හදුන්වයි.
ඉලක්ක ගත වේදිකාව නොසලකා එය බොහෝ විට | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x08 | 1 | e_ident[EI_ABIVERSION] | ABI අනුවාදය තවදුරටත් සඳහන් කරයි. එහි අර්ථ නිරූපණය රඳා පවතින්නේ ඉලක්කගත ABI මත ය. ලිනක්ස් කර්නලය (අවම වශයෙන් 2.6 ට පසුව) තුල කිසිදු අර්ථ දැක්වීමක් නොමැත. එනිසා එය ස්ථිතිකව-සම්බන්ධිත ක්රියාත්මක කිරීම් නොසලකා හරිනු ඇත. එම නිසා EI_PAD හි ආරම්භය සහ ප්රමාණය 8 වේ.
e_ident[EI_OSABI] == 3 වු glibc 2.12+ හි මෙම ක්ෂේත්රය ගතික සම්බන්ධකයේ ABI සංස්කරණය ලෙස සලකයි: එය ගතික සම්බන්ධක කරවීමේ විශේෂාංග ලැයිස්තුවක් නිර්වචනය කරයි, මෙය e_ident[EI_ABIVERSION] සඳහා හවුල් වස්තුව (ක්රියාත්මක කළ හැකි හෝ ගතික පුස්තකාලය) විසින් ඉල්ලන විශේෂාංග මට්ටම ලෙස සලකයි. තවද නොදන්නා විශේෂාංගයක් ඉල්ලූ විට එය පූරණය කිරීම ප්රතික්ෂේප කරයි, උදා: e_ident[EI_ABIVERSION] විශාලයි දන්නා විශාලම විශේෂාංගයට වඩා. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x09 | 7 | e_ident[EI_PAD] | දැනට භාවිතයට නොගනී, ශුන්ය වලින් පුරවා ඇත. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x10 | 2 | e_type | වස්තු ගොනු වර්ගය හඳුන්වයි.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x12 | 2 | e_machine | ඉලක්කගත උපදෙස් සැකසුම් නිර්මාණ ශිල්පය සඳහන් කරයි. උදාහරණ:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x14 | 4 | e_version | මුල් ELF අනුවාද සඳහා 1 යොදයි.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x18 | 4 | 8 | e_entry | ක්රියාවලිය ක්රියාත්මක වීමට පටන් ගත් ස්ථානයේ සිට පිවිසුම් ස්ථානයේ මතක ලිපිනය මෙයයි. කලින් නිර්වචනය කළ ආකෘතිය අනුව මෙම ක්ෂේත්රය බිට් 32 හෝ 64 දිගය. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1C | 0x20 | 4 | 8 | e_phoff | වැඩසටහන් වගුව ආරම්භවන ස්ථානය පෙන්නුම් කරයි. සමානයෙන් ගොනු ශීර්ෂය පසුව ආර්ම්භය 32-බිටු සඳහා 0x34 හො 64-බිටු සඳහා 0x40 ලෙස පවති.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x20 | 0x28 | 4 | 8 | e_shoff | අංශ ශීර්ෂක වගුවේ අරම්භය නිරූපනය වේ. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x24 | 0x30 | 4 | e_flags | මෙම ක්ෂේත්රයේ අර්ථ නිරූපණය ඉලක්ක කරගත් නිර්මාණ ශිල්පය මත රඳා පවතී. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x28 | 0x34 | 2 | e_ehsize | මෙම ශීර්ෂකයේ ප්රමාණය, සාමාන්යයෙන් 64-බිට් සඳහා බයිට් 64 ක් සහ 32-බිට් ආකෘතිය සඳහා බයිට් 52 ක් අඩංගු වේ. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x2A | 0x36 | 2 | e_phentsize | වැඩසටහන් ශීර්ෂක වගු කොටසේ ප්රමාණය අඩංගුවේ. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x2C | 0x38 | 2 | e_phnum | වැඩසටහන් ශීර්ෂක වගුව තුල අඩංගු කොටස් ගණන දක්වයි. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x2E | 0x3A | 2 | e_shentsize | අංශ ශීර්ෂක වගු කොටසේ ප්රමාණය අඩංගුවේ. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x30 | 0x3C | 2 | e_shnum | අංශ ශීර්ෂක වගුව තුල අඩංගු කොටස් ගණන දක්වයි. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x32 | 0x3E | 2 | e_shstrndx | අංශවල නම් දැක්වෙන අංශ ශීර්ෂක කොටසේ දර්ශකය අඩංගුවේ. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x34 | 0x40 | ELF ශීර්ෂක අවසානය (ප්රමාණය) |
වැඩසටහන් ශීර්ෂකය
[සංස්කරණය]ක්රමලේඛ රූප සටහනක් සාදා ගන්නා ආකාරය, ශීර්ෂ වගුව මඟින් පද්ධතියට පවසයි. එය ගොනුවේ e_phoff හි දක්නට ලැබේ, සහ e_phentsize ප්රමාණයෙන් යුත් e_phnum පිවිසුම් වලින් සමන්විත වේ. 32-bit ELF එදිරිව 64-bit ELF වල පිරිසැලසුම තරමක් වෙනස් ය, මන්ද පෙළගැස්වීමේ හේතු මත p_flags වෙනස් ව්යුහාත්මක ස්ථානයක ඇත. සෑම ඇතුළත් පිවිසුමක්ම ව්යුහගත කර ඇත්තේ:
ආරම්භය | ප්රමාණය (බයිට්) | ක්ෂේත්රය | අරමුණ | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
32-බිටු | 64-බිටු | 32-බිටු | 64-බිටු | |||||||||||||||||||||||||||||||||||||||
0x00 | 4 | p_type | අංශ වර්ගය හදුන්වයි..
| |||||||||||||||||||||||||||||||||||||||
0x04 | 4 | p_flags | අංශ මත යැපෙන කොඩි (64-බිට් ව්යුහය සඳහා පිහිටීම). | |||||||||||||||||||||||||||||||||||||||
0x04 | 0x08 | 4 | 8 | p_offset | ගොනු රූපයේ අංශයේ ආරම්භය. | |||||||||||||||||||||||||||||||||||||
0x08 | 0x10 | 4 | 8 | p_vaddr | මතකයේ ඇති අංශයේ අතථ්ය ලිපිනය. | |||||||||||||||||||||||||||||||||||||
0x0C | 0x18 | 4 | 8 | p_paddr | භෞතික ලිපිනය අදාළ පද්ධති වල, අංශයේ භෞතික ලිපිනය සඳහා වෙන් කර ඇත. | |||||||||||||||||||||||||||||||||||||
0x10 | 0x20 | 4 | 8 | p_filesz | ගොනු රූපයේ අංශයේ ප්රමාණය බයිට් වලින්. සමහර විට 0 විය හැක. | |||||||||||||||||||||||||||||||||||||
0x14 | 0x28 | 4 | 8 | p_memsz | මතකයේ ඇති අංශයේ ප්රමාණය බයිට් වලින්. සමහර විට 0 විය හැක. | |||||||||||||||||||||||||||||||||||||
0x18 | 4 | p_flags | අංශ මත යැපෙන කොඩි (32-බිට් ව්යුහය සඳහා පිහිටීම). | |||||||||||||||||||||||||||||||||||||||
0x1C | 0x30 | 4 | 8 | p_align | පිලිවෙල නැති බව 0 හා 1 මගින් දක්වයි, නැත්නම් එය ධනාත්මක ඒකාබද්ධවූ 2 බලයක් හා p_vaddr සමාන p_offset මොඩියුලස් p_align විය යුතුය.
| |||||||||||||||||||||||||||||||||||||
0x20 | 0x38 | වැඩසටහන් ශීර්ෂක අවසානය (ප්රමාණය). |
අංශ ශීර්ෂකය
[සංස්කරණය]ආරම්භය | ප්රමාණය (බයිට්) | ක්ෂේත්රය | අරමුණ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
32-බිටු | 64-බිටු | 32-බිටු | 64-බිටු | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00 | 4 | sh_name | මෙම අංශයේ නම නියෝජනය කරන .shstrtab අංශයේ string එකක ආරම්භය. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x04 | 4 | sh_type | මෙම ශීර්ෂයේ වර්ගය හදුන්වයි.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x08 | 4 | 8 | sh_flags | අංශයේ ගුණාංග හදුන්වයි.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x0C | 0x10 | 4 | 8 | sh_addr | පටවා ඇති අංශ සඳහා මතකයේ අංශ අතථ්ය ලිපිනය. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x10 | 0x18 | 4 | 8 | sh_offset | ගොනු රූපයේ අංශයේ ආරම්භය. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x14 | 0x20 | 4 | 8 | sh_size | ගොනු රූපයේ අංශයේ ප්රමාණය බයිට්වලින්. සමහරවිට 0 විය හැක. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x18 | 0x28 | 4 | sh_link | ආශ්රිත අංශයක අංශක දර්ශකය අඩංගු වේ. අංශ වර්ගය මත පදනම්ව මෙම ක්ෂේත්රය අරමුණු කිහිපයක් සඳහා භාවිතා කෙරේ. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1C | 0x2C | 4 | sh_info | අංශය පිලිබද අමතර තොරතුරු අඩංගුවේ. ආශ්රිත අංශයක අංශක දර්ශකය අඩංගු වේ. අංශ වර්ගය මත පදනම්ව මෙම ක්ෂේත්රය අරමුණු කිහිපයක් සඳහා භාවිතා කෙරේ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x20 | 0x30 | 4 | 8 | sh_addralign | අංශයට අවශය පිලිවෙල සඳහන් වේ. මෙය දෙකෙහි බලයක් විය යුතුය. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x24 | 0x38 | 4 | 8 | sh_entsize | ස්ථාවර ප්රමාණයේ ඇතුළත් කිරීම් අඩංගු අංශ සඳහා එක් එක් වගන්තියේ ප්රමාණය බයිට් වලින් සදහන් වේ. නැත්නම් මෙය 0ක් වේ. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x28 | 0x40 | අංශ ශීර්ෂයේ අවසානය (ප්රමාණය) |
මෙවලම්
[සංස්කරණය]readelf
යනු Unix ද්විමය මෙවලම්ක් වන අතර එය ELF ගොනු එකක් හෝ කිහිපයක් පිළිබඳ තොරතුරු පෙන්වයි. GNU Binutils විසින් සපයන තවත් නොමිලේ මෘදුකාංගයක් වේ.elfutils
පිවිතුරුව ලිනක්ස් සඳහා GNU Binutils විකල්ප මෙවලමක් වේ.elfdump
යනු Solaris සහ FreeBSD යටතේ ලබා ගත හැක සඳහා ELF ගොනුවේ ELF තොරතුරු නිරික්සීම සඳහා විධානයකි.objdump
මඟින් ELF ලිපි ගොනු සහ අනෙකුත් වස්තු ආකෘති පිළිබඳව පුළුල් පරාසයක තොරතුරු සපයයි.objdump
සඳහා පසුබිම් ලෙස ද්විමය ගොනු විස්තර කිරීමේ පුස්තකාලය භාවිතා කරයි.- යුනික්ස්
file
උපයෝගීතාවයට ELF ලිපිගොනු පිළිබඳ යම් තොරතුරු ප්රදර්ශනය කළ හැකිය, උපදෙස් මාලාව ඇතුළුව, ක්රියාත්මක කළ හැකි ද හෝ හවුල් වස්තු ගොනුවක කේතයක් භාවිතා කිරීමට ද හෝ කුමන ELF හරය බැහැරකිරීමක් සිදුවූවාද යන්න.
වැඩසටහන්
[සංස්කරණය]යුනික්ස්-වැනි පද්ධති
[සංස්කරණය]විවිධ පරිසරයන්හි තිබූ පැරණි ආකෘති වෙනුවට ELF ආකෘතිය ප්රතිස්ථාපනය කර ඇත. එය යුනික්ස්-වැනි මෙහෙයුම් පද්ධති වල a.out සහ COFF ආකෘතීන් ප්රතිස්ථාපනය කර ඇත:
- ලිනක්ස්
- සොලාරිස් / ඉලුමෝස්
- IRIX
- FreeBSD
- NetBSD
- OpenBSD
- රෙඩොක්ස්
- ඩ්රැගන්ෆ්ලයි BSD
- සිලබල්
- HP-UX (SOM අඛණ්ඩව භාවිතා කරන 32-bit PA-RISC වැඩසටහන් හැර)
- QNX නියුට්රිනෝ
- Minix
යුනික්ස් නොවූ ඇතුලත් කරගැනීම්
[සංස්කරණය]යුනික්ස් නොවන මෙහෙයුම් පද්ධති තුල ද ELF ඇතුලත් කරගැනීම් දක්නට ඇත, ඒවා නම්:
- OpenVMS, එහි ඉටානියම් සහ amd64 අනුවාද වල [5]
- බීඕඑස් සංශෝධනය 4 සහ පසුව, x86 මත පදනම් වූ පරිගණක සඳහා (එය ජංගම ක්රියාත්මක ආකෘතිය වෙනුවට භාවිත වේ; පවර්පීසී අනුවාදය කැමති ක්රියාත්මක ආකෘතිය සමඟ පැවතුනි)
- හයිකු, බීඕඑස් හි විවෘත මූලාශ්ර නැවත භාවිත කිරීමකි
- RISC මෙහෙයුම් පද්ධතිය
- ස්ට්රැටස් VOS, PA-RISC සහ x86 අනුවාද වලින්
- ලිනක්ස් සඳහා වින්ඩෝස් උප පද්ධතිය භාවිතා කරමින් වින්ඩෝස් 10 සංවත්සර යාවත්කාලීන කිරීම.
- වින්ඩෝස් 11
- SkyOS
- ෆුචියා මෙහෙයුම් පද්ධතිය
- ඉසෙඩ්/ටීපීඑෆ්
- HPE නන්ස්ටොප් මෙහෙයුම් පද්ධතිය
- ඩියෝස්
ක්රීඩා කොන්සෝල
[සංස්කරණය]සමහර ක්රීඩා කොන්සෝල වල ELF ද භාවිතා කරයි:
- ජංගම ප්ලේස්ටේෂන්, [6] ප්ලේස්ටේෂන් වීටා, ප්ලේස්ටේෂන් (කොන්සෝලය), ප්ලේස්ටේෂන් 2, ප්ලේස්ටේෂන් 3, ප්ලේස්ටේෂන් 4, ප්ලේස්ටේෂන් 5
- GP2X
- ඩ්රීම් කාස්ට්
- ගේම් කියුබ්
- නින්ටෙන්ඩෝ 64
- වී
- වී යූ
පවර්පීසී
[සංස්කරණය]ELF භාවිතා කරන, පවර්පීසී හි ක්රියාත්මක වන අනෙකුත් (මෙහෙයුම්) පද්ධති:
- ඇමීගාඕස් 4, ELF විසින් ඇමීගා තුල පැවතුන පීපීසී සකසනය පුළුල් කිරීමේ කාඩ්පත් භාවිතා කළ දිගුකළ හන්ක් ආකෘතිය (EHF, Extended Hunk Format) වෙනුවට ප්රතිස්ථාපනය කරන ලදි
- මො(ර්)ෆ ඕස්
- ඒඅර්ඕස්
ජංගම දුරකථන
[සංස්කරණය]ජංගම දුරකථන සහ ජංගම උපාංග සඳහා වූ සමහර මෙහෙයුම් පද්ධති ELF භාවිතා කරයි:
- Symbian OS v9 විසින් ELF ගොනු ආකෘතිය මත පදනම් වූ E32Image[7] ආකෘතිය භාවිතා කරයි
- සෝනි එරික්සන්; උදාහරණයක් ලෙස W800i, W610, W300, ආදිය).
- Siemens, SGOLD සහ SGOLD2 වේදිකා: Siemens C65 සිට S75 දක්වා සහ BenQ-Siemens E71/EL71;
- මෝටරෝලා; උදාහරණයක් ලෙස, E398, SLVR L7, V360, v3i (සහ පැච් කළ සියලු දුරකථන LTE2).
- බඩා; උදාහරණයක් ලෙස සැම්සුන් වේව් S8500 .
- මා(ඒ)මෝ හෝ මීගෝ මෙහෙයුම් පද්ධතිය ක්රියාත්මක කරන නොකියා දුරකථන හෝ ටැබ්ලට් පරිගණක; උදාහරණයක් ලෙස නොකියා N900.
- ඇන්ඩ්රොයිඩ්, ELF .so (හවුල් වස්තුව) පුස්තකාල ජාවා අතුරු මුහුණත සඳහා භාවිතා කරයි. ඇන්ඩ්රොයිඩ් 5.0 "ලොලිපොප්" වලින් පසු පැමිණුන ඇන්ඩ්රොයිඩ් ධාවනකාල (ART, Android RunTime) සමඟ, සියලුම යෙදුම් ස්ථාපනය කිරීමේදී ස්වදේශීය ELF ලෙස සම්පාදනය කෙරේ.
සමහර දුරකතන සඳහා ස්ථිරාංගයට ඇසෙම්බලි කේතයක් දමා පැච් කළ පසු ELF ගොනු භාවිත කල හැක. මෙම ක්රමය ELFPack ලෙස හදුන්වන අතර මෙය භූගත වෙනස් කිරීමේ සංස්කෘතියට අයත්වේ. ඇට්මෙල් AVR (8-bit), AVR32[8] සහ ටෙක්සාස් උපකරණ MSP430 වැනි ක්ෂුද්ර පාලක තුලද ELF ආකෘතිය භාවිත කර ඇත. සමහර විවෘත ස්ථිරාංග සඳහා වු බද්ධ කිරීම් මගින් ද ELF ගොනු භාවිත කළ හැක, විශේෂයෙන් කැපී පෙනෙන ලෙස ඇපල් සමාගම විසින් නිෂ්පාදනය කරන ලද පවර්පීසී යන්ත්ර සියල්ලම පාහේ භාවිතා කරන ලදී..
පිරිවිතර
[සංස්කරණය]- පොදු:
- System V ABI සංස්කරණය 4.1 (1997-03-18)
- System V ABI යාවත්කාලීන කිරීම (2009 ඔක්තෝම්බර්)
- AMD64:
- ARM:
- IA-32:
- IA-64:
- Itanium මෘදුකාංග සම්මුතීන් සහ ධාවන කාල මාර්ගෝපදේශය (2000 සැප්තැම්බර්)
- M32R:
- M32R ELF ABI අතිරේකය අනුවාදය 1.2 (2004-08-26)
- MIPS:
- System V ABI, MIPS RISC සකසන අතිරේකය
- MIPS EABI ලියකියවිලි ගත කිරීම සංරක්ෂණය කළ පිටපත 2012-04-01 at the Wayback Machine (2003-06-11)
- Motorola 6800:
- PA-RISC:
- PA-RISC අනුවාදය 1.43 සඳහා ELF අතිරේකය 1.43 (1997 ඔක්තෝම්බර් 6)
- PowerPC:
- System V ABI, PPC අතිරේකය
- PowerPC කාවැද්දූ ABI 32-Bit ඇතුලත් කරවීම (1995-10-01)
- 64-bit PowerPC ELF ABI අතිරේකයේ අනුවාදය 1.9 (2004)
- SPARC:
- S/390:
- zSeries:
- සිම්බියන් මෙහෙයුම් පද්ධති 9:
ලිනක්ස් සම්මත පදනම (LSB) එය නිශ්චිතව දක්වා ඇති නිර්මාණ ශිල්ප සමහරක් සඳහා ඉහත සඳහන් පිරිවිතරයන් පරිපූරණය කරයි. උදාහරණයක් ලෙස, System V ABI, AMD64 අතිරේකය සඳහා ද එය සිදු වේ.
86open
[සංස්කරණය]86open යනු මෘදුකාංග සංවර්ධකයින් x86 නිර්මාණ ශිල්පයට දිරිමත් කරවීම සඳහා එම නිර්මාණ ශිල්පය සහිත පොදු පරිගණක තුල යුනික්ස් සහ යුනික්ස්-වැනි මෙහෙයුම් පද්ධති සඳහා පොදු ද්විමය ගොනු වර්ගයක් ඇති කිරීමේ ව්යාපෘතියකි. මූලික අදහස වූයේ, තනි යුනික්ස් පිරිවිතරයට පූර්වගාමියා වූ කුඩා උප කුලක ස්පෙක් 1170 මත ප්රමිතිකරණය කිරීම සහ GNU C පුස්තකාලය (glibc) මඟින් x86 යුනික්ස්-වැනි මෙහෙයුම් පද්ධති මත නවීකරණය නොකළ ද්විමය ගොනු ක්රියාත්මක කිරීම ය. මෙම ව්යාපෘතිය මුලින් නම් කරන ලද්දේ "ස්පෙක් 150" යනුවෙනි.
තෝරාගත් ගොනු ආකෘතිය වූයේ ELF, විශේෂයෙන් ලිනක්ස් හි භාවිත ELF. පසුව සියළුම අලෙවිකරුවන්ගේ සහ සියළුම මෙහෙයුම් පද්ධති වල සහය දක්වන ද ෆැක්ටො ප්රමිතියක් බවට පත්වින.
මෙම කණ්ඩායම 1997 දී විද්යුත් තැපැල් සාකච්ඡා ආරම්භ කළ අතර ප්රථම වරට 1997 අගෝස්තු 22 දින සැන්ටා කෲස් මෙහෙයුම් කාර්යාලයේදී හමු විය.
මෙහෙයුම් කමිටුව වූයේ මාර්ක් එවිං, ඩියොන් ජොන්සන්, ඉවාන් ලෙයිබොවිච්, බෘස් පෙරන්ස්, ඇන්ඩෘ රෝච්, බ්රයන් වේන් ස්පාර්ක්ස් සහ ලිනස් ටොවල්ඩ් ය. ව්යාපෘතියේ අනෙකුත් පුද්ගලයින් වූයේ කීත් බොස්ටික්, චක් ක්රැනෝර්, මයිකල් ඩේවිඩ්සන්, ක්රිස් ජී. ඩිමෙට්රියෝ, උල්රිච් ඩ්රෙපර්, ඩොන් ඩගර්, ස්ටීව් ජින්ස්බර්ග්, ජොන් "මැඩෝග්" හෝල්, රොන් හෝල්ට්, ජෝර්දාන් හබර්ඩ්, ඩේව් ජෙන්සන්, කීන් ජොන්ස්ටන්, ඇන්ඩෘ ජෝසි, රොබර්ට් ලිප්, බෙලා ලුබ්කින්, ටිම් මාර්ස්ලන්ඩ්, ග්රෙග් පේජ්, රොනල්ඩ් ජෝ රෙකෝඩ්, ටිම් රකල්, ජොයෙල් සිල්වර්ස්ටයින්, චියා-පි ටියන් සහ එරික් ට්රෝන්. මෙහෙයුම් පද්ධති හා නිෂ්පාදන සමාගම් නියෝජනය වූයේ BeOS, BSDI, FreeBSD, ඉන්ටෙල්, ලිනක්ස්, NetBSD, SCO සහ SunSoft ලෙසය.
ව්යාපෘතිය ප්රගතියක් ලබා දුන්නේ 1998 මැද භාගයේදී SCO විසින් OpenServer, UnixWare සහ Solaris මත ලිනක්ස් ද්විමය ධාවනය කළ හැකි විවෘත මූලාශ්ර අනුකූලතා ස්ථරයක් වන lxrun සංවර්ධනය කිරීම මගිනි. SCO විසින් 1999 මාර්තු මාසයේදී ලිනක්ස් වර්ල්ඩ් හි lxrun සහාය නිල වශයෙන් නිවේදනය කළේය. සන් මයික්රොසිස්ටම් විසින් 1999 මුල් භාගයේදී සොලාරිස් සඳහා නිල වශයෙන් lxrun සඳහා සහය වීම ආරම්භ කළ අතර, පසුව ලිනක්ස් යෙදුම් සඳහා සොලාරිස් බහාලුම් හරහා ලිනක්ස් ද්විමය ආකෘතියේ ඒකාබද්ධ සහය වෙත මාරු විය.
BSD දිගුකාලීනව ලිනක්ස් ද්විමය සහය (අනුකූලතා තට්ටුවක් හරහා) සහ ප්රධාන x86 යුනික්ස් වෙළෙන්දන් ආකෘතියට සහය දැක්වීමත් සමඟම, ව්යාපෘතිය මඟින් ලිනක්ස් lxrun යනු කර්මාන්තය විසින් තෝරාගත් ආකෘතිය බව තීරණය කළේය. විසුරුවා හැරීම 1999 ජූලි 25 ප්රකාශ කළේය.
FatELF: ලිනක්ස් සඳහා විශ්වීය ද්විමය
[සංස්කරණය]FatELF යනු ELF ද්විමය ආකෘති දිගුවක් වන අතර එමඟින් fat ද්විමය හැකියාවන් එකතු වේ. එය ලිනක්ස් සහ යුනික්ස්-වැනි අනෙකුත් මෙහෙයුම් පද්ධති සඳහා ඉලක්ක කර ඇත. CPU නිර්මාණ ශිල්පය වියුක්තකරණයට (බයිට් අනුපිළිවෙල, වචන ප්රමාණය, සීපීයූ උපදෙස් මාලාව යනාදිය) අතිරේකව, මෘදුකාංග-වේදිකා වියුක්ත කිරීමේ වාසියක් ඇත. උදා, බහු ABI කර්නල් අනුවාදයන්ට සහය වන ද්විමය. 2 මාර්තු 2021 වන විට[update] FatELF ප්රධාන ලිනක්ස් කර්නලය සමඟ ඒකාබද්ධ කර නොමැත.
මේවා ද බලන්න
[සංස්කරණය]- යෙදුම් ද්විමය අතුරුමුහුණත (ABI)
- ක්රියාත්මක කළ හැකි ගොනු ආකෘති සංසන්දනය
- DWARF – දත්ත නිදොස් කිරීම සඳහා වූ ආකෘතියක්
- ඉන්ටෙල් ද්විමය අනුකූලතා ප්රමිතිය
- ජංගම ක්රියා ගොනු – වින්ඩෝස් භාවිතා කරන ආකෘතිය
- vDSO – කෘතිම DSO
- ස්ථාන-ස්වාධීන කේතය
මූලාශ්ර
[සංස්කරණය]- ^ a b Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification Version 1.2 (May 1995)
- ^ Tool Interface Standard (TIS) Portable Formats Specification Version 1.1 (October 1993)
- ^ System V Application Binary Interface Edition 4.1 (1997-03-18)
- ^ "Program Header". Sco.com. July 2000. සම්ප්රවේශය 2017-04-05.
- ^ සංරක්ෂිත පිටපත, https://vmssoftware.com/pdfs/State_of_Port_20160906.pdf, ප්රතිෂ්ඨාපනය 2021-09-18
- ^ PlayStation Portable use encrypted & relocated ELF : PSP
- ^ Symbian OS executable file format
- ^ "Chapter 4: Object Files", System V Application Binary Interface, 2009-10-26, e_machine, http://www.sco.com/developers/gabi/2009-10-26/ch4.eheader.html#e_machine