Две рыжие книжки
АрхивНаучно-исследовательский институт системных исследований РАН — не только центр теоретических и практических разработок (в частности, одно из немногих мест в стране, где на самом деле разрабатываются операционные системы), но и питомник талантливых авторов популярной и учебной литературы.
Научно-исследовательский институт системных исследований РАН — не только центр теоретических и практических разработок (в частности, одно из немногих мест в стране, где на самом деле разрабатываются операционные системы), но и питомник талантливых авторов популярной и учебной литературы.
Сотрудниками института написаны многие статьи тома «Информатика» «Энциклопедии для детей», вышедшего в прошлом году в издательстве «Аванта+». Сегодня перед нами вузовский учебник из «рыжей», как ее называют студенты, серии «Интуит.ру», написанный зав. сектором в отделе безопасности НИИСИ Владимиром Галатенко под редакцией возглавляющего этот институт академика Владимира Бетелина.
«Программирование» в названии книги следует понимать широко. Концепции открытых операционных систем демонстрируются не только на уровне системных вызовов, но и на уровне командного языка (оболочки и утилит), которому специально посвящена глава 2, а в главе 6 освещаются текстовые утилиты ОС.
В целом учебник имеет классическую для введения в открытые ОС структуру: после вводной главы и главы, посвященной языку оболочки, последовательно раскрываются понятия пользователя (гл. 3), файловой системы (гл. 4), ввода-вывода (гл. 5), процессов и межпроцессного взаимодействия (гл. 7–8), терминального ввода-вывода (гл. 9), сетевого взаимодействия на прикладном уровне (гл. 10–11), системного времени (гл. 12).
Тринадцатая глава посвящена локализации и интернационализации программ. Отдельной главы о концепции безопасности ОС в книге нет (Заметим, что В. А. Галатенко ранее подготовил два других учебника, доступных там же).
Строго изложенный материал сбалансирован по объему. От большинства книг на Ю и на Л (То есть имеющих в названии слова «Unix» или «Linux». — Прим. ред) учебник отличает жесткая ориентация на стандарт ОС в его современной (2003 г.) редакции и сосредоточенность на программировании (в уже упомянутом широком смысле).
Эта книга вполне достойна занять место на полке не только студента, но и серьезного программиста. Рядом с ней, правда, будет пустовать местечко для справочника по стандартным системным вызовам и библиотекам, — к сожалению, по-русски (На сайте www.opengroup.org можно взять текст стандарта по-английски) в «потребительском» формате (Тем же НИИСИ четыре года назад издан перевод части стандарта, посвященной системным вызовам (в редакции 1996 г.), но предлагается он по, так сказать, «корпоративной» цене) ничего подобного не издано.
В той же серии учебников «Интуит.ру» вышла и книга двух доцентов МФТИ Владимира Карпова и Константина Конькова.
Несмотря на «всеобъемлющее» название, предмет книги гораздо уже: ядро как с точки зрения архитектуры системных вызовов, так и с точки зрения реализации.
Из шестнадцати глав шесть (гл. 2–7) посвящены процессам, три (гл. 8–10) — организации памяти, две (гл. 11–12) — файловой системе, по одной — вводу-выводу (гл. 13) и сетевому взаимодействию (гл. 14), две (гл. 15–16) — информационной безопасности.
Находя «Systema nature» Карла Линнея в списке литературы, не удивляешься, — подход к материалу действительно «додарвиновский»: классификационный и неэволюционный. Большинство ядерных механизмов описаны как «явления природы», без ясной апелляции к ситуации и целям их внедрения. Различные ОС тоже выглядят скорее параллельно существующими видами, чем конкурирующими концептуальными системами.
Материал явно неполон. Например, в теме «Процессы» (гл. 2–3) «потерялись» ключевые понятия окружения процесса и наследования окружения. Соответственно, передача значений переменных просто выпала (в гл. 3) из арсенала средств межпроцессного взаимодействия (будучи, однако ж, чуть ли не наиболее из них часто применяемым). «Потерялись», кстати сказать, и временные файлы, и гнезда (и вообще именованные конвейеры), появляющиеся из ниоткуда в гл. 14.
Живость языка изложения на глазах изумленной публики плавно перетекает в игривость, авторы переходят с терминологии на сленг (так, в гл. 11 каталоги превращаются в «директории», в гл. 14 — шифрование паролей — в «кодирование»).
Это не означает, что книга лишена достоинств. Скажем, обзор тупиков в мультипрограммировании (гл. 7) очень хорош, как и обзор базовых методов управления памятью (гл. 8).
За устарелостью фундаментального труда Дейтела и негодностью недавно вышедшего перевода книги Танненбаума на роль учебника — тема еще ждет своего героя.