در رایانش، فرمت اجرایی و مرتبط ( ELF، که قبلاً به نام Extensible Linking Format نامیده می شد ) یک استاندارد فرمت فایل برای فایل های اجرایی، کد هدف ( object code ) ، کتابخانه های اشتراکی و تخلیهٔ هسته ( core dump ) است. اولین بار با ویژگی هایی برای رابط دودویی نرم افزار ( ABI ) سیستم عامل یونیکس نسخه یSystem V Release 4 ( SVR4 ) منتشر شد، [ ۲] و بعد تر در استاندارد رابط ابزار که به سرعت مورد قبول فروشندگان مختلف سیستم های یونیکس قرار گرفت. در سال ۱۹۹۹، به عنوان فرمت استاندارد فایل باینری برای سیستم های یونیکس و شبه یونیکس بر روی پردازنده های x86 توسط پروژه 86open انتخاب شد.
از نظر طراحی، فرمت ELF انعطاف پذیر، قابل گسترش و مستقل از سکو است. به عنوان مثال endiannessهای مختلف و اندازه های آدرس را پشتیبانی می کند، بنابراین هیچ پردازنده مرکزی ( CPU ) خاص یا معماری مجموعه دستورالعمل را حذف نمی کند. این عامل باعث شده است که توسط بسیاری از سیستم عامل ها در بسیاری از سکوهای سخت افزاری مورد استفاده واقع شود.
هر فایل ELF از یک سرصفحه ELF ( هدر ELF ) ساخته شده است و به دنبال آن داده های فایل آمده است. داده ها می توانند شامل موارد زیر باشند:
• جدول هدر برنامه، که صفر یا چند بخش حافظه ( memory segments ) را توصیف می کند.
• جدول هدر بخش، که صفر یا چند بخش ( section ) را توصیف می کند.
• داده هایی که توسط محتویات جدول هدر برنامه یا جدول هدر بخش به آن ها اشاره شده است.
بخش ها ( segments ) حاوی اطلاعاتی هستند که برای زمان اجرای فایل مورد نیاز است، در حالی که بخش ها ( sections ) حاوی اطلاعات مهم برای اتصال ( linking ) و جابجایی هستند. هر بایت در کل فایل می تواند حداکثر متعلق به یک قسمت ( section ) باشد و اصطلاحاً بایت های یتیم زمانی به وجود می آیند که بایتی متعلق به هیچ بخش نباشد.
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |. ELF. . . . . . . . . . . . |
00000010 02 00 3e 00 01 00 00 00 c5 48 40 00 00 00 00 00 |. . > . . . . . . H@. . . . . |
Example hexdump of ELF file header[ ۳]
هدر ELF تعریف می کند که از آدرس های ۳۲ بیتی استفاده شده است یا ۶۴ بیتی. هدر حاوی سه فیلد است که از ۳۲ بیتی یا ۶۴ بیتی بودن تأثیر می پذیرند و شروع فیلدهای دیگری را که آنها را دنبال می کنند، تعیین می کنند. هدر ELF به ترتیب برای ۳۲ بیت و ۶۴ بیت، ۵۲ یا ۶۴ بایت طول دارد.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفاز نظر طراحی، فرمت ELF انعطاف پذیر، قابل گسترش و مستقل از سکو است. به عنوان مثال endiannessهای مختلف و اندازه های آدرس را پشتیبانی می کند، بنابراین هیچ پردازنده مرکزی ( CPU ) خاص یا معماری مجموعه دستورالعمل را حذف نمی کند. این عامل باعث شده است که توسط بسیاری از سیستم عامل ها در بسیاری از سکوهای سخت افزاری مورد استفاده واقع شود.
هر فایل ELF از یک سرصفحه ELF ( هدر ELF ) ساخته شده است و به دنبال آن داده های فایل آمده است. داده ها می توانند شامل موارد زیر باشند:
• جدول هدر برنامه، که صفر یا چند بخش حافظه ( memory segments ) را توصیف می کند.
• جدول هدر بخش، که صفر یا چند بخش ( section ) را توصیف می کند.
• داده هایی که توسط محتویات جدول هدر برنامه یا جدول هدر بخش به آن ها اشاره شده است.
بخش ها ( segments ) حاوی اطلاعاتی هستند که برای زمان اجرای فایل مورد نیاز است، در حالی که بخش ها ( sections ) حاوی اطلاعات مهم برای اتصال ( linking ) و جابجایی هستند. هر بایت در کل فایل می تواند حداکثر متعلق به یک قسمت ( section ) باشد و اصطلاحاً بایت های یتیم زمانی به وجود می آیند که بایتی متعلق به هیچ بخش نباشد.
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |. ELF. . . . . . . . . . . . |
00000010 02 00 3e 00 01 00 00 00 c5 48 40 00 00 00 00 00 |. . > . . . . . . H@. . . . . |
Example hexdump of ELF file header[ ۳]
هدر ELF تعریف می کند که از آدرس های ۳۲ بیتی استفاده شده است یا ۶۴ بیتی. هدر حاوی سه فیلد است که از ۳۲ بیتی یا ۶۴ بیتی بودن تأثیر می پذیرند و شروع فیلدهای دیگری را که آنها را دنبال می کنند، تعیین می کنند. هدر ELF به ترتیب برای ۳۲ بیت و ۶۴ بیت، ۵۲ یا ۶۴ بایت طول دارد.
wiki: فرمت اجرایی و مرتبط