РЕЦЕНЗИИ
Моли Б. Unix/Linux: теория и практика программирования. Пер. с англ. М.: Кудиц-ОБРАЗ, 2004. - 576 стр.
Похоже, что Linux твердыми шагами вступает в жизнь компьютерного сообщества, о чем можно судить не только по ставшим уже обычными сообщениям информационных агентств о принятии на вооружение этой ОС солидными фирмами и даже целыми странами и весьма болезненной реакции Microsoft на завоевание все большей части лакомого пирога своим конкурентом, но и по увеличивающемуся списку литературы, посвященной этому предмету. Однако большая часть русскоязычных изданий (в основном переводных) затрагивает лишь верхнюю часть "айсберга", давая представление о работе с этой системой на уровне пользователя или администратора. И вот на полках книжных магазинов появилась одна из немногочисленных книг, посвященных исследованию внутреннего механизма Unix-системы, написанная Брюсом Моли на основе прочитанного им в Гарвардской школе (Harvard Extension School) курса лекций "Системное программирование в Unix".
В книге, включающей 15 глав и предметный указатель, приведены тексты около ста работоспособных программ и более 200 иллюстраций. Каждая глава разбита на несколько параграфов и заканчивается подведением итогов изучения материала.
После краткого введения в проблему, данного в первой главе, автор переходит непосредственно к системному программированию, последовательно (от простого к сложному) на "живых" примерах показывая, как надо разрабатывать программы. В качестве аналогов он использует стандартные утилиты, такие, как who, cp, ls, pwd (главы 2-4), подробно останавливаясь на устройстве и функционировании файловой системы. На мой взгляд, стоит обратить внимание на содержание пятой и шестой глав, в которых затрагиваются проблемы программирования драйвера терминала, поскольку вопросы на эту тему очень редко освещаются в литературе по созданию приложений в среде Linux/Unix, а на разработчиков драйверов ("драйверистов") спрос на рынке труда есть, причем устойчивый.
В седьмой главе на примере разработки видеоигры рассматривается концепция событийно-ориентированного программирования. В восьмой и девятой главах дается информация об оболочке shell, причем детально излагается методика самостоятельной разработки программы-аналога: здесь автор вместе с читателем исследует "внутренности" этой среды, сопровождающей каждую Unix-подобную ОС.
Программисты-сетевики найдут для себя интересные страницы в главах 11-15, где подробно обсуждаются - теоретически и на практике - проблемы сетевых протоколов и создания сетевых приложений, в том числе Web-сервера, клиент-серверной модели и др.
Следует подчеркнуть, что автору удалось отобрать и представить материал в своем труде таким образом, что он может быть использован при изучении основ любой версии Unix/Linux-системы, не касаясь их многочисленных различий в деталях. Изучению материала помогает выполнение многочисленных упражнений по программированию и реализация проектов, предлагаемых читателю в конце каждой главы и представляющих собой задания на самостоятельную разработку небольших, но зачастую непростых и важных программ на языке Си. Подобный подход - от теории к практике - наиболее эффективен, по мнению Брюса Моли, при освоении системного программирования. Такую книгу нельзя просто читать, с ней необходимо работать, последовательно следуя указаниям автора и отвечая (к сожалению, не "вживую") на его многочисленные вопросы.
Весьма непростой материал подается на доступном уровне, и начальное его усвоение не требует специальной подготовки для Си-программиста. Изучив соответствующие разделы, читатель составит достаточно полное представление о внутреннем устройстве Unix-машины, а главное, сможет приступить к самостоятельной разработке реальных системных утилит и созданию полноценных приложений для Unix/Linux-систем. Книга будет полезна не только разработчикам программ, но и студентам соответствующих специальностей, а также администраторам и "продвинутым" пользователям, пожелавшим самостоятельно освоить этот становящийся все более популярным продукт на углубленном уровне.