Pull to refresh

Отзыв о книге Кристофера Негуса «Linux Библия»

Level of difficultyEasy
Reading time10 min
Views13K

Попала мне в руки на некоторое время 10-е издание книги Кристофера Негуса "Библия Linux". Поскольку в повседневной деятельности мне приходится работать с системами под управлением различных дистрибутивов, работающих на базе GNU/Linux, столько увесистый труд (масса его 1202 грамм), не мог не вызвать живого интереса. Ну а если, после названия данной книги, взглянуть на ее стоимость, то начинаешь ожидать от нее "откровений".

Хочется сразу же отметить, что все написанное далее является исключительно моим личным мнением, как простого читателя и пользователя операционных систем на базе ядра Linux, и не претендует на какую-либо экспертную оценку.

Тот факт, что это уже 10 издание, говорит о ее востребованности и вызывает уважение. В памяти сразу же всплывают книги, которые также многократно переиздавались, например, 6-е юбилейное издание книги Виктора и Натальи Олиферов "Компьютерные сети. Принципы, технологии, протоколы", 6-е издание Э. Таненбаума "Компьютерные сети", 4-е издание Э. Таненбаума "Современные операционные системы"

Перед началом чтения я определил себе несколько вопросов, ответы на которые я хотел бы получить после прочтения:

  • Посоветовал бы я себе данную книгу, если бы не был с ней знаком?

  • Много ли можно взять из данной книги?

  • Поможет ли книга систематизировать имеющиеся знания?

  • Возможно ли использовать данную книгу как справочник?

  • Получится ли достичь заявленной в аннотации цели и выйти на новый уровень владения Linux?

Если вам интересны мои ответы на данные вопросы, то добро пожаловать.

Знакомство с книгой

Библия Linux. 10-е издание. / Негус Кристофер; перевод с английского языка Павлов А. — СПб.: Питер, 2022. — 928 с.: ил. — (Серия «Для профессионалов»). ISBN 978-5-4461-1797-0, ISBN 978-1-1195-7888-8 англ.

Прежде чем погрузиться в чтение, всегда полезно познакомиться с книгой и сформировать о ней некоторое представление, тем более что данная книга достаточно объемная и содержит 928 страниц текста.

В аннотации книги нам сообщается, что:

Полностью обновленное 10-е издание «Библии Linux» поможет как начинающим, так и опытным пользователям приобрести знания и навыки, которые выведут на новый уровень владения Linux. Известный эксперт и автор бестселлеров Кристофер Негус делает акцент на инструментах командной строки и новейших версиях Red Hat Enterprise Linux, Fedora и Ubuntu. Шаг за шагом на подробных примерах и упражнениях вы досконально поймете операционную систему Linux и пустите знания в дело. Кроме того, в 10-м издании содержатся материалы для подготовки к экзаменам на различные сертификаты по Linux.

Выглядит крайне привлекательно, поскольку книга рассчитана как на начинающих, так и на опытных пользователей, значит имея некоторый опыт работы с GNU/Linux, можно ожидать развитие имеющихся навыков и систематизацию имеющихся разрозненных знаний, поскольку упоминается экзамены для получения сертификатов.

Кто же автор данной книги?

Автор Кристофер Негус, из того, что приводится в книге об авторе, для себя я отметил два интересных момента:

Кристофер Негус — главный специалист по разработке и написанию технической документации в компании Red Hat, Inc.

До прихода в компанию Red Hat Крис написал десятки книг по Linux и UNIX.

То есть этот человек определенно умеет писать книги на сложные технические темы, и раз он занимает такую должность в компании Red Hat, Inc., то он определенно должен разбираться в том, о чем пишет.

В качестве научных редакторов указаны Джейсон У. Эккерт и Деррик Орнелас, но ни имена, ни краткое указание на достижения этих уважаемых людей, не произвели особенного впечатления.

О переводчике, за исключением фамилии, информации нет.

Сразу же хочется отметить то, что книга очень хорошо оформлена и структурирована. Она разделена на 6 частей, которые суммарно содержат 30 глав. Каждая глава в свою очередь содержит несколько подразделов и завершается кратким резюме. За исключением первой, все главы предлагаю список упражнения, ответы к данным упражнениям можно найти в Приложение Б, в конце книги.

После ознакомления с разделом "Структура книги" в введение, появляется уверенность, что Кристофер Негус проведет нас от первых шагов выбора "Идеального рабочего стола в Linux", через путь "Опытного пользователя Linux", использующего командную оболочку, способного управляться c текстовыми файлами и знающего как писать простые скрипты оболочки, к "Администрированию системы Linux" и "Администрированию серверов в Linux", а в завершении пути, после постижения "Методов обеспечения безопасности в Linux", приведет нас к "Работе с облачными вычислениями".

Разве такой путь не может не вдохновлять? Значит, самое время начать чтение!

Глава 1. Начало работы в Linux

Первая же два предложения, которые встречают читателя, вызывают воодушевление и восхищение:

Война операционных систем (ОС) окончена, Linux победила. Проприетарные (закрытые) операционные системы попросту не успевают за Linux, качественное улучшение которой выполняется с большой скоростью и обеспечивается благодаря взаимодействию разработчиков и внедрению инноваций.

Далее в тексте предпринимается попытка дать определение тому "что такое система Linux", через те функции, которые возложены на операционную систему, и чем Linux отличается от других операционных систем. Очень краткая история Linux, которая занимает менее страницы текста, чуть более подробная история UNIX, проекта GNU, открытых лицензиях.

После чего автор переходит к рассказу о том, как появились дистрибутивы Linux, в том числе и с коммерческой поддержкой. Упоминает об основных ветках дистрибутивов, и том как компании зарабатывают на Linux.

Глава 2. Идеальный рабочий стол в Linux

Вообще тем, кто хоть немного знаком с миром GNU/Linux, данный заголовок может показаться вызывающим, провокационным, и даже может вызвать гнев и желание поспорить. Потому что в отличие от операционной системы Windows, доступных вариантов графического окружения рабочего стола существует огромное множество, и их отличие между собой иногда просто поражает воображение. Но автор упоминает только GNOME, KDE, LXDE и Xfce, при этом именно упоминает в нескольких предложениях.

Фраза, которая очень точно указывает на то, что нас ожидает далее, достаточно лаконичная:

Поскольку сейчас для Fedora используется интерфейс GNOME 3, большинство примеров, описанных в главе, будут работать и в других дистрибутивах с GNOME 3.

Таким образом Кристофер Негус говорит нам, что идеальный рабочий стол в Linux это GNOME 3. И далее на 25 страницах, которые я просто пролистал, рассматривая скриншоты, рассказывается о рабочих столах GNOME 3 и GNOME 2.

Опять же, не ради изучения работы с какой-либо графической средой рабочего стола была взята данная книга, по этому учтем мнение автора, оставим позади 95 страниц и перейдем к следующей части - "Опытный пользователь Linux".

Глава 3. Использование оболочки

В книге под "оболочкой" понимается командный интерпретатор Bash, и автор объясняет это тем, что в Fedora, Ubuntu и Red Hat Enterprise Linux, по умолчанию задействуют именно этот командный интерпретатор, а также тем, что он включен в большую часть экзаменов по Linux.

Далее в главе идет рассказ о синтаксисе команд, ключах, местоположении команд в системе, объясняется различие между псевдонимами, зарезервированными словами, функциями, встроенными командами и командами файловой системы, а также разъясняется процесс поиска командным интерпретатором введенной пользователем команды.

В главе содержится подробная информация о работе с командным интерпретатором, включая работу с историей команд, использование автозавершения ввода, редактирования введенных команд, перенаправление вывода, использовании переменных. Очень сложно, имея опыт работы, поставить себя на место человека, который никогда не видел командного интерпретатора, и оценить насколько понятно автору удалось объяснить указанные темы, но складывается ощущение, что Кристофер Негус приложил все усилия для этого.

Глава 4. Файловая система

Так же, как и с предыдущей главой речь идет о том, как работать с файловыми системами с помощью командного интерпретатора, то есть как устроена структура каталогов в Linux исходя из стандарта иерархии файловой системы (FHS), и чем она отличается от структуры каталогов Windows. Описываются самые базовые команды для взаимодействия с файловой системой такие как получение списка файлов в каталоге (ls), смены текущего каталога (cd), создание каталога (mkdir), изменение прав доступа к файлам и каталогам (chmod), смены владельца файла или каталога (chown), удаление (rm), перемещение (mv) и копирование (cp) объектов файловой системы.

В данной главе не рассказывается, как устроена виртуальная файловая система (VFS), какие файловые системы поддерживаются Linux, как осуществлять управление файловыми системами и другие подробности, которые ожидает более опытный пользователь.

Глава 5. Работа с текстовыми файлами

Данная глава состоит из двух частей, первая это работа с текстовым редактором vi, а вторая - использование команд locate, find и grep.

Кристофер Негус не объясняет, почему в качестве текстового редактора он выбрал vi, точнее его улучшенную версию vim, хотя и указывает на существование других текстовых редакторов. Можно предположить что это связано с тем, что данные текстовый редактор присутствует во всех дистрибутивах GNU/Linux.

Основные приемы работы с текстовым редактором vi описаны, и даже указано как выйти из данного редактора. Но отсутствует хоть какая-то информация о том, как настраивать данный текстовый редактор, и даже нет упоминания о том, что это возможно.

Что касается работы с командами find и grep, то автор ограничился рассказом о самом базовом их использовании. Но, что лично меня сильно удивило, при описании команды grep Кристофер Негус и словом не обмолвился о регулярных выражениях. Мне кажется, что даже начинающему пользователю стоит хотя бы знать о их существовании, а данная глава находится во второй части книги, которая именуется "Опытный пользователь Linux".

Глава 6. Управление активными процессами

При чтении главы возникли некоторые вопросы к переводу отдельных терминов, но если есть опыт работы с GNU/Linux, то догадаться, что имелось в виду достаточно просто.

Опять же, автор обзорно, широкими мазками, представляет нам команды ps и top, процесс работы с фоновыми процессами и команды jobs, fg, bg, в двух словах говорит читателю о сигналах и использовании команд kill и killall, и завершает настройкой приоритетов с помощью команд nice и renice.

Более всего озадачил в данной главе раздел "Ограничения для процессов с помощью cgroups", которому отведено всего 2 страницы текста, большая часть из которых занята перечислением типов ресурсов, которые могут быть ограничены механизмом cgroups, и после перечисления мы видим следующее:

Знание того, как Linux может ограничивать использование ресурсов набором процессов, назначенных задаче, в конечном счете поможет лучше управлять вычислительными ресурсами. Чтобы узнать больше о контрольных группах, изучите следующие документы.

И тут возникают очень противоречивые чувства. С одной стороны, хочется поблагодарить автора за то, что он любезно упоминает о существовании cgroups и дает ссылку на дополнительную информацию. Понятно, что механизм этот сложный, чтобы можно было объяснить его на двух страницах. Но с другой стороны, когда в оглавлении видишь "Ограничения для процессов с помощью cgroups", то ожидаешь нечто большего, чем просто ссылку на документацию.

Глава 7. Простые скрипты оболочки

Как и в предыдущих двух главах, повествование о скриптах очень поверхностное, можно сказать ознакомительное. Для некоторых конструкций, например, таких как подстановка параметров, определенно не хватает примеров, и складывается ощущение, что они были просто скопированы из документации.

Правда в главе есть раздел "Полезные программы для работы с текстом", и в нем мы впервые встречаем регулярные выражения в следующем виде:

Синтаксический анализатор общих регулярных выражений

Название «синтаксический анализатор общих регулярных выражений» (general regular expression print (grep)) звучит устрашающе, но по сути это просто способ найти шаблоны в файлах или тексте. Инструмент полезный. Полностью овладеть умением работать с регулярными выражениями довольно сложно, но после того, как это начнет получаться, можно выполнить множество задач с помощью самых простых форм.

После этого идет один единственный пример, а после него, ставшая уже привычной, строка:

Чтобы увидеть список параметров для команды grep, введите man grep.

Далее примерно по 3 абзаца выделено для утилит cut, tr и потокового текстового редактора sed, более краткого и лаконичного описания я еще нигде не встречал.

Главы с 9 по 30

Главой 7 завершились Часть II "Опытный пользователь Linux", 206 страниц текста и терпение. Далее я перешел от внимательного последовательного чтения, к беглому выборочному, чтобы ознакомиться с остальной частью книги.

В результате стало понятно, что стиль автора сохраняется до конца книги. Местами удивительная краткость и лаконичность. Например, раздел "Настройка сети на предприятии", включающий в себя вопросы о настройке Linux в качестве маршрутизатора, DHCP-сервера, DNS-сервера и прокси-сервера, занимает 3 страницы.

Местами складывается ощущение, что ты смотришь на перевод man страниц. Хотя понятно, что написать книгу о GNU/Linux не обращаясь к документации достаточно затруднительно, но все же можно добавить примеры, дать более развернутое описание ключей, варианты использования.

В некоторых местах просто впадаешь в ступор, например, следующий пассаж Главы 9. "Установка Linux", в разделе "Загрузчик операционной системы GRUB":

Загрузчик позволяет выбрать, когда и как загружать операционные системы, установленные на жестких дисках компьютера. GRand Unified Bootloader (GRUB) — это самый популярный загрузчик, используемый для установленных систем Linux. Сегодня доступны две основные версии GRUB:

  • GRUB Legacy (версия 1) — работала с более ранними версиями RHEL, Fedora и Ubuntu;

  • GRUB 2 (версия 2) — текущие версии Red Hat Enterprise Linux, Ubuntu и Fedora применяют GRUB 2 в качестве загрузчика по умолчанию.

Если вы хотите загрузиться до определенного уровня запуска, добавьте нужный уровень в конец строки ядра. Например, чтобы загрузиться до третьего уровня запуска RHEL (многопользовательский плюс сетевой режим), добавьте 3 в конец строки ядра. Можно также загрузиться в однопользовательский режим (1), многопользовательский режим (2) или режим X GUI (3). Уровень 3 подходит, когда графический интерфейс временно недоступен. Уровень 1 подходит, если вы забыли свой пароль root.

Как мысль автора перешла от знакомства с загрузчиком и расшифровки аббревиатуры GRUB к уровням запуска? Откуда взялся "конец строки ядра"? Каким образом в этот "конец" что-то добавить? Складывается ощущение, что выпало несколько абзацев между теми, что приведены в цитате. В общем если вы ничего не знаете о GRUB, то из данного раздела вы скорее всего ничего полезного для себя не узнаете.

Подводя итоги

Несмотря на первое позитивное впечатление от книги, за что стоит благодарить издателя, книга, по моему мнению, бесполезна. Она не дает даже минимального представления о принципах, базовых концепциях и идеях, которые лежат в основе программного обеспечения GNU/Linux, и скорее напоминает "книгу заклинаний", повторение которых дает желаемый эффект, но каким образом это происходит, для пользователя остается загадкой.

Боюсь что для человека, который впервые начинает знакомство с GNU/Linux от данной книги будет больше вреда, чем пользы.

На все вопросы, которые я задал себе перед началом чтения, могу уверенно ответить "Нет". Также автор, несмотря на его достижения и профессиональный опыт, утратил доверие полностью, и навряд ли я возьмусь читать его книги в будущем.

Еще раз хочу отметить, что все сказанное в данной статье, это исключительно мое мнение о данной книге как читателя, не претендующего на экспертную оценку.

Tags:
Hubs:
Total votes 20: ↑19 and ↓1+22
Comments22

Articles