موضوع مقاله: واسط دودویی کاربردی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # واسط دودویی کاربردی | مقدمه: یک میانای دودویی کاربردی یا واسط دودویی کاربردی در علوم رایانه، با کوته‌نوشت ABI یک واسط است که بین دو «پودمان برنامه دودویی» وجود دارد. | ## بخش 1: واسط دودویی کاربردی | معمولاً یکی از این پودمان‌ها یک کتابخانه یا وسیله سیستم‌عامل است، و دیگری یک برنامه است که توسط یک کاربر در حال اجرا است. یک ABI در واقع دارد نحوه دسترسی به ساختمان داده یا رویه محاسباتی را در کد ماشین تعریف می‌کند، که این کد ماشین یک قالب سطح پایین و وابسته به سخت‌افزار است. در مقابل این دیدگاه، مفهوم API است که این دسترسی را در کد منبع تعریف می‌کند، که کد منبع یک قالب نسبتاً سطح بالا، مستقل از سخت‌افزار، و معمولاً انسان-خواندنی است. یک بخش معمول از یک ABI تعریف قرارداد تماس‌گرفتن است، که تعیین می‌کند که چگونه داده به عنوان ورودی ارائه گردد، یا به عنوان خروجی، از رویه‌های محاسباتی خوانده شود. یک مفهوم پیوسته با ABI (که می‌تواند استانداردسازی شود یا نشود)، کارهای نویسنده یک کامپایلر، سیستم‌عامل، یا کتابخانه است. | ## بخش 2: واسط دودویی کاربردی | با این حال، یک برنامه‌نویس کاربردی موقعی که «یک برنامه را به صورت مخلوطی از چند زبان برنامه‌نویسی می‌نویسد» یا حتی موقعی که «یک برنامه نوشته شده به یک زبان را با چند کامپالر متفات کامپایل می‌کند» با ABIها سروکار دارد. توصیف ABIها شامل این جزییات هستند: مجموعه دستورالعمل یک پردازنده (با جزییاتی مثل ساختار فایل ثبات، سازمان پشته، انواع دسترسی به حافظه و غیره). اندازه، چیدمان‌ها، و ترازهای انواع داده اصلی که پردازه می‌تواند به آنها به صورت مستقیم دسترسی یابد. قرارداد تماس، که نحوه ارسال آرگومان‌های تابع، و بازیابی مقادیر بازگشتی را کنترل می‌کند. مثلاً این موارد را کنترل می‌کند: آیا همه پارامترها باید روی پشته قرار گیرند یا بعضی از آن‌ها در ثبات قرار گیرند کدام ثبات برای کدام عملکرد تابعی استفاده شود؛ آیا اولین پارامتر تابعی قرارگرفته روی پشته، اول یا آخر روی پشته نشانده شده‌است. | ## بخش 3: واسط دودویی کاربردی | یک برنامه‌کاربردی چگونه باید با سیستم‌عامل تماس سامانه‌ای بگیرد، و اگر ABI «تماس‌های سامانه‌ای مستقیم» را به جای تماس‌های رویه‌ای به ته‌رسیدهای تماس سامانه‌ای تعیین نموده‌است، باید اعداد تماس سامانه‌ای تعیین شود. و در حالتی که با یک ABI سیستم‌عاملی کامل سروکار داریم، قالب دودویی آبجکت فایل، کتابخانه برنامه، و غیره. ABIهای توکار یک واسط دودویی کاربردی توکار با کوته‌نوشت EABI قراردادهای استانداردی را برای قالب پرونده، انواع داده، استفاده از ثبات، سازماندهی فریم پشته، و قراردادن پارامتر تابعی یک برنامه نرم‌افزاری توکار، برای استفاده با یک سیستم‌عامل توکار تعیین می‌کند. کامپایلرهایی که از EABI پشتیبانی می‌کنند، آبجکت کدی می‌سازند که با کد تولید شده دیگر کامپایلرهای مشابه سازگار است، این موضوع به توسعه‌دهنده‌ها امکان پیوند کتابخانه‌های ساخته شده با یک کامپایلر را با آبجکت کد تولید شده با یک کامپایلر دیگر می‌دهد. توسعه‌دهندگانی که کد زبان اسمبلی خودشان را می‌نویسند هم ممکن است بخواهند با کد اسمبلی تولید شده با کامپابلر سازگار، واسط‌سازی انجام دهند. | ## جمع‌بندی | برای مثال از پیوند پویا جلوگیری می‌شود، تا کداجرایی کوچکتری ایجاد شود، و بارگذاری سریعتر شود، همچنین استفاده از ثبات‌های ثابت، به ما امکان ایجاد پشته‌ها و تماس هسته‌ای فشرده‌تر را می‌دهد، و اجرای برنامه کاربردی در حالت مجوزدهی شده، امکان دسترسی مستقیم به عملیات‌های سخت‌افزاری سفارشی بدون تغییر مسیر بواسطه تماس به یک درایور دستگاه را می‌دهد.