В курсе рассматривается стандарт на мобильный интерфейс операционной системы (POSIX), а также приемы и методы программирования приложений на основе данного стандарта, поясняемые многочисленными примерами. Затрагиваются вопросы программирования многопроцессных систем, взаимодействия приложений в рамках распределенных конфигураций.
Обеспечение мобильности (переносимости, портабельности) программного обеспечения (ПО) - задача исключительной важности и сложности; в наше время это обстоятельство едва ли нуждается в пространных обоснованиях. Один из общепринятых способов повышения мобильности ПО - стандартизация окружения приложений: предоставляемых программных интерфейсов, утилит и т.п. На уровне системных сервисов подобное окружение описывает стандарт POSIX (Portable Operating System Interface - мобильный интерфейс операционной системы); название предложил известный специалист, основатель Фонда свободного программного обеспечения Ричард Столмэн.
В курсе рассматривается наиболее современная его версия в редакции 2003 г., которую можно назвать "стандартом втройне", а именно: стандартом IEEE Std 1003.1, Техническим стандартом Open Group и, что для нас важнее всего, международным стандартом ISO/IEC 9945.
Основная задача настоящего курса состоит в осмыслении приемов и методов использования стандартизованных служебных программ и функций. Не ставилась цель пересказать стандарт, осветив все тонкости реализации ОС, все возможные коды ошибок и т.п. Главное, на наш взгляд, - прочувствовать дух стандарта, научиться мобильным образом применять заложенные в нем возможности.
В предположении, что читатель владеет языком C, мы не рассматривали ни его синтаксис, ни хрестоматийные библиотечные функции. Что же касается стандартного командного языка и его интерпретатора, то эта тема изложена довольно подробно, хотя многие практикующие программисты предпочитают пользоваться другими интерпретаторами.
Значительное место - и по объему, и по роли - отведено примерам программ. Многие положения стандарта (связанные, скажем, с обработкой ошибочных ситуаций) излагаются не в основном тексте, а в соответствующих примерах. Последние по возможности компилировались и выполнялись на нескольких аппаратно-программных платформах, в той или иной степени претендующих на соответствие стандарту POSIX. Тем не менее, недосмотры, конечно, возможны. Мы будем признательны за все замечания и предложения, относящиеся как к курсу в целом, так и к отдельным примерам программ.
ISBN: 978-5-9556-0011-6
Излагаются основные сведения о стандарте POSIX, описываются его статус и
структура. Выделяются наиболее важные понятия и идеи.
-
Описывается синтаксис и семантика командного языка shell, способы вызова командного интерпретатора shell, приводятся примеры shell-процедур, анализируются правила формирования и средства разбора командных строк.
-
Описываются утилиты и функции, предназначенные для получения информации о пользователях и их взаимодействия.
-
Определяются основные понятия, ассоциированные с файлами. Описывается структура файловой системы, а также утилиты и функции для опроса и изменения атрибутов файлов и файловых систем, создания, удаления, копирования и перемещения файлов, обхода и обработки файловых иерархий.
-
Рассматриваются основные понятия, ассоциированные с вводом/выводом,
описываются функции, предназначенные для открытия и закрытия
файлов, выполнения операций ввода/вывода и сопутствующих действий.
-
Описываются служебные программы, осуществляющие обработку текстовых файлов. Приводятся примеры их комбинирования.
Определяется понятие регулярного выражения. Рассматриваются средства обработки каталогов.
-
Определяются основные понятия, ассоциированные с процессами.
Описываются служебные программы и функции для опроса и изменения
атрибутов процессов, а также для создания и завершения процессов.
-
Рассматриваются средства локального межпроцессного взаимодействия - каналы, сигналы, очереди сообщений, семафоры, разделяемые сегменты памяти.
-
Анализируются основные понятия и объекты общего терминального интерфейса,
служебные программы и функции для управления терминалами,
особенности терминального ввода/вывода, псевдотерминалы.
-
Рассматриваются характеристики хостов (систем), важнейшими из
которых являются конфигурационные параметры, а также служебные программы и
функции для их опроса и способы настройки приложений на целевые
конфигурации.
-
Представлены основные понятия и объекты, ассоциированные с сетевыми средствами.
Описываются функции для опроса данных о сети и для работы с сокетами. Приводятся
многочисленные примеры использования сетевых средств.
-
Рассматриваются служебные программы и функции, предназначенные для работы с часами и таймерами реального и процессорного времени, средства приостановки выполнения процессов на заданное время, а также опрос и изменение данных о времени, ассоциированных с файлами.
-
Описываются основные понятия и объекты, ассоциированные с
языково-культурной средой, служебные программы и функции, позволяющие
опрашивать и устанавливать характеристики среды, а также способы написания
программ, настраиваемых на различные языково-культурные среды.
-
Подводится итог курса, кратко суммируются полученные знания.
-