Структура книги
Книга состоит из тринадцати глав.
Глава 1 представляет собой обзор основных понятий и терминологии. Два наиболее важных из обсуждаемых терминов – это файл (file) и процесс (process). Мы надеемся, что большинство читателей книги уже хотя бы частично знакомы с приведенным в главе материалом (см. в следующем разделе предпосылки для изучения книги).
В главе 2 описаны системные примитивы доступа к файлам, включая открытие и создание файлов, чтение и запись данных в них, а также произвольный доступ к содержимому файлов. Представлены также способы обработки ошибок, которые могут генерироваться системными вызовами.
В главе 3 изучается контекст работы с файлами. В ней рассмотрены вопросы владения файлами, управления системными привилегиями в системе UNIX и оперирования атрибутами файлов при помощи системных вызовов.
Глава 4 посвящена концепции дерева каталогов
(directories) с точки зрения программиста. В нее также включено краткое обсуждение файловых систем (file systems) и специальных файлов
(special files), используемых для представления устройств.
Глава 5 посвящена природе процессов
UNIX и методам работы с ними. В ней представляются и подробно объясняются системные вызовы fork и ехес. Приводится пример простого командного интерпретатора (command processor).
Глава 6 – первая из трех глав, посвященных межпроцессному взаимодействию. Она охватывает сигналы (signals) и обработку сигналов (signal handling) и весьма полезна для перехвата ошибок и обработки аномальных ситуаций.
В главе 7 рассматривается наиболее полезный метод межпроцессного взаимодействия в системе UNIX – программные каналы, или конвейеры (pipes), позволяющие передавать выход одной программы на вход другой. Будет исследовано создание каналов, чтение и запись с их помощью, а также выбор из множества каналов.
Глава 8 посвящена методам межпроцессного взаимодействия, которые были впервые введены в ОС System V. В ней описаны блокировка записей (record locking), передача сообщений (message passing), семафоры (semaphores) и разделяемая память (shared memory).
В главе 9 рассматривается работа терминала на уровне системных вызовов. Представлен пример использования псевдотерминалов (pseudo terminals).
В главе 10 дается краткое описание сетевой организации UNIX и рассматриваются сокеты (sockets), которые могут использоваться для пересылки данных между компьютерами.
В главе 11 мы отходим от системных вызовов и начинаем рассмотрение основных библиотек. В этой главе приведено систематическое изложение стандартной библиотеки ввода/вывода (Standard I/O Library), содержащей намного больше средств для работы с файлами, чем системные примитивы, представленные в главе 2.
Глава 12 дает обзор дополнительных системных вызовов и библиотечных процедур, многие из которых очень важны при создании реальных программ. Среди обсуждаемых тем – обработка строк, функции работы со временем и функции управления памятью.
И, наконец, глава 13 содержит задачи с решениями, обобщающими весь предыдущий материал.