Попала мне в руки на некоторое время 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 может ограничивать использование ресурсов набором процессов, назначенных задаче, в конечном счете поможет лучше управлять вычислительными ресурсами. Чтобы узнать больше о контрольных группах, изучите следующие документы.
Руководство Red Hat Enterprise Linux Resource Management and Linux Containers, https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/resource_management_guide/index
Информация о контрольных группах на сайте Kernel. Перейдите к файлу /usr/share/doc/kernel-doc-*/Documentation/cgroups после установки пакета kernel-doc.
И тут возникают очень противоречивые чувства. С одной стороны, хочется поблагодарить автора за то, что он любезно упоминает о существовании 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 от данной книги будет больше вреда, чем пользы.
На все вопросы, которые я задал себе перед началом чтения, могу уверенно ответить "Нет". Также автор, несмотря на его достижения и профессиональный опыт, утратил доверие полностью, и навряд ли я возьмусь читать его книги в будущем.
Еще раз хочу отметить, что все сказанное в данной статье, это исключительно мое мнение о данной книге как читателя, не претендующего на экспертную оценку.
Комментарии (17)
xcore78
16.01.2024 21:14Не надо читать Немет, читайте Армстронга:
https://festima.ru/docs/368019289/allrussia/dzheims-armstrong-sekrety-unix-2-e-izdanie
thsiganenko Автор
16.01.2024 21:14Спасибо за Вашу рекомендацию!
Быстрый поиск в сети показал что перевод 2-го издания книги Джеймса С. Армстронга "Секреты UNIX" в печатном виде был выпущен издательским домом "Вильямс" в 2000 году, ISBN 5-8459-0068-9 (оригинал: Unix Secrets 2nd Edition by James C. Armstrong, Publisher: John Wiley & Sons Inc; 2nd edition (January 1, 1999) ISBN-13: 978-0764533204).
После этого книга не переиздавалась. И судя по тому, что писали на форумах 20 лет назад, ее уже тогда было очень сложно найти. Есть в некоторых университетских библиотеках, но для этого нужен к ним доступ. Насколько я понимаю, в электронном виде данная книга не издавалась вообще.
На сайте издательства "Диалектика" удалось найти "Введение", оглавление и даже файлы примеров из книги https://www.dialektika.com/books/oldpages/S_Unix.html.
xcore78
16.01.2024 21:14+1Это проблема, но, тем не менее, я не встречал за свою карьеру книг, подходящих близко к потенциалу Арсмтронга (это при том, что в RU.LINUX ее всегда по-доброму чморили как "Секреты Армстронга младшего от Армстронга старшего").
Книга - настоящая инструкция, как стать из начинающего уверенным power-user. В частности, там есть и отсылка к vimtutor. И даже что-то про богопротивный емакс.Немет, с другой стороны, - это сборник анекдотов из жизни BAFH, не дающая ни академических знаний (справедливости ради, за академическими знаниями по теме надо идти к Робачевскому либо к англоязычному оригиналу Баха), ни каких-то вменяемых ступенек роста. Пиар да и только.
thsiganenko Автор
16.01.2024 21:14Спасибо за ваше мнений и еще одну рекомендацию! Xочу уточнить, я правильно понял, что вы упомянули книгу Андрея Михайловича Робачевского "Операционная система Unix"?
Опять же, быстрый поиск показал, что ее издавали в последний раз в 2010 году, так что достать ее тоже не просто.
Операционная система UNIX. / Робачевский А.М., Немнюгин С.А., Стесик О.Л. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 656 с.: ил. ISBN 978-5-94157-538-1
xcore78
16.01.2024 21:14Это она, и она гуглится сходу прямо. Еще можно купить англоязычный оригинал Баха (я ниже привел ISBN).
К слову, Кетов читал в том числе по Робачевскому.
RZimin
16.01.2024 21:14+2Там на самом деле проблема не столько в книге, сколько в переводе. Эту книгу нужно читать в оригинале. С переводом там очень очень большая беда.
Я некоторые моменты уже подсвечивал.
https://habr.com/ru/companies/piter/articles/575758/comments/#comment_23486348
thsiganenko Автор
16.01.2024 21:14Спасибо за ваше дополнение! Мне тоже временами казалось, что некоторые фразы выглядят странно, даже по меркам машинного перевода, ну и в некоторых местах возникают сложности в понимании текста из-за очень специфического перевода терминов. Нет под рукой оригинала, чтобы привести пример, но в некоторых моментах прям ощущается, что определение указывает на совершенно другую сущность, а не ту, что указана.
Но помимо самого перевода у меня возник вопрос к методике автора изложения информации в книге. Много внимания уделяется темам простым, и очень поверхностный обзор того, что действительном может быть интересно опытным пользователям.
Напоминает историю про то, как нарисовать сову.
Crazy_Father
16.01.2024 21:14А что рекомендуете почитать вменяемого?
thsiganenko Автор
16.01.2024 21:14Пока в моей библиотеке не много завершенных книг на тему Linux, но наибольшее впечатление произвели две:
Дмитрий Владимирович Кетов "Внутреннее устройство Linux", совместно с записями лекций, который доступны его YouTube канале Dmitry Ketov. У меня она есть во 2-ом издании 2021 года, но на сайте издательства сейчас уже доступно 3-е издание, не сочтите за рекламу "Внутреннее устройство Linux, 3 изд.".
Брайан Керниган, Роб Пайк "UNIX. Программное окружение", в переводе с английского 2003 года издания (ISBN 5-93286-029-4)
Ну и, как уже отмечал в комментариях ранее, сейчас читаю Эви Немет "Unix и Linux: руководство системного администратора", добрался до третьей главы, пока впечатления приятные.
net_racoon
16.01.2024 21:14А зачем это все? Лучше бы книгу про архитектуру, как это все работает и что ща что отвечает. А про оболочки куча информации в сети.
xcore78
16.01.2024 21:14Робачевский 978-5-94157-538-1 - сходу гуглится в интернете (или оригинал Баха ISBN-13 978-0132017992).
EvgeniyDobro
16.01.2024 21:14я только неделю назад скачал 2 книжки
про которую пишет автор и Эви Немет "Unix и Linux: руководство системного администратора"
начал с "Библии" и действительно, подача кажется очень странно
ednersky
Где же, где старые добрые времена и книги Эви Немет? Эх!
thsiganenko Автор
Вот прямо сейчас взял 5-е издание Эви Немет "Unix и Linux: руководство системного администратора" и получаю удовольствие от чтения. Жаль автора этой книги уже нет с нами. Судя по биографии была удивительным человеком.
aspirinne
Спасибо за прекрасный обзор.
Судя по предыдущему комментарию, автор неплохо знаком с "линукс-литературой". Хотелось бы получить от него статью, типа: "Районная олимпиада на звание "Linux-библии"". Так, чтобы один раз потратить (пусть даже и много) денег и держать книжку под рукой.