Запуск ядра Linux (2 -е издание) Том 1: Инфраструктура

Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.
Описание товара
- Информация о товаре
- Фотографии

Основываясь на архитектуре Linux 5.0 и ARM64/X86_64, большое количество опыта проекта пересматривается, проанализируется и суммируется.
GCC на основе“O0”Экспериментальная платформа Linux 5.0, составленная с помощью опционного анализа исходного кода ядра Linux с помощью большого количества практических случаев и высокочастотных вопросов собеседования.
Анализ случаев на основе исходного кода ядра Linux 5.0.
Был добавлен новый контент на архитектуре ARM64 и других аспектах.
Охватывание практических случаев и высоко рабочее.
По сравнению с ядром Linux 4.0 в ядро Linux 5.0 было добавлено много новых функций, и реализация ядра сильно изменилась.Эта книга направлена на то, чтобы ввести внедрение основных модулей в ядре Linux.Эта книга подходит для разработчиков системы Linux, разработчиков встроенных систем и разработчиков Android для чтения.

| Название продукта: | Запуск ядра Linux (2 -е издание) Том 1: Инфраструктура | формат: | 128 |
| Автор: | Дядя | Цены: | 139.00 |
| Номер ISBN: | 9787115549990 | Время публикации: | 2021-01-01 |
| Издательство: | Люди после прессы | Время печати: | 2020-12-01 |
| Издание: | 2 | Время печати: | 1 |
Оглавление
Глава 1 Архитектура процессора 1
1.1 Введение в архитектуру процессора 3
1.1.1: упрощенный набор инструкций и сложный набор инструкций 3
1.1.2 Большой/маленький эндийский эндиан 3
1.1.3 Инструкции по чтению и записи
Весь процесс исполнения 4
1.1.4 Причина возникновения барьеров памяти 8
1.1.5 Как работает кэш 10
1.1.6 Метод картирования кэша 11
1.1.7
1.1.8 Разница между PIPT и VIVT 14
1.1.9 Процесс создания и запроса таблиц страниц 17
1.1.10 TLB 21
1.1.11 Mesi Protocol 21
1.1.12 Кэш Псевдо обмен 26
1.1.13 Кэширован в ядре Linux
Приложение 27
1.1.14 Большая/маленькая основная архитектура Arm 28
1.1.15 Консистенция и последовательность кэша
Модель памяти 30
1.1.16 Стратегия ответа на кеш и
Стратегия замены 30
1.1.17 Numa 31
1.1.18 Конструкция процессора Arm 32
1.1.19 Прогресс 33
1.2 ARM64 Архитектура 34
1.2.1 ARMV8-A Architecture 34
1.2.2 Общие процессоры с использованием архитектуры ARMV8
Ядро 35
1.2.3 Основные концепции в архитектуре ARMV8 35
1.2.4 Статус выполнения процессора ARMV8 36
1.2.5 Ширина данных, поддерживаемая ARMV8 36
1.2.6 Невыполненный доступ 37
1.3 ARMV8 Регистр 37
1.3.1 Общий регистр 37
1.3.2 Статус процессора 38
1.3.3 Специальный регистр 39
1.3.4 Системный регистр 41
1.4 Набор инструкций A64 42
1.4.1 Обычно используемые инструкции по арифметической и передаче 42
1.4.2 Инструкции по умножению и делению 43
1.4.3 Команда операции переключения 45
1.4.4.
1.4.5 Условная операция 47
1.4.6 Инструкция по загрузке памяти 48
1.4.7 Инструкции по загрузке и хранению с несколькими байтами 50
1.4.8 Загрузка и хранение на уровне не привилегированного доступа
Инструкции 50
1.4.9 Введение в инструкцию барьеры памяти 51
1.4.10 Эксклюзивная инструкция доступа к памяти 51
1.4.11 Инструкции по прыжкам и сравнению 52
1.4.12 Инструкция по обработке исключений 53
1.4.13
1,5 GCC встроенная сборка 55
1.6 Стандарт вызова функции и макет стека 57
1.7 ARM64 Обработка исключений 59
1.7.1 Тип исключения 59
1.7.2 Синхронные исключения и асинхронные исключения 60
1.7.3 Обработка после исключения происходит 60
Глава 2 Реализация ARM64 в ядре Linux 62
2.1 ARM64 Управление памятью 63
2.1.1 Страница Таблица 63
2.1.2 Страница таблицы картирование 64
2.1.3 Дескриптор записи таблицы страницы 65
2.1.4 Таблица страницы в ядре Linux 68
2.1.5 ARM64 Распределение памяти ядра 74
2.1.6 Анализ случая: картирование таблицы страниц ARM64
Процесс 78
2.2 Управление кэшем 84
2.3 Management 87
2.4 Атрибуты памяти 90
2.4.1 Атрибуты памяти 91
2.4.2 Атрибуты обмена кешами 94
2.5 Барьер памяти 95
2.5.1 Инструкции по барьеру памяти 95
2.5.2. Примитивы и хранение.
Выпустите барьер примитив 96
2.6 Анализ кода кода ядра Linux 97
2.6.1 Основное знание файлов ссылок 97
2.6.2 vmlinux.lds.s Анализ файлов 99
2.6.3 Запуск код сборки 102
2.6.4 Создание карт идентификации и изображений ядра
Картирование 106
2.6.5 __CPU_SETUP Анализ функций 114
2.6.6 __primary_switch Анализ функций 117
2.7 Часто задаваемые вопросы о таблицах страниц 120
2.7.1 о следующем уровне таблицы таблицы базового адреса 121
2.7.2 Страница прохождения программного обеспечения Таблица 121
Глава 3 Подготовительные знания по управлению памятью 124
3.1 Управление памятью с точки зрения оборудования 126
3.1.1 Управление памятью“древние времена”126
3.1.2 Механизм сегментации 127
3.1.3 Механизм страниц 128
3.1.4 От виртуального адреса до физического адреса
Преобразование 128
3.2 Просмотр управления памятью с точки зрения программного обеспечения 129
3.2.1 С точки зрения пользователей системы Linux System
Управление памятью 129
3.2.2 от разработчиков приложений Linux
Перспектива управления памятью 130
3.2.3 С точки зрения распределения памяти
Управление памятью 131
3.2.4 Просмотр управления памятью с точки зрения процесса 131
3.2.5 С точки зрения ядра Linux
Управление памятью 135
3.3 Подготовительное знание управления физической памятью 136
3.3.1 UMA и NUMA Architecture 136
3.3.2 Структура данных управления памятью 138
3.3.3 Размер памяти 140
3.3.4. Картирование физической памяти 141
3.3.5 инициализация зоны 143
3.3.6 Space Division 145
3.3.7 Инициализация физической памяти 146
Глава 4 Физическая память и виртуальная память 152
4.1 Быстрый путь к распределению страниц 153
4.1.1 Функция интерфейса для выделения физических страниц 154
4.1.2 Назначьте маску 155
4.1.3 Функция Alloc_pages () 158
4.1.4 get_page_from_freelist () Функция 162
4.1.5 Zone_watermark_fast () Функция 164
4.1.6 rmqueue () функция 165
4.1.7. Страница 167
4.1.8 Резюме 170
4.2 Плата. 170
4.2.1 Фон генерации дистрибьютора плиты 170
4.2.2 Создать дескриптор плиты 173
4.2.3 Платеж памяти распределителя плиты 176
4.2.4 Настройка дескриптора плиты 178
4.2.5 Назначить объекты SLAB 180
4.2.6. Объект кеша выпуска 183
4.2.7 Интерфейс между распределителем плиты и партнерской системой
Функция 185
4.2.8.
4.2.9 Kmalloc () 188
4.2.10 Резюме 189
4.3 Vmalloc () 190
4.4 Процесс обработки адреса управления виртуальной памятью 194
4.4.1. Адресное пространство процесса 194
4.4.2 MM_STRUCT Структура данных 195
4.4.3 Структура данных VMA 197
......
Эта книга основана на исходном коде ядра Linux 5.0, чтобы сообщить о реализации основных модулей в ядре Linux.Эта книга имеет в общей сложности 9 глав, а ее основное содержание включают архитектуру процессора, реализацию ARM64 в ядре Linux, предварительные знания о управлении памятью, физическую память и виртуальную память, тему управления памятью, практические случаи управления памятью, основные концепции управления процессами, планирование и балансирование нагрузки управления процессами, отладки и анализ случаев управления процессами.
Эта книга подходит для разработчиков систем Linux, разработчиков встроенных систем и разработчиков Android, а также может быть прочитана учителями и учениками специальностей, связанных с компьютером.
......
Дядя Бен, энтузиаст ядра Linux, опубликовал «Запуск ядра Linux» и «Запуск ядра Linux».Создал сообщество Run Bar Linux, чтобы проповедовать большинству энтузиастов Linux.

