Две рыжие книжки

Автор: Максим Отставнов
Опубликовано в журнале "Компьютерра" №39 от 19 октября 2004 года.

Научно-исследовательский институт системных исследований РАН — не только центр теоретических и практических разработок (в частности, одно из немногих мест в стране, где на самом деле разрабатываются операционные системы), но и питомник талантливых авторов популярной и учебной литературы.

Сотрудниками института написаны многие статьи тома «Информатика» «Энциклопедии для детей», вышедшего в прошлом году в издательстве «Аванта+». Сегодня перед нами вузовский учебник из «рыжей», как ее называют студенты, серии «Интуит.ру», написанный зав. сектором в отделе безопасности НИИСИ Владимиром Галатенко под редакцией возглавляющего этот институт академика Владимира Бетелина.

«Программирование» в названии книги следует понимать широко. Концепции открытых операционных систем демонстрируются не только на уровне системных вызовов, но и на уровне командного языка (оболочки и утилит), которому специально посвящена глава 2, а в главе 6 освещаются текстовые утилиты ОС.

В целом учебник имеет классическую для введения в открытые ОС структуру: после вводной главы и главы, посвященной языку оболочки, последовательно раскрываются понятия пользователя (гл. 3), файловой системы (гл. 4), ввода-вывода (гл. 5), процессов и межпроцессного взаимодействия (гл. 7–8), терминального ввода-вывода (гл. 9), сетевого взаимодействия на прикладном уровне (гл. 10–11), системного времени (гл. 12).

Тринадцатая глава посвящена локализации и интернационализации программ. Отдельной главы о концепции безопасности ОС в книге нет (Заметим, что В. А. Галатенко ранее подготовил два других учебника, доступных там же).

Строго изложенный материал сбалансирован по объему. От большинства книг на Ю и на Л (То есть имеющих в названии слова «Unix» или «Linux». — Прим. ред) учебник отличает жесткая ориентация на стандарт ОС в его современной (2003 г.) редакции и сосредоточенность на программировании (в уже упомянутом широком смысле).

Эта книга вполне достойна занять место на полке не только студента, но и серьезного программиста. Рядом с ней, правда, будет пустовать местечко для справочника по стандартным системным вызовам и библиотекам, — к сожалению, по-русски (На сайте www.opengroup.org можно взять текст стандарта по-английски) в «потребительском» формате (Тем же НИИСИ четыре года назад издан перевод части стандарта, посвященной системным вызовам (в редакции 1996 г.), но предлагается он по, так сказать, «корпоративной» цене) ничего подобного не издано.

Галатенко В.А. «Программирование в стандарте POSIX». — М.: «Интуит.ру», 2004. — 560 с., ил., переплет, ISBN 5-9556-0011-6 (тж. доступна на www.intuit.ru/department/se/pposix).Карпов В.Е., Коньков К.А. «Основы операционных систем». — М.: «Интуит.ру», 2004. — 632 с., ил., переплет, ISBN 5-9556-0012-4 (тж. доступна на www.intuit.ru/department/os/osintro).

В той же серии учебников «Интуит.ру» вышла и книга двух доцентов МФТИ Владимира Карпова и Константина Конькова.

Несмотря на «всеобъемлющее» название, предмет книги гораздо уже: ядро как с точки зрения архитектуры системных вызовов, так и с точки зрения реализации.

Из шестнадцати глав шесть (гл. 2–7) посвящены процессам, три (гл. 8–10) — организации памяти, две (гл. 11–12) — файловой системе, по одной — вводу-выводу (гл. 13) и сетевому взаимодействию (гл. 14), две (гл. 15–16) — информационной безопасности.

Находя «Systema nature» Карла Линнея в списке литературы, не удивляешься, — подход к материалу действительно «додарвиновский»: классификационный и неэволюционный. Большинство ядерных механизмов описаны как «явления природы», без ясной апелляции к ситуации и целям их внедрения. Различные ОС тоже выглядят скорее параллельно существующими видами, чем конкурирующими концептуальными системами.
Материал явно неполон. Например, в теме «Процессы» (гл. 2–3) «потерялись» ключевые понятия окружения процесса и наследования окружения. Соответственно, передача значений переменных просто выпала (в гл. 3) из арсенала средств межпроцессного взаимодействия (будучи, однако ж, чуть ли не наиболее из них часто применяемым). «Потерялись», кстати сказать, и временные файлы, и гнезда (и вообще именованные конвейеры), появляющиеся из ниоткуда в гл. 14.

Живость языка изложения на глазах изумленной публики плавно перетекает в игривость, авторы переходят с терминологии на сленг (так, в гл. 11 каталоги превращаются в «директории», в гл. 14 — шифрование паролей — в «кодирование»).

Это не означает, что книга лишена достоинств. Скажем, обзор тупиков в мультипрограммировании (гл. 7) очень хорош, как и обзор базовых методов управления памятью (гл. 8).

За устарелостью фундаментального труда Дейтела и негодностью недавно вышедшего перевода книги Танненбаума на роль учебника — тема еще ждет своего героя. 


<<Что вы думаете о недавних предложениях правительства по радикальной реформе российской науки?
Все материалы номера
Звезды нашей галактики >>