Иван Савватеев
Моли Б.. Unix/Linux. Теория и практика программирования. М.: Кудиц-образ, 2004. - 576 с.
Литература по "неэкономическому" программированию, в особенности на платформе Unix/Linux, занимает на книжных прилавках очень скромное место. Частично заполнить этот пробел решило издательство "Кудиц-образ".
Рецензируемая книга посвящена самым разнообразным вопросам программирования в Unix. Она состоит из 15 глав.
Первая глава - вводная, в ней дается общее представление о роли ОС, и в частности Unix, в системе программного обеспечения вычислительной машины; кроме того, рассматриваются функции команды more и пишется ее упрощенная версия.
В последующих главах разбираются следующие вопросы:
- идентификация пользователей;
- обработка файлов;
- работа с каталогами;
- файловые системы;
- программирование устройств (в особенности терминалов) и управление соединениями;
- сигналы и событийно ориентированное программирование;
- процессы и программы;
- программирование в командном процессоре shell;
- перенаправление ввода-вывода и программные каналы;
- взаимодействие локальных и удаленных процессов;
- соединения, протоколы и Web-серверы;
- использование дейтаграмм и серверы лицензий;
- нити (параллельные процессы);
- средства межпроцессного взаимодействия.
Завершается книга предметным указателем.
В каждой главе рассказывается о какой-либо возможности операционной системы Unix, а потом демонстрируется вариант ее реализации с помощью небольшой программы на языке Си. Конечно, при этом автор делает значительные упрощения, опуская многие подробности и сосредотачиваясь на самом существенном, но, надо признать, это очень удачный подход: читатель не только узнает новое о функционировании компонентов системы, но и понимает, как это реализовано на практике.
Книга не является учебником по Си; предполагается, что читатель достаточно хорошо знаком с этим языком. Естественно, требуется умение программировать на нем, хотя и не обязательно в Unix. Сам автор ставит целью добиться "понимания системного программирования" - это издание очень хорошо, хотя и в упрощенном виде, показывает, как в действительности все это работает.
К достоинствам рассматриваемого издания относится легкий язык и умение автора акцентировать внимание на основных проблемах и методах их решения. Правда, кое-какие вещи, о которых сообщается как бы мимоходом, по моему мнению, мало известны большинству потенциальных читателей, а потому могут вызвать некоторое недоумение. Вероятно, объясняется это тем, что нацеливая свою книгу на определенный круг студентов и аспирантов, автор предполагает, что об определенных понятиях они уже имеют представление. Впрочем, этот недостаток не очень существенен.
Единственным большим упущением является отсутствие CD-ROM’а или хотя бы дискеты с текстами программ, приведенных в книге. Пусть даже самые длинные из них занимают всего несколько страниц, однако перспектива набирать их вручную не очень вдохновляет.
Книгу можно рекомендовать интересующимся работой ОС и другого системного программного обеспечения. Хотя речь идет о Unix, почти вся "теория" применима и к другим операционным системам. Конечно, в Windows приведенные примеры работать не будут, но знание того, как что-то сделано в одной системе, поможет самостоятельно разобраться и с другой.