258
прочувствовать дух стандарта, научиться мобильным образом
применять заложенные в нем возможности.
Предполагается, что читатель владеет языком C; мы не
рассматривали ни синтаксис, ни хрестоматийные библиотечные
функции этого языка. По отношению к стандартному командному языку
и его интерпретатору аналогичного предположения не делалось. Эта
тема изложена довольно подробно, хотя многие практикующие
программисты предпочитают пользоваться другими интерпретаторами.
Мы не противопоставляли программирование на уровне
командного языка и языка С. И то, и другое, порознь или совместно,
может служить адекватным инструментом реализации приложений.
Соответственно, рассматриваемые интерфейсы группировались по их
предметной направленности, а не по языку реализации.
Значительное место в курсе и по объему, и по роли отведено
примерам программ. Многие положения стандарта (связанные, скажем,
с обработкой ошибочных ситуаций) излагаются не в основном тексте, а
в этих примерах. По возможности они компилировались и выполнялись
на нескольких аппаратно-программных платформах, в той или иной
степени претендующих на соответствие стандарту POSIX. Тем не менее,
недосмотры, конечно, возможны. Мы будем признательны за все
замечания и предложения, относящиеся как к курсу в целом, так и к
отдельным примерам программ.
Важнейшим является понятие соответствия стандарту POSIX. У
него есть две стороны: соответствие реализации (операционной
системы) и соответствие приложения.
Реализация (операционная система), соответствующая стандарту
POSIX, должна поддерживать все обязательные служебные программы,
функции, заголовочные файлы с обеспечением специфицированного в
стандарте поведения.
Для приложений предусмотрено как строгое соответствие (его
главный отличительный признак - ограничение круга используемых
возможностей рамками стандарта), так и соответствие с использованием
расширений.
Профилем называется набор опций, описывающих необязательные
возможности. Соответствие профилю означает соответствие стандарту
POSIX и поддержку заданных возможностей. Разумным образом
выбранные профили позволяют учитывать потребности
представительных классов пользователей и/или приложений.
Допускается существование "подпрофилей", описывающих
подмножества стандартных возможностей. Реализация,
соответствующая подпрофилю, может функционировать на аппаратных
платформах с ограниченными ресурсами и/или обслуживать нужды
специфических приложений.
К числу важнейших принадлежат понятия, описывающие
поведение реализации в различных ситуациях. Для многих корректных