FreeBSD. Архитектура и реализация
The Design and Implementation of the FreeBSD Operating System
Издательство: Кудиц-Образ, 2006 г.
Твердая обложка, 800 стр.
ISBN 5-9579-0103-2
Тираж: 2000 экз.
Формат: 70x100/16
рейтинг: 0
+ - −
цена:
8.98 белорусских рублей
Нет на складе
От издателя
В книге представлена самая полная, современная и надежная информация о внутренней структуре операционной системы с открытым исходным кодом - FreeBSD. Читатели, занимающиеся технической и коммерческой поддержкой ПО, смогут изучить возможности и ограничения системы, разработчики научатся эффективному и рациональному взаимодействию с FreeBSD, системные администраторы - сопровождению, настройке и конфигурированию, а системные программисты - расширению, улучшению и взаимодействию с системой. При объяснении ключевых проектных решений авторы подробно рассказывают о концепции, структуре данных и алгоритмах, использованных при разработке системы. В результате данная книга стала не только практическим справочником но и полным и всеобъемлющим руководством по архитектуре FreeBSD. Данная книга содержит: - подробное описание усовершенствований в системе виртуальной памяти; - описание поддержки симметричной многопроцессорной обработки; - новые разделы о потоках и их планировании, о размещении множества доменов; - сведения о сетевых и межпроцессных взаимодействиях.
Данная книга полезна широкому кругу читателей: от системных администраторов, использующих FreeBSD, до системных программистов.
Содержание
Предисловие
Об авторах
Часть I. Обзор
Глава 1. История и цели
…1.1. История UNIX
……Происхождение
……Исследовательский UNIX
……AT&T UNIX System III и System V
……Berkley Software Distributions
……UNIX в мире
…1.2. BSD и другие системы
……Влияние сообщества пользователей
…1.3. Переход BSD на открытый исходный код
……Networking Release 2
……Судебный процесс
……4.4BSD
……4.4BSD-Lite Release 2
…1.4. Модель разработки FreeBSD
…Ссылки
Глава 2. Обзор дизайна FreeBSD
…2.1. Средства FreeBSD и ядро
……Ядро
…2.2. Организация ядра
…2.3. Службы ядра
…2.4. Управление процессами
……Сигналы
……Группы процессов и сеансы
…2.5. Управление памятью
……Проектные решения по управлению памятью BSD
……Управление памятью внутри ядра
…2.6. Система ввода/вывода
……Дескрипторы и ввод/вывод
……Управление дескрипторами
……Устройства
……Механизм взаимодействия сокетов
……Разбросанный ввод/вывод
……Поддержка нескольких файловых систем
…2.7. Устройства
…2.8. Файловые системы
……Файловое хранилище
…2.9. Сетевая файловая система
…2.10. Терминалы
…2.11. Межпроцессное взаимодействие
…2.12. Сетевая коммуникация
…2.13. Реализация работы в сети
…2.14. Работа системы
…Упражнения
…Ссылки
Глава 3. Службы ядра
…3.1. Организация ядра
……Системные процессы
……Системный вход
……Организация времени выполнения
……Вход в ядро
……Возвращение из ядра
…3.2. Системные вызовы
……Обработка результатов
……Возвращение из системного вызова
…3.3. Исключения и прерывания
……Исключения
……Прерывания от устройств ввода/вывода
……Программные прерывания
…3.4. Прерывания от часов
……Статистика и планирование процессов
……Тайм-ауты
…3.5 Службы управления памятью
…3.6. Службы времени
……Реальное время
……Внешнее представление
……Корректировка времени
……Интервальное время
…3.7. Идентификаторы пользователя, группы и другие идентификаторы
……Идентификаторы хостов
……Группы процессов и сеансы
…3.8. Службы ресурсов
……Приоритеты процессов
……Использование ресурсов
……Ограничения ресурсов
…Квоты файловой системы
…3.9. Службы управления системой
……Учет использования ресурсов
…Упражнения
…Ссылки
Глава 4. Управление процессами
…4.1. Введение в управление процессами
……Многозадачное программирование
……Планирование
…4.2. Состояние процесса
……Структура процесса
……Структура потока
…4.3. Переключение контекста
……Состояние потока
……Переключение контекста на низком уровне
……Добровольное переключение контекста
……Синхронизация
м…Синхронизация с помощью мьютекса
…Блокировки менеджера блокировок
……Другие виды синхронизации
…4.4. Планирование потоков
……Планировщик 4.4BSD
……Планирование потоков с разделением времени
……Вычисления приоритета потоков
……Процедуры вычисления приоритета потока
……Очереди выполнения потоков и переключение контекста
……Планировщик ULE
…4.5. Создание процесса
…4.6. Завершение процесса
…4.7. Сигналы
……История сигналов
……Отправка сигнала
……Доставка сигнала
…4.8. Группы процессов и сеансы
……Сеансы
……Управление заданиями
…4.9. Тюрьмы
……Семантика тюрьмы
……Реализация тюрьмы
……Ограничения тюрьмы
…4.10. Отладка процессов
…Упражнения
…Ссылки
Глава 5. Управление памятью
…5.1. Терминология
……Процессы и память
……Страничная подкачка
……Алгоритмы замещения
……Модель рабочего набора
……Подкачка процессов
……Преимущества виртуальной памяти
……Аппаратные требования для виртуальной памяти
…5.2. Обзор системы виртуальной памяти FreeBSD
…5.3. Управление памятью ядра
……Отображения и подотображения ядра
……Выделение адресного пространства ядра
……Malloc ядра
……Зональный распределитель ядра
…5.4. Ресурсы процесса
……Виртуальное адресное пространство процесса FreeBSD
……Передача отказов страниц
……Отображение на объекты
……Объекты
……Объекты к страницам
…5.5. Разделяемая память
……Модель mmap
……Разделяемое отображение
……Индивидуальное отображение
……Сворачивание теневых цепочек
……Индивидуальные моментальные снимки
…5.6. Создание нового процесса
……Резервирование ресурсов ядра
……Дублирование адресного пространства пользователя
……Создание нового процесса без копирования
…5.7. Исполнение файла
…5.8. Манипулирование процесса своим адресным пространством
……Изменение размера процесса
……Отображение файлов
……Изменение защиты
…5.9. Завершение процесса
…5.10. Интерфейс пейджера
……Пейджер vnode
……Пейджер устройств
……Пейджер физической памяти
……Пейджер подкачки
…5.11. Страничная подкачка
……Дизайн аппаратного кеша
……Раскраска страниц (page coloring)
…5.12. Замещение страниц
……Параметры страничной подкачки
……Демон выгрузки страниц
……Подкачка процессов
……Процесс подкачки
…5.13. Переносимость
……Роль модуля pmap
……Инициализация и запуск
……Выделение и освобождение отображения
……Изменение для отображений атрибутов доступа и резервирования
……Управление информацией об использовании страницы
……Инициализация физических страниц
……Управление внутренними структурами данных
…Упражнения
…Ссылки
Часть III. Система ввода/вывода
Глава 6. Обзор системы ввода/вывода
…6.1. Отображение ввода/вывода от пользователя на устройство
…Драйверы устройств
…Очередь ввода/вывода
…Обработка прерываний
…6.2. Символьные устройства
……Непосредственные устройства и физический ввод/вывод
……Символьно-ориентированные устройства
……Точки входа для драйверов символьных устройств
…6.3. Дисковые устройства
……Точки входа для драйверов дисковых устройств
……Сортировка запросов дискового ввода/вывода
……Метки дисков
…6.4. Управление дескрипторами и службы дескрипторов
……Открытые элементы файлов
……Управление дескрипторами
……Асинхронный ввод/вывод
……Блокировка дескриптора файла
……Мультиплексирование ввода/вывода для дескрипторов
……Реализация select
……Перемещение данных внутри ядра
…6.5. Интерфейс виртуальной файловой системы
……Содержимое vnode
……Операции vnode
……Трансляция имен путей
……Службы экспортированных файловых систем
…6.6. Службы, независимые от файловой системы
……Кеш имен
……Управление буферами
……Реализация управления буферами
…6.7. Наращиваемые файловые системы
……Простые уровни файловых систем
……Файловая система union
……Другие файловые системы
…Упражнения
…Ссылки
Глава 7. Устройства
…7.1. Обзор устройств
……Архитектура ввода/вывода PC
……Структура подсистемы ввода/вывода запоминающих устройств большой емкости ……FreeBSD
……Именование устройств и доступ к ним
…7.2. Уровень GEOM
……Терминология и топологические правила
……Изменение топологии
……Функционирование
…..Топологическая гибкость
…7.3. Уровень CAM
……Подсистема SCSI
……Путь запроса ввода/вывода через подсистему CAM
…7.4. Уровень ATA
……Путь запроса ввода/вывода через подсистему ATA
…7.5. Конфигурирование устройств
……Идентификация устройств
……Структуры данных автоконфигурирования
…Упражнения
…Ссылки
Глава 8. Локальные файловые системы
…8.1. Управление иерархическими файловыми системами
…8.2. Структура inode
……Изменения формата inode
……Расширенные атрибуты
……Возможности новой файловой системы
……Флаги файлов
……Динамические inode
……Управление массивом inode
…8.3. Именование
……Каталоги
……Отыскание имен в каталогах
……Преобразование имен путей
……Ссылки
…8.4. Квоты
…8.5. Блокировки файлов
…8.6. Мягкие обновления
……Зависимости обновлений в файловой системе
……Структуры зависимостей
……Отслеживание зависимости битовой карты
……Отслеживание зависимости inode
……Отслеживание зависимостей прямых блоков
……Отслеживание зависимостей косвенного блока
……Отслеживание зависимостей для новых косвенных блоков
……Отслеживание зависимости нового элемента каталога
……Отслеживание зависимостей нового каталога
……Отслеживание зависимости удаления элемента каталога
……Усечение файлов
……Повторное использование inode файлов и каталогов
……Отслеживание зависимостей переименования элемента каталога
……Отслеживание зависимостей удаления файла
……Требования fsync для мягких обновлений
……Требования удаления файла для мягких обновлений
……Требования мягкого обновления для fsck
……Производительность мягких обновлений
…8.7. Моментальные снимки файловой системы
……Создание моментального снимка файловой системы
……Хранение моментальных снимков файловой системы
……Моментальные снимки больших файловых систем
……Производительность моментальных снимков
……Фоновая fsck
……Видимые для пользователя моментальные снимки
……Динамические дампы
…8.8. Локальное файловое хранилище
……Обзор файлового хранилища
……Пользовательский ввод/вывод в файле
…8.9. Быстрая файловая система Беркли
……Организация быстрой файловой системы Беркли
……Загрузочные блоки
……Оптимизация использования хранилища
……Политики размещения
……Механизмы выделения
……Кластеризация блоков
……Выделение, основанное на экстентах
…Упражнения
…Ссылки
Глава 9. Сетевая файловая система
…9.1. История и обзор
…9.2. Структура и работа NFS
……Протокол NFS
……Реализация NFS FreeBSD
……Клиент-серверные взаимодействия
……Транспортные проблемы RPC
……Проблемы безопасности
…9.3. Методики по повышению производительности
……Владения
……Восстановление после сбоев
…Упражнения
…Ссылки
Глава 10. Управление терминалами
…10.1. Режимы обработки терминалов
…10.2. Дисциплины линии связи
…10.3. Интерфейс пользователя
…10.4. Структура tty
…10.5. Группы процессов, сеансы и управление терминалом
…10.6. С-списки
…10.7. RS-232 и управление модемом
…10.8. Операции терминала
……Open
……Дисциплина выходной линии связи
……Вывод на терминал
……Ввод с терминала
……Процедура ioctl
……Переходы модема
……Закрытие терминальных устройств
…10.9. Другие дисциплины линии связи
…Упражнения
…Ссылки
Часть IV. Межпроцессное взаимодействие
Глава 11. Межпроцессное взаимодействие
…11.1. Модель межпроцессного взаимодействия
……Использование сокетов
…11.2. Структура реализации и обзор
…11.3. Управление памятью
……Mbuf
……Алгоритмы управления хранилищем
……Вспомогательные процедуры mbuf
…11.4. Структуры данных
……Коммуникационные домены
……Сокеты
……Адреса сокетов
……Блокировки
…11.5. Установление соединения
…11.6. Обмен данными
……Передача данных
……Получение данных
…11.7. Отключение сокета
…11.8. Локальное межпроцессное взаимодействие
……Семафоры
……Очереди сообщений
……Разделяемая память
…Упражнения
…Ссылки
Глава 12. Сетевая коммуникация
…12.1. Внутренняя структура
……Поток данных
……Коммуникационные протоколы
……Сетевые интерфейсы
…12.2. Интерфейс между сокетами и протоколами
……Процедуры пользовательских запросов протокола
……Процедура управления выводом протокола
…12.3. Интерфейс протокол-протокол
……pr_output
……pr_input
……pr_ctlinput
…12.4. Интерфейс между протоколом и сетевым интерфейсом
…Передача пакета
…Прием пакетов
…12.5. Маршрутизация
……Таблицы маршрутизации ядра
……Поиск маршрутизации
……Перенаправления маршрутизации
……Интерфейс таблицы маршрутизации
……Политики маршрутизации уровня пользователя
……Интерфейс маршрутизации уровня пользователя: сокет маршрутизации
…12.6. Буферирование и управление перегрузкой
……Политики буферирования протокола
……Ограничение очереди
…12.7. Непосредственные сокеты
……Управляющие блоки
……Обработка ввода
……Обработка вывода
…12.8. Дополнительные темы сетевой подсистемы
……Внеполосные данные
……Протокол разрешения адресов
…Упражнения
…Ссылки
Глава 13. Сетевые протоколы
…13.1. Сетевые протоколы IPv4
……Адреса IPv4
……Широковещательные адреса
……Многоадресная рассылка Интернета
……Порты и связи Интернета
……Управляющие блоки протоколов
…13.2. Протокол пользовательских дейтаграмм (UDP)
……Инициализация
……Вывод
……Ввод
……Управляющие операции
…13.3. Протокол Интернета (IP)
……Вывод
……Ввод
……Пересылка
…13.4. Протокол управления передачей (TCP)
……Состояния TCP-соединения
……Переменные, описывающие последовательность
…13.5. Алгоритмы TCP
……Таймеры
……Оценка времени обращения
……Установление соединения
……Кеш SYN
……Отключение соединения
…13.6. Обработка ввода TCP
…13.7. Обработка вывода TCP
……Отправка данных
……Избегание синдрома незначительного окна
……Избежание небольших пакетов
……Отложенные подтверждения и обновления окон
……Состояние повторной передачи
……Медленный старт
……Обработка сдерживания источника
……Задание размеров буфера и окна
……Избежание перегрузки с помощью медленного старта
……Быстрая повторная передача
…13.8. Протокол управляющих сообщений Интернета (ICMP)
…13.9. IPv6
……Адреса IPv6
……Форматы пакета IPv6
……Изменения API сокетов
……Автоконфигурирование
…13.10. Безопасность
……Обзор IPSec
……Протоколы безопасности
……Управление ключами
……Реализация IPSec
……Криптографическая подсистема
…Упражнения
…Ссылки
Часть V. Работа системы
Глава 14. Запуск и выключение
…14.1. Обзор
…14.2. Начальная загрузка
……Программа boot
…14.3. Инициализация ядра
……Запуск на языке ассемблера
…14.4. Инициализация модуля ядра
……Базовые службы
……Инициализация потоков ядра
……Инициализация модулей устройств
……Загружаемые модули ядра
……Запуск межпроцессного взаимодействия
……Запуск потоков ядра
…14.5. Инициализация уровня пользователя
……/sbin/init
……Сценарии запуска системы
……/usr/libexec/getty
……/usr/bin/login
…14.6. Работа системы
……Конфигурация ядра
……Выключение системы и автоматическая перезагрузка
……Отладка системы
……Передача информации ядру и от ядра
…Упражнения
…Ссылки
Глоссарий
Предметный указатель
Читать дальше…
Свернуть
Лучшие книги этого раздела
Сортировка: по рейтингу, по дате