Програмний інтерфейс

Найперші ПК, що з'явилися на початку 1980-х років, працювали винятково в текстовому режимі. У цьому режимі найменшим примітивом при виводі на дисплей є символ цілком, а не окремі піксели. Хоча можна було управляти видом цих символів, завантаживши відповідні монохромні растри в спеціальну таблицю відеокарти14).

 

Рис. 15. Текстовий режим в ОС Linux.

Потім з'явилися карти із графічними можливостями. У зв'язку з малим розміром адресного простору (1 Мб) процесора Intel 8086 доводилося відображати тільки частина відеопам'яті в адресний простір процесора й спеціальних команд задавати, яка саме це частина. Така технологія одержала назву bank switching. Команди відеокарті посилали шляхом переривань або запису інформації безпосередньо в її апаратний порт. Для використання додаткових можливостей відеокарт розроблювачам прикладних програм і ігор доводилося самим реалізовувати найпростіші операції для кожного їхнього типу, тому що підтримка відеокарт із боку ОС15)була мінімальною.

З появою ОС із графічним інтерфейсом ситуація змінилася. Прошарок між прикладною програмою й апаратурою став "товще". Безпосередньо на низькому рівні відеокартою управляє її драйвер - програма, що поставляється, як правило, самою фірмою-розроблювачем відеокарти. А прикладна програма звертається до нього через виклики чітко певного загального для всіх драйверів абстрактного інтерфейсу (англ. API - Application Programming Interface). Таким чином, з'явилася апаратна незалежність, що явилося важливим кроком уперед, з обліком безлічі відеокарт із обмеженою сумісністю один з одним.

 

Рис. 16. Графічний інтерфейс ОС Windows XP.

Типові функції такого інтерфейсу містять у собі саме операції бліттинга й растеризації примітивів, а також роботу з палітрами, хоча зараз палітри вже майже не використовуються.

В UNIX-Подібних ОС графічний інтерфейс надається системою X Windows, що працює за принципом " клієнт-сервер". Програма-Клієнт відправляє який-небудь запит API по мережі (хоча для самої програми це виглядає як просто виклик функції); одержавши цей запит, програма-сервер відповідає за його виконання. Хоча така схема і є гнучкою (можна, наприклад, мати кілька дисплеїв в одного комп'ютера або, навпаки, багато комп'ютерів, підключених до одного дисплея), але в той же час вона вимагає й додаткових витрат на передачу даних по мережному протоколі. Насправді, у ПК не використовується ця гнучкість, а всі запити передаються в рамках однієї системи (через поділювану між процесами клієнта й сервера пам'ять).