
Эта книга — введение во внутреннее устройство ОС Linux. Рассмотрены основные подсистемы ядра и их сущности, механизмы контроля доступа и привилегии, принципы и механизмы контейнеризации. Уделено внимание компонентам, подсистемам Linux и их функционированию как единой системы. Подробно описано пользовательское окружение, интерфейс командной строки CLI, язык командного интерпретатора и его использование для автоматизации актуальных задач. Все положения наглядно проиллюстрированы примерами, разработанными автором и проверенными им на практике.
В 3-м издании описаны механизмы принудительного разграничения доступа и контроля целостности, уникальные для российского защищенного дистрибутива Astra Linux и операционных систем в целом. Учтены последние изменения в компонентах ОС и обновлены листинги примеров. Расширена глава про сетевую подсистему, добавлена глава по современным средствам трассировки, измерения нагрузки и мониторинга производительности.
Для студентов, пользователей, программистов и системных администраторов Linux
Книга, которую вы держите в руках, адресована студентам, начинающим пользователям, программистам и системным администраторам операционной системы Linux. Она представляет собой введение во внутреннее устройство Linux — от ядра до сетевых служб и от утилит командной строки до графического интерфейса.
Все части операционной системы рассматриваются в контексте типичных задач, решаемых на практике, и поясняются при помощи соответствующего инструментария пользователя, администратора и разработчика.
Все положения наглядно проиллюстрированы примерами, разработанными и проверенными автором с целью привить читателю навыки самостоятельного исследования постоянно эволюционирующей операционной системы Linux.
Совет для начинающих
И напоследок, самый важный совет для начинающих — начните!
Цитата из книги
- Импортозамещение и российский Linux: все, что вы хотели знать
- Пользовательское окружение и интерфейс командной строки CLI
- Файлы, каталоги и файловые системы
- Процессы и нити, каналы, сокеты и разделяемая память
- Дискреционное и мандатное разграничение доступа, мандатный контроль целостности и привилегии процессов
- Сетевая подсистема и службы
- Графический интерфейс GUI: оконные системы X Window и Wayland
- Программирование на языке командного интерпретатора
- Контейнеры и виртуализация
- От отдельных компонент — к системе: Linux своими руками
- Нагрузка, производительность, мониторинг и трассировка
Книгу “Внутреннее устройство Linux, 3 изд.” можно купить со скидкой в интернет-магазине издательства “БХВ“.
Предисловие. 9
Импортозамещение и российский Linux: все, что вы хотели знать,
но боялись спросить. 9
Сертифицированные операционные системы.. 10
Другие операционные системы.. 11
Введение. 12
О чем эта книга?. 12
Кому адресована книга. 13
Принятые соглашения и обозначения. 14
Методические рекомендации.. 15
Что должен знать читатель. 16
Совет для начинающих. 19
Глава 1. Архитектура ОС Linux. 20
1.1. Обзор внутреннего устройства. 20
1.2. Внеядерные компоненты: программы и библиотеки.. 22
1.3. Ядерные компоненты: подсистемы управления процессами, памятью, вводом-выводом, файлами 22
1.4. Трассировка системных и библиотечных вызовов. 23
1.5. Интерфейсы прикладного программирования. 25
1.6. В заключение. 26
Глава 2. Пользовательское окружение ОС Linux. 27
2.1. Командный интерфейс. 27
2.2. Виртуальные терминалы.. 29
2.2.1. Псевдотерминалы.. 31
2.3. Управляющие символы.. 33
2.4. Управляющие последовательности.. 40
2.5. Основной синтаксис командной строки.. 43
2.5.1. Опции командной строки.. 45
2.6. Справочные системы.. 46
2.6.1. Система страниц руководства. 46
2.6.2. Справочная система GNU.. 50
2.6.3. Встроенная справка командного интерпретатора. 50
2.7. Пользователи и группы.. 51
2.7.1. Передача полномочий.. 53
2.7.2. Хранилища учетных записей.. 54
2.8. Переменные окружения и конфигурационные dot-файлы.. 55
2.9. В заключение. 62
Глава 3. Подсистема управления файлами и вводом-выводом.. 63
3.1. Файлы и дерево каталогов. 63
3.1.1. Путевые имена файлов. 64
3.2. Типы файлов. 65
3.2.1. Обычные файлы.. 66
3.2.2. Каталоги.. 67
3.2.3. Имена, данные, метаданные и индексные дескрипторы.. 68
3.2.4. Ссылки.. 69
3.2.5. Специальные файлы устройств. 73
3.2.6. Именованные каналы и файловые сокеты.. 76
3.3. Файловые дескрипторы.. 77
3.4. Файловые системы.. 80
3.4.1. Файловые системы и процедура монтирования. 80
3.4.2. Дисковые файловые системы.. 82
3.4.3. Сетевые файловые системы.. 83
3.4.4. Специальные файловые системы.. 85
3.4.5. Внеядерные файловые системы.. 86
3.5. Дискреционное разграничение доступа. 90
3.5.1. Владельцы и режим доступа к файлам.. 91
3.5.2. Базовые права доступа и дополнительные атрибуты.. 92
Режим доступа новых файлов. 94
Семантика режима доступа разных типов файлов. 95
Дополнительные атрибуты.. 97
3.5.3. Списки контроля доступа POSIX. 101
Групповая маска. 103
Права по умолчанию.. 104
3.6. Мандатное (принудительное) разграничение доступа. 105
3.6.1. Модуль принудительного разграничения доступа AppArmor. 107
3.6.2. Модуль принудительного разграничения доступа SELinux. 109
3.6.3. Модуль принудительного разграничения доступа Astra Linux. 114
3.7. Дополнительные свойства файлов. 125
3.7.1. Расширенные атрибуты файлов. 125
3.7.2. Флаги файлов. 127
3.8. В заключение. 128
Глава 4. Управление процессами и памятью.. 129
4.1. Программы и библиотеки.. 129
4.1.1. Ядро Linux. 132
4.2. Процессы и нити.. 135
4.3. Порождение процессов и нитей, запуск программ.. 139
4.3.1. Параллельные многопроцессные программы.. 143
4.3.2. Параллельные многонитевые программы.. 144
4.3.3. Двойственность процессов и нитей Linux. 148
4.4. Дерево процессов. 150
4.5. Атрибуты процесса. 152
4.5.1. Маркеры доступа. 153
4.5.2. Привилегии.. 156
4.5.3. Другие атрибуты.. 160
4.6. Классы и приоритеты процессов. 160
4.6.1. Распределение процессора между процессами.. 160
4.6.2. Распределение устройств ввода-вывода между процессами.. 167
4.7. Память процесса. 176
4.7.1. Виртуальная память. 177
4.7.2. Отображение файлов в память. 179
4.7.3. Потребление памяти.. 183
4.8. Механизм сигналов. 187
4.8.1. Сеансы и группы процессов: управление заданиями.. 192
4.9. Межпроцессное взаимодействие. 195
4.9.1. Неименованные каналы.. 196
4.9.2. Именованные каналы.. 197
4.9.3. Неименованные локальные сокеты.. 198
4.9.4. Именованные локальные сокеты.. 200
4.9.5. Разделяемая память, семафоры и очереди сообщений.. 202
Разделяемая память. 202
Семафоры и очереди сообщений.. 206
4.10. В заключение. 207
Глава 5. Программирование на языке командного интерпретатора. 209
5.1. Интерпретаторы и их сценарии.. 209
5.2. Встроенные и внешние команды.. 211
5.3. Перенаправление потоков ввода-вывода. 212
5.4. Подстановки командного интерпретатора. 218
5.4.1. Подстановки имен файлов. 218
5.4.2. Подстановки параметров. 220
Переменные — именованные параметры.. 220
Позиционные параметры.. 223
Специальные параметры.. 224
5.4.3. Подстановки вывода команд. 225
5.4.4. Подстановки арифметических выражений.. 227
5.5. Экранирование. 230
5.6. Списки команд. 233
5.6.1. Условные списки.. 234
5.6.2. Составные списки: ветвление. 236
5.6.3. Составные списки: циклы.. 241
5.6.4. Функции.. 246
5.7. Сценарии на языке командного интерпретатора. 249
5.8. Инструментальные средства обработки текста. 252
5.8.1. Фильтр строк grep. 253
5.8.2. Фильтр символов и полей cut 255
5.8.3. Процессор текстовых таблиц awk. 256
5.8.4. Потоковый редактор текста sed. 257
5.9. В заключение. 261
Глава 6. Сетевая подсистема. 262
6.1. Сетевые интерфейсы, протоколы и сетевые сокеты.. 262
6.2. Конфигурирование сетевых интерфейсов и протоколов. 266
6.2.1. Ручное конфигурирование. 266
6.2.2. Автоматическое конфигурирование. 268
6.3. Служба имен и DNS/mDNS-резолверы.. 276
6.4. Сетевые службы.. 281
6.4.1. Служба SSH.. 281
6.4.2. Почтовые службы SMTP, POP/IMAP. 289
6.4.3. Служба WWW… 292
6.4.4. Служба FTP. 294
6.4.5. Служба NFS. 296
NFS-клиент. 296
NFS-сервер. 297
6.4.6. Служба SMB/CIFS. 298
Имена NetBIOS. 299
CIFS-клиенты.. 300
6.4.7. Служба каталогов LDAP. 302
Служба имен и пользовательские учетные записи.. 306
6.5. Средства сетевой диагностики.. 307
6.5.1. Анализаторы пакетов tcpdump и tshark. 307
6.5.2. Сетевой сканер nmap. 310
6.5.3. Мониторинг сетевых соединений процессов. 311
6.6. В заключение. 313
Глава 7. Графическая система X Window System… 315
7.1. X-сервер. 315
7.2. X-клиенты и X-протокол. 317
7.3. Оконные менеджеры.. 322
7.3.1. Декорирование на клиентской стороне. 325
7.4. Настольные пользовательские окружения. 327
7.5. Библиотеки интерфейсных элементов. 329
7.6. Расширения Х-протокола. 332
7.6.1. Расширение Composite и композитный менеджер. 334
7.6.2. GLX, DRI и 3D-графика. 336
7.7. Запуск X Window System… 338
7.7.1. Локальный запуск X-клиентов. 338
7.7.2. Дистанционный запуск X-клиентов. 338
7.7.3. Управление X-дисплеями: XDMCP-менеджер и протокол. 341
7.8. Программный интерфейс X Window System… 342
7.8.1. Трассировка X-библиотек и X-протокола. 342
7.8.2. 3D-графика и инфраструктура прямого рендеринга DRI 348
7.9. В заключение. 354
Глава 8. Графическая система Wayland. 356
8.1. Wayland-композитор. 358
8.2. Wayland-клиенты и Wayland-протокол. 359
8.3. Запуск графической среды на основе Wayland. 365
8.4. В заключение. 366
Глава 9. Контейнеры и виртуальные машины.. 367
9.1. Чрутизация. 368
9.2. Пространства имен.. 372
9.3. Контейнеризация: runc и docker. 377
9.4. Группы управления (cgroups). 381
9.5. В заключение. 385
Глава 10. От отдельных компонент — к системе. 386
10.1. Как Linux загружается. 386
10.2. Как обнаруживаются драйверы устройств. 390
10.3. Как запускаются системные службы.. 393
10.4. Linux своими руками.. 402
10.5. В заключение. 411
Глава 11. Нагрузка, производительность, мониторинг и трассировка. 412
11.1. Метрики и инструменты измерения нагрузки и производительности.. 412
11.1.1. Центральный процессор и память. 412
11.1.2. Устройства ввода-вывода. 420
11.2. Мониторинг и трассировка. 424
11.2.1. Трассировка и отладка программ.. 426
11.3. В заключение. 439
Заключение. 440
Список литературы.. 442
Для удовольствия. 442
Начинающим.. 442
Программистам.. 442
Бесстрашным.. 443
Предметный указатель. 444

Кетов Дмитрий Владимирович, ведущий преподаватель в области операционных систем и сетевых технологий Санкт-Петербургского политехнического университета (СПбПУ) с многолетним стажем, начальник отдела разработки программного обеспечения Санкт-Петербургского филиала АО “Концерн радиостроения «Вега»”. Профессионально занимается теорией построения и практикой разработки операционных систем и системного программного обеспечения.
-
НОВИНКА
Внутреннее устройство Linux, 3 изд.
938 ₽
703 ₽