#факты | API приложения

Олег Довбня

Как мы уже знаем, драйвер аппаратного обеспечения позволяет пользоваться устройством, даже не зная его конфигурации. Интерфейс прикладных программ (API, application program interface) играет примерно ту же роль при взаимодействии с программной стороной компьютера. Программист может не знать технических деталей того, как процессор выполняет операции, но при этом получает возможность использовать функции компьютера и его операционной системы. Рассмотрим это на примере создания файла для хранения данных на жестком диске.

Интерфейс

Интерфейс

Программист пишет приложение, которое записывает данные, поступающие от научного инструмента. Он может сделать так, чтобы ученый мог указать имя создаваемого файла. Операционная система располагает для создания файлов функцией MakeFile. При написании программы, программист включает в нее строчку, например такую:

MakeFile [1, %Name, 2]

Рассматриваемая в этом примере команда требует от операционной системы создать файл, позволяющий получать доступ к размещенным в нем данным в произвольном порядке. Это указано опцией «1». Опция «0» означала бы создание файла с последовательным доступом. Данная строка указывает также на то, что имя файла будет задаваться пользователем (%Name).

Размер файла будет зависеть о того, данные какого объема будут в нем сохранены. Это определено значением «2». Возможны и иные опции: «0» означает создание файла фиксированного размера; «1» указывает на файл, который будет расти по мере добавления в него данных, но не станет уменьшаться при их удалении. А теперь посмотрим, как операционная система выполнит поставленную перед ней программистом задачу.

Операционная система отправит запрос жесткому диску на получение пространства для размещения нового файла на первом же найденном его свободном участке.

Получив эту информацию, операционная система расположит в файловой системе информацию, указывающую на начало и конец файла на диске, а также содержащую его имя и тип. А также сведения о том, какие пользователи имеют право просматривать и изменять созданный файл. Помимо этого в файловой системе будет отмечено время и дата создания нового файла.

Операционная система запишет эту информацию в начале файла. Кроме того, будет установлен способ доступа к нему: файл будет связан с определенным приложением. Вся эта информация: запросы к жесткому диску и адреса начальной и конечной точек файла будут представлены в формате, который в значительной степени зависит от производителя и модели данного жесткого диска.

Задача программиста сильно облегчается использованием API дискового накопителя. Ему не придется держать в уме коды команд, типы данных и коды ответов каждого конкретного жесткого диска. Операционная система связывается с драйверами различных аппаратных подсистем и сама урегулирует изменчивые тонкости аппаратного обеспечения. Программисту же остается только написать код для API, а во всем остальном положиться на свою добрую помощницу, неутомимую операционную систему.

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

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

Продолжение следует…

По материалам computer.howstuffworks.com