Недавно мы публиковали подборку книг для Java-разработчиков. Сегодня предлагаем ещё один список, на этот раз для инженеров Linux. Знания и опыт у представителей этой специальности практически всегда очень разносторонние. Но книги помогают повышать квалификацию даже профессионалам с солидным багажом знаний, опыта и скилов, не говоря уже о новичках. Сегодня в подборке — пять хороших книг, на которые стоит обратить внимание.

«Компьютерные сети. Принципы, технологии, протоколы»

Авторы: Олифер В. Г., Олифер Н. А.

В 2022 году исполнилось 20 лет с момента выхода в свет первого издания этой книги. Сейчас это уже 6-е издание, около трети материала в нём — либо новая информация, либо значительно переработанные темы из предыдущих изданий. Пример — раздел «Беспроводные сети» плюс полностью переработанная часть, которая посвящена технологиям первичных сетей SDH, OTN и DWDM.

О книге можно сказать, что она нужна любому инженеру — как опытному, так и новичку. Изложение информации — от простого к сложному. Сначала авторы рассказывают об общих принципах построения сетей, о модели OSI и основных протоколах. Затем идёт более глубокое погружение в такие темы, как маршрутизация и анализ локальных сетей.

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

Но книга будет полезна и профессионалам, которым нужно освежить какие-то моменты в памяти, а что-то дополнительно изучить. К слову, издание рекомендовано Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению «Информатика и вычислительная техника» и по специальностям «Вычислительные машины, комплексы, системы и сети», «Автоматизированные машины, комплексы, системы и сети», «Программное обеспечение вычислительной техники и автоматизированных систем».

Red Hat RHCSA/RHCE 7 Cert Guide: Red Hat Enterprise Linux 7 (EX200 and EX300)

Автор: Сандер Ван Вугт (Sander Van Vugt)

Эта книга есть в библиотеке у многих инженеров Linux, а тем, у кого её нет — очень рекомендуем добавить. Автор обстоятельно рассказывает о Red Hat Enterprise Linux. В книге даётся информация и о базовых вещах, и о более продвинутых нюансах. Начинается разговор с принципов работы в командной строке, создания пользователей и т. п. А затем уже раскрываются более сложные темы, включая управление пакетами, настройку сетей.

Издание разделяется на две части. Во второй речь идёт уже о более глубоких особенностях работы в среде Red Hat Enterprise Linux. Например, о настройке веб-серверов, системах управления базами данных, оптимизации производительности.

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

Mastering Ansible

Авторы: Джеймс Фриман, Джесси Китинг (James Freeman, Jesse Keating)

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

Рассказывается в книге о работе с распределёнными системами, настройках нескольких машин одновременно. Оптимизировать рабочий процесс помогает система Ansible, предназначенная для сетевых инженеров.

В книге показано, как написать сценарий того, что требуется сделать, а затем запустить сразу на нескольких хостах. Метод помогает работать с 10-50 машинами одновременно, автоматизируя большинство ресурсоёмких тасков.

Прочитавшие книгу говорят, что она реально помогает разобраться с Ansible и, соответственно, сократить затраты времени на выполнение рутинных процедур. Сейчас вышло уже четвёртое издание.

«Kubernetes в действии»

 Автор: Марко Лукша

Книга посвящена Kubernetes — открытому программному обеспечению Google для автоматизации развёртывания, масштабирования и управления приложениями. Автор учит использовать Kubernetes для развёртывания распределённых контейнеризированных приложений и делает это неплохо.

Всё начинается с обзора Docker и Kubernetes с постепенным углублением в технологии. В частности, читателю предложат разработать приложения, постепенно добавляя новые возможности и углубляя знания архитектуры и принципа работы Kubernetes.

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

Site Reliability Engineering. How Google Runs Production Systems

Авторы: Бетси Бейер, Крис Джонс, Дженнифер Петофф и Найл Ричард Мёрфи (Betsy Beyer, Chris Jones, Jennifer Petoff and Niall Richard Murphy)

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

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

Кстати, есть и раздел, в котором рассказывается примерно то же, что в книге  Mastering Ansible, но с большим количеством подробностей, с уклоном в отказоустойчивый подход, применяемый в Google. Основной принцип, который проповедуют авторы, — недопущение возникновения проблемы. Конечно, если она уже появилась, её нужно решать, но лучше всего не допускать её совсем. И это не капитанство — авторы действительно неплохо раскрывают тему.

На этом пока всё. Если у вас есть собственные рекомендации книг, которые обязательно нужны инженеру Linux, пишите о них в комментариях — обсудим.

Комментарии (11)


  1. Voldemarius
    04.01.2023 13:52
    +9

    Какая-то странная подборка. Не каждому Linux-инженеру нужны знания по Docker и Kubernetes. Не помешают, но уж точно не в первую очередь. А вот Немет, Снайдер, Хейн: Unix и Linux. Руководство системного администратора - просто необходима, причем в первую очередь.


  1. denaturat
    04.01.2023 15:56
    +2

    ОМГ, Олиферы все ещё в ходу. Прочитавшие последнее издание могут ответить на вопрос ARP это какого уровня протокол? :)


  1. toxella
    04.01.2023 16:09
    +2

    Лучше уж «сети для самых маленьких»

    Олиферы имхо полезны будут если в науку лезть


  1. hiddenman
    04.01.2023 16:16
    +5

    А я бы еще в подборку добавил последнее издание Робачевского, сам с трудом его нашел, очень маленький тираж был. Чтобы понять внутренности UNIX-а и как там вообще всё работает, что и почему и как появилось, как работает VFS, сокеты, pipes и прочие штуки. А не заучивать команды одной из сборок Linux-а. Бестселлер был в своё время и вроде бы до сих пор ничего лучше не появилось.

    Издание 2014 года надо искать, там уже и про Linux и про современные (на то время) вещи так же написано.

    Оглавление

    Введение
    Причины популярности UNIX
    Общий взгляд на архитектуру UNIX
    Ядро системы
    Файловая подсистема
    Подсистема управления процессами
    Подсистема ввода-вывода
    История создания
    Исследовательские версии UNIX
    Генеалогия UNIX
    System V UNIX
    System V Release 4 (SVR4)
    UNIX компании Berkeley Software Distribution
    OSF/1
    Версии UNIX, использующие микроядро
    Свободно распространяемая система UNIX
    Основные стандарты
    IEEE и POSIX
    ANSI
    SVID
    Х/Open и SUS
    Некоторые известные версии UNIX
    Глава 1. Работа в операционной системе UNIX
    Файлы и файловая система
    Типы файлов
    Обычный файл
    Каталог
    Специальный файл устройства
    FIFO (First-In-First-Out) или именованный канал
    Связь
    Сокеты
    Структура файловой системы UNIX
    Владельцы файлов
    Права доступа к файлу
    Дополнительные атрибуты файла
    Скрытые специфические атрибуты файлов
    Процессы
    Программы и процессы
    Типы процессов
    Системные процессы
    Демоны
    Прикладные процессы
    Атрибуты процесса
    Идентификатор процесса Process IDentifier (PID)
    Идентификатор родительского процесса Parent Process ID (PPID) —
    Приоритет процесса (Nice Number)
    Терминальная линия (TTY)
    Реальный (RID) и эффективный (EUID) идентификаторы пользователя
    Реальный (RGID) и эффективный (EGID) идентификаторы группы
    Жизненный путь процесса
    Сигналы
    Устройства
    Файлы блочных устройств
    Файлы символьных устройств
    Мнемоника названий специальных файлов устройств в файловой системе UNIX
    Пользователи системы
    Атрибуты пользователя
    Поле name
    Поле passwd-encod
    Поле UID
    Поле GID
    Поле comments
    Поле home-dir
    Поле shell
    Пароли
    Стандартные пользователи и группы
    Пользовательская среда UNIX
    Командный интерпретатор shell
    Синтаксис языка Bourne shell
    Общий синтаксис команд
    Именованные переменные
    Встроенные переменные
    Перенаправление ввода-вывода
    Встроенные функции
    Подстановки, выполняемые командным интерпретатором
    Система управления заданиями
    Основные утилиты UNIX
    Утилиты для работы с файлами
    Утилиты для управления процессами
    Заключение
    Глава 2. Среда программирования UNIX
    Программный интерфейс ОС UNIX
    Системные вызовы и функции стандартных библиотек
    Обработка ошибок
    Создание программы
    Исходный текст
    Заголовки
    Компиляция
    Форматы исполняемых файлов
    Формат a. out
    Формат ELF
    Формат COFF
    Выполнение программы в операционной системе UNIX
    Запуск С-программы
    Завершение С-программы
    Работа с файлами
    Основные системные функции для работы с файлами
    Функция ореп(2)
    Функция creat(2)
    Функция close(2)
    Функции dup(2) и dup2(2)
    Функция lseek(2)
    Функция read(2) и readv(2)
    Функции write(2) и writev(2)
    Функция pipe(2)
    Функция fcntl(2)
    Стандартная библиотека ввода-вывода
    Связи
    Файлы, отображаемые в памяти
    Владение файлами
    Права доступа
    Перемещение по файловой системе
    Метаданные файла
    Процессы
    Идентификаторы процесса
    Выделение памяти
    Создание процессов и управление ими
    Сигналы
    Надежные сигналы
    Группы и сеансы
    Текущие и фоновые группы процессов
    Ограничения
    Примеры программ
    Демон
    Командный интерпретатор
    Заключение
    Глава 3. Подсистема управления процессами
    Основы управления процессом
    Структуры данных процесса
    Состояния процесса
    Принципы управления памятью
    Виртуальная и физическая память
    Сегменты
    Страничный механизм
    Адресное пространство процесса
    Управление памятью процесса
    Области
    Замещение страниц
    Управление памятью в ОС Linux
    Планирование выполнения процессов
    Обработка прерываний таймера
    Отложенные вызовы
    "Будильники" (алармы)
    Контекст процесса
    Принципы планирования процессов
    Планирование выполнения процессов в ОС Linux
    Создание процесса
    Запуск новой программы
    Выполнение в режиме ядра
    Сон и пробуждение
    Завершение выполнения процесса
    Сигналы
    Группы и сеансы
    Управление сигналами
    Отправление сигнала
    Доставка и обработка сигнала
    Взаимодействие между процессами
    Каналы
    FIFO
    Идентификаторы и имена в IPC
    Сообщения
    Семафоры
    Разделяемая память
    Межпроцессное взаимодействие в BSD UNIX. Сокеты
    Программный интерфейс сокетов
    Пример использования сокетов
    Сравнение различных систем межпроцессного взаимодействия
    Заключение
    Глава 4. Файловая подсистема
    Базовая файловая система System V
    Суперблок
    Индексные дескрипторы
    Имена файлов
    Недостатки и ограничения
    Файловая система BSD UNIX
    Каталоги
    Файловая система ext2fs
    Журнальные файловые системы
    Файловая система ext3fs
    Файловая система ufs2
    Архитектура виртуальной файловой системы
    Виртуальные индексные дескрипторы
    Монтирование файловой системы
    Трансляция имен
    Доступ к файловой системе
    Файловые дескрипторы
    Файловая таблица
    Блокирование доступа к файлу
    Буферный кэш
    Внутренняя структура буферного кэша
    Операции ввода-вывода
    Кэширование в SVR4
    Целостность файловой системы
    Заключение
    Глава 5. Подсистема ввода-вывода
    Драйверы устройств
    Типы драйверов
    Базовая архитектура драйверов
    Файловый интерфейс
    Клоны
    Встраивание драйверов в ядро
    Блочные устройства
    Символьные устройства
    Интерфейс доступа низкого уровня
    Буферизация
    Архитектура терминального доступа
    Псевдотерминалы
    Подсистема STREAMS
    Архитектура STREAMS
    Модули
    Сообщения
    Типы сообщений
    Передача данных
    Управление передачей данных
    Драйвер
    Головной модуль
    Доступ к потоку
    Создание потока
    Управление потоком
    Мультиплексирование
    STREAMS в ОС Linux
    Заключение
    Глава 6. Поддержка сети в операционной системе UNIX
    Семейство протоколов TCP/IP
    Краткая история TCP/IP
    Архитектура TCP/IP
    Общая модель сетевого взаимодействия OSI
    Протокол IP
    Адресация
    Протокол IP версии 6
    Формат заголовка IPv6
    Адресация IPv6
    Протоколы транспортного уровня
    User Datagram Protocol (UDP)
    Transmission Control Protocol (TCP)
    Состояния TCP-сеанса
    Передача данных
    Стратегии реализации TCP
    Синдром "глупого окна"
    Медленный старт
    Устранение затора
    Повторная передача
    Программные интерфейсы
    Программный интерфейс сокетов
    Программный интерфейс TLI/XTI
    Программный интерфейс высокого уровня. Удаленный вызов процедур
    Передача параметров
    Связывание
    Обработка особых ситуаций
    Семантика вызова
    Представление данных
    Сеть
    Как это работает?
    Поддержка сети в BSD UNIX
    Структуры данных
    Маршрутизация
    Реализация TCP/IP
    Модуль IP
    Модуль UDP
    Модуль TCP
    Поддержка сети в UNIX System V
    Интерфейс TPI
    Взаимодействие с прикладными процессами
    Интерфейс DLPI
    Доступ к среде передачи
    Протокол LLC
    Инкапсуляция IP
    Внутренняя архитектура
    Примитивы DLPI
    Заключение
    Приложения
    Приложение А. Дополнительная информация об операционной системе UNIX
    Книги
    Информация в Интернете
    Приложение Б. Глоссарий
    Предметный указателm


    1. denaturat
      05.01.2023 12:00

      Мне ещё в свое время зашла книга К. Петцке по системному программированию под Линукс. Правда давно это было, но внутреннее устройство ведра, азы, расставила в голове.


  1. Thomas_Hanniball
    04.01.2023 18:37
    +1

    Для начинающих пользователей Linux рекомендую книгу «LINUX. Полное руководство по работе и администрированию.» Колесниченко Д. www.chitai-gorod.ru/catalog/book/1271073

    Там вся основа Linux без лишнего углубления в детали, что будет очень полезно новичкам.


    1. AlexGorky
      04.01.2023 19:51
      +2

      У Дениса Колесниченко огромное количество книг по Линуксу. Рекомендую.

      А ещё рекомендую Уильям Шоттс - Командная строка Линукс, 2-е издание.


      1. A1EF
        05.01.2023 00:55
        +1

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


  1. FlashHaos
    04.01.2023 21:30
    +2

    Эй, Сбер, вы бы хоть у своих же линуксовых инженеров спросили. Может чего-то путного посоветовали, кроме рандомных книг из топа покупок какого-то книжного магазина.

    Сандер Ван Вугт, конечно, хорош. Но хорош он для подготовки к экзамену RHCSA, а как самостоятельное пособие - сомнительно. И кстати, давно есть уже издание под RHEL8, и ремарку "книге уже семь лет" можно убрать.


  1. A1EF
    05.01.2023 01:25
    +2

    Не хотел комментировать пост (подборка вопиюще нелепая, но люди может старались..), однако тут в комментариях уже назвали несколько отличных книг - не могу удержаться и не докинуть в копилочку:

    • Внутренне устройство Linux. Есть две разных книги с таким названием -- обе хороши. Одна написана Дмитрием Кетовым и я считаю что она даже может считаться некоторым "логическим продолжением" Операционной системы UNIX Робачевского, но с меньшим погружением "в исходники", зато более актуальным и целиком посвященным только системам на базе ядра Linux. Вторая же -- перевод How Linux Works Брайяна Уорда. И если первая книга больше сконцентрирована на ядре, то вторая уже скорее комплексно освещает устройство современных дистрибутивов: загрузчики, системы инициализации, пакетные менеджеры, подсистема PAM и т.п.

    • Введение в ОС Linux. Курс лекций. Учебное пособие (2-е издание). Увы, несколько устаревшая, но довольно любопытная книга преподавателя факультета ВМиК МГУ и одного из мейнтейнеров ALT Linux Георгия Курячего. Вот как раз её я вполне мог бы порекомендовать новичкам: книга описывает базу, которая устаревает не так быстро и кроме того официально доступна в сети.


  1. RomeoGolf
    06.01.2023 09:47

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

    Добавлю от себя тогда, что мне было полезно (хоть и не linux-инженер):
    Mendel Cooper «Advanced Bash-Scripting Guide» (есть в переводе Андрея Киселева)
    Даниэл Дж. Баррет «Linux Comand Book (Основные команды Linux)» совсем уж поначалу полезно держать под рукой
    Эви Немет, Гарт Снайдер, Трент Хейн «Руководство администратора Linux» — показалось довольно неплохо, но тут я не спец.
    Osamu Aoki «Справочник по Debian» (раз уж в статье упомянут Red Hat) — оно, конечно, смахивает на изложение манов, но уж как минимум не хуже Колесниченко.
    Ну, и маны, разумеется — ложнами, пачками, ведрами…