Реализация функций API на уровне модулей операционной системы




При реализации функций API на уровне модулей операционной системы опера­ционная система ответственна за выполнение функций API. Объектный код, вы- полияющий функции, либо непосредственно входит в состав операционной сис­темы (или даже ядра операционной системы), либо находится в составе динами­чески загружаемых библиотек, поставляемых вместе с системой. Система програм­мирования ответственна только за то, чтобы организовать интерфейс для вызова этого кода.

В таком варианте результирующая программа обращается непосредственно к опе­рационной системе. Поэтому достигается наибольшая эффективность выполне­ния функций API по сравнению со всеми другими вариантами реализации API. Недостатком организации API по такой схеме является практически полное от­сутствие переносимости не только кода результирующей программы, но и кода исходной программы. Программа, созданная для одной архитектуры вычислитель­ной системы, не сможет исполняться на вычислительной системе другой архитек­туры даже после того, как ее объектный код полностью перестроен. Чаще всего система программирования просто не сможет выполнить перестроение исходного кода для новой архитектуры вычислительной системы, поскольку многие функ­ции API, ориентированные на определенную операционную систему, в новой ар­хитектуре могут просто отсутствовать.

Таким образом, в данной схеме для переноса прикладной программы с одной це­левой вычислительной системы на другую потребуется изменение исходного кода программы.

Переносимости можно было бы добиться, если унифицировать функции API в раз­личных операционных системах. С учетом корпоративных интересов производи­телей операционных систем и иного системного программного обеспечения такое направление их развития представляется практически невозможным. В лучшем случае при приложении определенных организационных усилий удается добить­ся стандартизации смыслового (семантического) наполнения основных функций API, но не их программного интерфейса.

Хорошо известным примером API такого рода может служить набор функций, предоставляемых пользователю со стороны операционных систем типа Microsoft Windows — WinAPI (Windows API). Надо сказать, что даже внутри этого корпора­тивного интерфейса API существует определенная несогласованность, которая несколько ограничивает переносимость программ между различными операцион­ными системами типа Windows. Еще одним примером такого интерфейса API можно считать набор сервисных функций простейших однопрограммных опе­рационных систем типа MS DOS, реализованный в виде набора подпрограмм об­служивания программных прерываний.

 

Интерфейс POSIX

POSIX (Portable Operating System Interface for Computer Environments — незави­симый от платформы системный интерфейс для компьютерного окружения) — это стандарт IEEE (Institute of Electrical and Electronics Engineers — институт инже­неров по электротехнике и радиоэлектронике), описывающий системные интер­

фейсы для открытых операционных систем, в том числе оболочки, утилиты и ин­струментарии. Помимо этого, согласно POSIX, стандартизированными являются задачи обеспечения безопасности, задачи реального времени, процессы админист­рирования, сетевые функции и обработка транзакций. Стандарт базируется на UNIX-системах, но допускает реализацию и в других операционных системах. Интерфейс POSIX начинался как попытка пропаганды институтом IEEE идей переносимости приложений в UNIX-средах путем разработки абстрактного неза­висимого от платформы стандарта. Однако POSIX не ограничивается только UNIX- системами; существуют различные реализации этого стандарта в системах, которые соответствуют требованиям, предъявляемым стандартом IEEE Standard 1003.1- 1990 (POSIX. 1). Например, известная ОС реального времени QNX соответствует спецификациям этого стандарта, что облегчает перенос приложений в эту систе­му, но UNIX-системой не является нив каком виде, ибо ее архитектура использу­ет абсолютно иные принципы.

Этот стандарт подробно описывает систему виртуальной памяти (Virtual Memory System, VMS), многозадачность (Multiprocess Executing, МРЕ) и технологию пе­реноса операционных систем (CTOS). Таким образом, на самом деле POSIX пред­ставляет собой множество стандартов POSIX.1-POSIX.12. В табл. 1 перечисле­ны основные направления, описываемые данными стандартами. Следует также особо отметить, что в POSIX. 1 основным языком описания системных функций API предполагается язык С.

Таблица 1. Семейство стандартов POSIX  


[I] Трекбол — специальный шарик, который в переносных компьютерах (NoteBook) размещается ря­дом с клавиатурой, прокручивается пальцами и служит для перемещения указателя мыши. В насто­ящее время гораздо чаще используют устройство, чувствительное к касанию (touchpad). С помощью такого устройства пользователь управляет указателем мыши, перемещая палец по специальной по­верхности.

[II] RTL включает в себя те стандартные подпрограммы, которые система программирования подстав­ляет на этапе компиляции. В общем случае это не только модули системы программирования, но и модули самой операционной системы.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: