Программирование в стандарте POSIX

       

Основные понятия, рассматриваемые в курсе


Важнейшим является понятие соответствия стандарту POSIX. У него есть две стороны: соответствие реализации (операционной системы) и соответствие приложения.

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

Для приложений предусмотрено как строгое соответствие (его главный отличительный признак - ограничение круга используемых возможностей рамками стандарта), так и соответствие с использованием расширений.

Профилем называется набор опций, описывающих необязательные возможности. Соответствие профилю означает соответствие стандарту POSIX и поддержку заданных возможностей. Разумным образом выбранные профили позволяют учитывать потребности представительных классов пользователей и/или приложений.

Допускается существование "подпрофилей", описывающих подмножества стандартных возможностей. Реализация, соответствующая подпрофилю, может функционировать на аппаратных платформах с ограниченными ресурсами и/или обслуживать нужды специфических приложений.

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

Еще один близкий термин - "поведение, зависящее от реализации" - дополнительно означает, что поведение реализации необходимо документировать.

Стандарт POSIX в редакции от 2003 года - весьма обширный, многогранный документ. Для настоящего курса были отобраны следующие основные понятия операционных систем:

  • пользователь;

  • файл;

  • процесс;

  • терминал;

  • хост;

  • узел сети;



  • Содержание раздела
    время;


  • языково-культурная среда.


За пределами рассмотрения оставлены такие важные и сложные темы:

  • средства разработки;
  • средства реального времени;


  • потоки управления;
  • математические интерфейсы;
  • пакетные сервисы;
  • унаследованные интерфейсы.


В тексте стандарта POSIX можно найти следующие пояснения рассматриваемых в курсе основных понятий вместе со ссылками на атрибуты и операции.

  1. У пользователя есть имя и числовой идентификатор.


  2. Файл - объект, допускающий чтение и/или запись и имеющий такие атрибуты, как права доступа и тип. В число типов входят обычный файл, символьный и блочный специальные, канал, символьная ссылка, сокет и каталог. Реализация может поддерживать и другие типы файлов.


  3. Процесс - адресное пространство вместе с выполняемыми в нем потоками управления и необходимыми для этих потоков системными ресурсами.


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


  5. Сеть - совокупность взаимосвязанных хостов.


  6. Языково-культурная среда - часть пользовательского окружения, зависящая от языковых и культурных соглашений.


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

В posix-совместимых ОС определены объекты, которые можно назвать вспомогательными; они помогают организовать взаимодействие между основными сущностями. Особенно широк спектр средств межпроцессного взаимодействия.