Принципи побудови інтерфейсів операційних систем
В практиці АРІ використовується не тільки прикладними, но і багатьма системними програмами як в складі ОС так і в складі системи програмування.
Функції АРІ позволяють розробнику будувати результуючу прикладну програму так, щоб використовувати засоби цільової вираховучою системи для виповнення типових операцій.
Існує декілька варіантів реалізації АРІ:
Реалізація на рівні ОС
Реалізація на рівні системи програмування.
Реалізація на рівні внутрішньої бібліотеки процедур і функцій.
Можливості АРІ можна оцінити з слідуючи позицій:
Ефективність виповнення функцій АРІ – враховують в себе швидкість виповнення функцій і об’єм вираховуючих ресурсі, потрібних для їх виконання;
Обсяг представлених можливостей;
Залежність прикладної програми від архітектури цільової враховуючої системи.
Реалізація функції АРІ на рівні ОС.
При реалізації функцій АРІ на рівні ОС за їх виконання відповідальність несе ос. Об’єктний код, виконуючий функції, або безпосередньо входить в склад ОС, або постачається в складі динамічно завантажуючи бібліотек, розроблених для даної ОС. Система програмування, відповідальна тільки за те, щоб організувати інтерфейс для виклику цього коду.
Недостатком організації АРІ по такій схемі являється практично Повна відсутність перенесення не тільки кода результуючої програми, но і кода вихідної програми. Програма, створена для одної архітектури враховуючої системи, не зможе виконувати на враховуючій систем іншої архітектури навіть після того, як її об’єктний код буде повністю перебудований. Скоріше всього систем програмування не зможе виконати перебудову вихідного коду для нової архітектури враховуючої системи, оскільки багато функцій АРІ орієнтовані на визначені ОС будуть у новій архітектурі просто відсутні.
Реалізація функції АРІ на рівні системи програмування.
Якщо функції АРІ реалізуються на рівні системи програмування то вони представляються користувачу у вигляді бібліотеки функцій відповідної мови програмування. RTL (rub time library). Система програмування представляє користування бібліотеку відповідної мови програмування в забезпечує підключення до результуючої програми об’єктного коду, відповідального за виконання усіх функцій. Очевидно, що ефективність функцій АРІ в такому варіанті буде трохи нижча ніж при безпосередньому звертанні до функцій ОС.Існування всіх необхідних викликів і звертань до функції ОС у об’єктному коді RTL забезпечує система програмування. Однак перенесення вихідного коду програми у такому варіанті буде найвищим, оскільки син такс і семантика всіх функцій будуть суворо регламентовані у стандарті відповідного язика програмування. Вони залежать від мови і не залежать від архітектури цільової враховуючої системи. Тому для виконання прикладної програми на новій архітектурі враховуючої системи досить заново побудувати код результуючої програми за допомогою відповідної системи програмування.
Однообразне виконання функції мови, забезпечується системою програмування. При орієнтації на різні архітектури цільової враховуючої системи в системі програмування можуть бути потрібні різні комбінації викликів функції ОС для виконання одних і тих функцій вихідної мови. Це повинно бути враховано в коді RTL. У загальному випадку для кожної архітектури цільової враховуючої системи буде потрібен свій код RTL мови програмування. Вибір того чи іншого об’єктного коду RTL для підключення до результуючої програми система програмування забезпечує автоматично.