Applikasiya binar interfeysi (ing. application binary interface, ABI) — kompüter proqram təminatında iki binar proqram modulu arasındakı interfeys. Çox vaxt bu modullardan biri kitabxana və ya əməliyyat sistemi obyekti, digəri isə istifadəçi tərəfindən idarə olunan proqramdır.
ABI aşağı səviyyəli, aparatdan asılı format olan maşın kodunda məlumat strukturlarına və ya hesablama prosedurlarına necə daxil olunduğunu müəyyən edir. Bunun əksinə olaraq, tətbiq proqramlaşdırma interfeysi (API) bu girişi mənbə kodunda müəyyən edir. Bu, nisbətən yüksək səviyyəli, aparatdan müstəqil, çox vaxt formatdır. ABI-nin ümumi cəhəti məlumatların hesablama prosedurlarına giriş kimi təqdim edilməsini və ya çıxış kimi oxunmasını müəyyən edən . Buna misal olaraq göstərmək olar.
ABI-yə riayət etmək (rəsmi olaraq standartlaşdırıla və ya standartlaşdırılmaya bilər) adətən kompilyator, əməliyyat sistemi və ya kitabxana müəllifinin işidir. Bununla belə, tətbiqi proqramçı proqramlaşdırma dillərinin qarışığında proqram yazan zaman hətta eyni dildə yazılmış proqramı müxtəlif kompilyatorlarla tərtib edərkən birbaşa ABI ilə işləməli ola bilər.
ABI əsas aparat arxitekturası qədər vacibdir. Proqram bu ikisinin hər hansı məhdudiyyətini pozarsa, eyni dərəcədə uğursuz olacaq.
Təsviri
ABI-nin əhatə etdiyi təfərrüatlara aşağıdakılar daxildir:
- Reyestr faylı strukturu, yığının təşkili, yaddaşa giriş növləri və s. kimi təfərrüatları olan prosessor təlimat dəsti
- Prosessorun birbaşa daxil ola biləcəyi əsas verilənlər tiplərinin ölçüləri, tərtibatları və
-
Funksiyaların arqumentlərinin necə ötürüldüyünə və geri qaytarılan dəyərlərə nəzarət edən ; məsələn, aşağıdakılara nəzarət edir:
- İstər bütün parametrlərin yığına ötürülməsi, istərsə də bəzilərinin reyestrlərə ötürülməsi
- Hansı reyestrlərin hansı funksiya parametrləri üçün istifadə olunması
- Yığına ötürülən ilk funksiya parametrinin birinci və ya sonuncu itələnməsi
- Çağırışçının və ya çağırılananın funksiya çağırışından sonra yığının təmizlənməsinə cavabdeh olub-olmaması
- Tətbiq əməliyyat sisteminə sistem çağırışlarını necə etməli olduğu, həmçinin, əgər ABI sistem zəngləri prosedur çağırışlarını yox, birbaşa sistem çağırışlarını təyin edirsə, sistem çağırış nömrələri
- Tam əməliyyat sistemi ABI vəziyyətində, binar formatı, proqram kitabxanaları və s.
Tam ABI
"" (iBCS) kimi tam ABI onu dəstəkləyən bir əməliyyat sistemindən olan proqrama lazımi paylaşılan kitabxanaların mövcud olması və oxşar ilkin şərtlərin yerinə yetirilməsi şərti ilə hər hansı digər belə sistemdə dəyişiklik etmədən işləməyə imkan verir.
ABI-lər həmçinin , yayılması və eyni platformada kompilyatorlar arasında çağırış konvensiyası kimi təfərrüatları standartlaşdıra bilər. Bu, platformalar arası uyğunluq tələb etmir.
Daxili ABI
Daxili proqram binar interfeysi (EABI) ilə istifadə üçün , verilənlər növləri, reyestrdən istifadə, təşkili və quraşdırılmış proqram təminatının funksiya parametrlərinin ötürülməsi üçün standart konvensiyaları müəyyən edir.
EABI-lər quraşdırılmış sistemin məhdud resursları daxilində performansı optimallaşdırmaq üçün nəzərdə tutulmuşdur. Buna görə də EABI-lər mürəkkəb əməliyyat sistemlərində nüvə və istifadəçi kodu arasında edilən əksər abstraksiyaları buraxır. Məsələn, daha kiçik icra olunanlara və daha sürətli yüklənməyə imkan vermək üçün qaçınmaq olar, sabit reyestrdən istifadə daha yığcam yığınlara və kernel çağırışlarına imkan verir, proqramın imtiyazlı rejimdə işlədilməsi cihaz sürücüsünə zəng etmədən birbaşa giriş imkanı yaradır. EABI seçimi performansa təsir edə bilər.
Geniş istifadə olunan EABI-lərə "", "" EABI və "" EABI daxildir. C kitabxanası kimi xüsusi proqram təminatı tətbiqləri daha konkret ABI formalaşdırmaq üçün əlavə məhdudiyyətlər tətbiq edə bilər. Məsələn, ARM EABI-nin alt çoxluqları olan ARM üçün GNU OABI və EABI-dır.
Həmçinin bax
İstinadlar
- . 2012-05-27 tarixində . İstifadə tarixi: 2023-12-12.
- . 2023-07-31 tarixində . İstifadə tarixi: 2023-12-12. (compatible with multiple architectures)
- . 2023-11-27 tarixində . İstifadə tarixi: 2023-12-12. (compatible with multiple architectures)
- ↑ EABI Summary // (PDF) (Version 1.0). Freescale Semiconductor, Inc. 1 October 1995. 28–30. 31 July 2023 tarixində (PDF). İstifadə tarixi: 12 December 2023.
- . Linuxdevices.com. 16 October 2016. 21 January 2007 tarixində arxivləşdirilib. İstifadə tarixi: 11 October 2007.
- Andrés Calderón and Nelson Castillo. . Linuxdevices.com. 14 March 2007. 31 March 2007 tarixində arxivləşdirilib. İstifadə tarixi: 11 October 2007.
- . Developer.arm.com. 4 February 2020 tarixində . İstifadə tarixi: 4 February 2020.
- Eric Christopher. . binutils@sources.redhat.com (Poçt siyahısı). 11 June 2003. 7 May 2020 tarixində . İstifadə tarixi: 19 June 2020.
-
. Debian Wiki. 2013-09-27 tarixində . İstifadə tarixi: 2023-12-12.
Strictly speaking, both the old and new ARM ABIs are subsets of the ARM EABI specification, but in everyday usage the term "EABI" is used to mean the new one described here and "OABI" or "old-ABI" to mean the old one.
Xarici keçidlər
- – a compendium of development rules of thumb for not breaking binary compatibility between library releases
- at the Wayback Machine (archived 2008-05-28)
- at the Wayback Machine (archived 2015-01-14) – a summary and comparison of some popular ABIs
- for the Freescale M·CORE processors