Comments 16
Какая-то странная подборка. Не каждому Linux-инженеру нужны знания по Docker и Kubernetes. Не помешают, но уж точно не в первую очередь. А вот Немет, Снайдер, Хейн: Unix и Linux. Руководство системного администратора - просто необходима, причем в первую очередь.
ОМГ, Олиферы все ещё в ходу. Прочитавшие последнее издание могут ответить на вопрос ARP это какого уровня протокол? :)
Лучше уж «сети для самых маленьких»
Олиферы имхо полезны будут если в науку лезть
А я бы еще в подборку добавил последнее издание Робачевского, сам с трудом его нашел, очень маленький тираж был. Чтобы понять внутренности 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
Мне ещё в свое время зашла книга К. Петцке по системному программированию под Линукс. Правда давно это было, но внутреннее устройство ведра, азы, расставила в голове.
Еще есть две неплохие книги Р.Лава для знакомства с "подкапотным пространством" Linux и Unix подобных систем. Написаны давно, но т.к. базовые принципы не изменились, вполне себе годные и сегодня.
Там вся основа Linux без лишнего углубления в детали, что будет очень полезно новичкам.
У Дениса Колесниченко огромное количество книг по Линуксу. Рекомендую.
А ещё рекомендую Уильям Шоттс - Командная строка Линукс, 2-е издание.
Очень удивлён рекомендацией опусов Колисниченко. Нет, я может сужу поверхностно, но беглое знакомство "по диагонали" с разными его книгами вызывает ощущение очень фрагментарных неглубоких сборников пересказов manpages и скриншотиков графических приложений в разных DE. Денис их периодически актуализирует и новые издания зачем-то снова оказываются на полках, но кто их читает - для меня загадка.. Это может быть интересно разве что совсем новичкам, но я даже им не советовал бы тратить на это своё время.
Эй, Сбер, вы бы хоть у своих же линуксовых инженеров спросили. Может чего-то путного посоветовали, кроме рандомных книг из топа покупок какого-то книжного магазина.
Сандер Ван Вугт, конечно, хорош. Но хорош он для подготовки к экзамену RHCSA, а как самостоятельное пособие - сомнительно. И кстати, давно есть уже издание под RHEL8, и ремарку "книге уже семь лет" можно убрать.
Не хотел комментировать пост (подборка вопиюще нелепая, но люди может старались..), однако тут в комментариях уже назвали несколько отличных книг - не могу удержаться и не докинуть в копилочку:
Внутренне устройство Linux. Есть две разных книги с таким названием -- обе хороши. Одна написана Дмитрием Кетовым и я считаю что она даже может считаться некоторым "логическим продолжением" Операционной системы UNIX Робачевского, но с меньшим погружением "в исходники", зато более актуальным и целиком посвященным только системам на базе ядра Linux. Вторая же -- перевод How Linux Works Брайяна Уорда. И если первая книга больше сконцентрирована на ядре, то вторая уже скорее комплексно освещает устройство современных дистрибутивов: загрузчики, системы инициализации, пакетные менеджеры, подсистема PAM и т.п.
Введение в ОС Linux. Курс лекций. Учебное пособие (2-е издание). Увы, несколько устаревшая, но довольно любопытная книга преподавателя факультета ВМиК МГУ и одного из мейнтейнеров ALT Linux Георгия Курячего. Вот как раз её я вполне мог бы порекомендовать новичкам: книга описывает базу, которая устаревает не так быстро и кроме того официально доступна в сети.
Во-вторых, складывается ощущение, что в сбер просела тема линукса, как учить не знают, где учебников набрать — тоже непонятно. О! Идея — вбросим статью с полубредовой подборкой, а в комментариях накидают хороших книг!
Добавлю от себя тогда, что мне было полезно (хоть и не linux-инженер):
Mendel Cooper «Advanced Bash-Scripting Guide» (есть в переводе Андрея Киселева)
Даниэл Дж. Баррет «Linux Comand Book (Основные команды Linux)» совсем уж поначалу полезно держать под рукой
Эви Немет, Гарт Снайдер, Трент Хейн «Руководство администратора Linux» — показалось довольно неплохо, но тут я не спец.
Osamu Aoki «Справочник по Debian» (раз уж в статье упомянут Red Hat) — оно, конечно, смахивает на изложение манов, но уж как минимум не хуже Колесниченко.
Ну, и маны, разумеется — ложнами, пачками, ведрами…
Странная подборка, словно брали рандом из терминов и слов на слуху....
По линуксу - лучшее что есть: «Unix и Linux. Руководство системного администратора».
Там рассказывает не только про линукс, но и про докер, ансибл и другие современные вещи которые используются и с которыми можно столкнуться
Но вот про мускуль например там ничего не будет, так что если нужно хотя бы поверхностно изучить, то нужно что-то еще брать отдельное
Немного дополню на тему того, что ещё можно почитать:
Э. Таненбаум, Д. Уэзеролл «Компьютерные сети»
Д. Куроуз, К. Росс «Компьютерные сети. Нисходящий подход»
Настольная книга администратора Debian - https://www.debian.org/doc/manuals/debian-handbook/
Э. Таненбаум, Т. Остин «Архитектура компьютера»
Э. Таненбаум, М. Стин «Распределенные системы»
Крикет Ли, Пол Альбитц «DNS и BIND»
Эдриен Моуэт «Использование Docker»
Т. Лимончелли «Тайм-менеджмент для системных администраторов»
Что почитать Linux-инженеру: книги для новичков и профессионалов