Углубить архитектуру ядра Linux
Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.
- Информация о товаре
- Фотографии
Глава 1 Введение и обзор 1
1.1 Задача ядра 2
1.2 Стратегия реализации 2
1.3 Компонент ядра 3 3
1.3.1 Процесс, переключатель процесса, планирование 3
1.3.2 Unix Process 4
1.3.3 Адресное пространство и привилегии Уровень 6
1.3.4 Страница Таблица 9
1.3.5 Распределение физической памяти 11
1.3.6 время 13
1.3.7 Системный звонок 13
1.3.8 Драйвер оборудования, блочное оборудование и оборудование для персонажей 14
1.3.9 сеть 14
1.3.10 Файловая система 14
1.3.11 Модуль и горячая вставка 15
1.3.12 Кэш 16
1.3.13 Ссылки на лечение 16
1.3.14 Управление объектами и счетом ссылок 17
1.3.15 Тип данных 20
1.3.16 Ограничение этой книги 22
1.4 Почему ядро специально 23
1,5 Примечание 23
1.6 Резюме 27
Глава 2 Управление процессами и свалтинг 28
2.1 Приоритет процесса 28
2.2 Жизненный цикл процесса 30
2.3 Процесс указывает 32
2.3.1 Тип процесса 37
2.3.2 Пространство именования 37
2.3.3 идентификационный номер процесса 43
2.3.4 Отношения процесса 49
2.4 Системные вызовы, связанные с управлением процессами 50 50
2.4.1. КОПИЦИЯ 50
2.4.2 Нить ядра 62
2.4.3 Начните новую программу 63
2.4.4 Процесс выхода 66
2.5 Реализация планировщика 67
2.5.1 Обзор 67
2.5.2 Структура данных 69
2.5.3 Приоритет лечения 74
2.5.4 Основной планировщик 79
2.6 Полное справедливое расписание 84
2.6.1 Структура данных 85
2.6.2 Операция CFS 85
2.6.3 Операция очереди 89
2.6.4 Выберите следующий процесс 91
2.6.5 Обработка циклического планировщика 92
2.6.6 Проснитесь и захватите 93
2.6.7 Лечение нового процесса 93
2.7 Реальное планирование класса 94
2.7.1 Nature 94
2.7.2 Структура данных 95
2.7.3 Операция планировщика 96
2.8 Улучшение планировщика 97
2.8.1 SMP планирование 97
2.8.2 Рейтинговые домен и контрольная группа 101
2.8.3 Gravity Sakize и Low Dolembling, связанная с работой 102
2.9 Резюме 106
Глава 3 Управление памятью 107
3.1 Обзор 107
3.2 (n) Организация памяти в UMA Model 109
3.2.1 Обзор 109
3.2.2 Структура данных 111
3.3 Страница Таблица 123
3.3.1 Структура данных 124
3.3.2 Создание и операция страницы 129
3.4 Инициализированное управление памятью 129
3.4.1 Установить структуру данных 130
3.4.2 Настройки для архитектуры 135
3.4.3 Управление памятью в процессе запуска 153
3.5 Управление физической памятью 159
3.5.1 Структура партнерской системы 159
3.5.2 Избегайте фрагментов 161
3.5.3 Инициализированная домен памяти и структура данных узла 167
3.5.4 API API 172
3.5.5. Страница 177
3.5.6 Страница 192 выпуска 192
3.5.7 Распределение утилизации в ядре 195
3.5.8 Картирование ядра 201
3.6 Distributor 205
3.6.1 Эксклюзивное распределительное устройство 206
3.6.2 Управление памятью в ядре 207
3.6.3 Принципы распределения плиты 209
3.6.4 Реализация 212
3,6,5 Гм Кэш 226
3.7 Процессор с высоким уровнем кеша и контроль TLB 228
3.8 Резюме 230
Глава 4 Процесс виртуальной памяти 231
4.1 Введение 231
4.2 Процесс виртуального адреса 231
4.2.1 Макет процесса адресного пространства 232
4.2.2 Установите макет 234
4.3 Принципы картирования памяти 237
4.4 Структура данных 238
4.4.1 Дерево и связанный список 238
4.4.2 представляет область виртуальной памяти 239
4.4.3 предпочитаю найти деревья 241
4.5 Работа площади 244
4.5.1 Реактор виртуальный адрес в область 245
4.5.2 Регион объединился 246
4.5.3 Вставка площадь 247
4.5.4 Зона создания 248
4.6 Адресное пространство 250
4.7 Картирование памяти 251
4.7.1 Создание отображения 251
4.7.2 Удалить картирование 253
4.7.3 Не -линейное картирование 254
4.8 Обратное отображение 257
4.8.1 Структура данных 258
4.8.2 Установите обратное картирование 259
4.8.3 Используйте обратное отображение 259
4.9 Управление стеком 261
4.10 Dreatment аномальных страниц 263
4.11 Правильная коррекция 268 с ненормальными страницами пространства пользователя 268
4.11.1. Выделите/персонализирован 269 по требованию
4.11.2 Анонимная страница 271
4.11.3 Скопируйте 271 при написании
4.11.4 Получить нелинейное отображение 272
4.12 Страница дефицита ядра.
4.13 Копировать данные между ядром и пространством пользователя 274
4.14 Резюме 276
Глава 5 Блокировка и процесс связи 277
5.1 Механизм управления 277
5.1.1 Конкурентное состояние 277
5.1.2 Критическая область 278
5.2 Механизм блокировки ядра 279
5.2.1 Атомная работа целого числа 280
5.2.2 Self -Spin Lock 282
5.2.3 Симптом 283
5.2.4 Механизм RCU 284
5.2.5 Барьер памяти и оптимизации 286
5.2.6 Читатель/писатель Lock 287
5.2.7 Большой замок ядра 288
5.2.8 Взаимное исключение 288
5.2.9 Применяется счетчик на CPU 290
5.2.10 Конкурс и тонкий замок 291
5.3 System V Процесс Межпроцесс Коммуникация 292
5.3.1 Система V Механизм 292
5.3.2 Симптом 292
5.3.3 очередь сообщения 300
5.3.4 Обмен памятью 303
5.4 Другой механизм IPC 303
5.4.1 Сигнал 303
5.4.2 Трубопроводы и розетки 310
5.5 Резюме 311
Глава 6 Драйвер устройства 312
6.1 Архитектура ввода/вывода 312
6.2 Access Equipment 316
6.2.1 Файл устройства 316
6.2.2 Оборудование для персонажей, блочное оборудование и другое оборудование 317
6.2.3 Используйте IOCTL для адресации устройства 319
6.2.4 В основном, а номер устройства представляет 320
6.2.5 Регистрация 321
6.3 Связано с файловой системой 324
6.3.1 Участники файла оборудования в INODE 324
6.3.2 Стандартная операция файла 325
6.3.3 Стандартная работа для устройства символов 325
6.3.4 Стандартная работа для блочного оборудования 325
6.4 Операция устройства символов 326
6.4.1 Указывает устройство персонажа 326
6.4.2 Откройте файл устройства 326
6.4.3 Операция по чтению и написанию 328
6.5 Операция устройства 329
6.5.1 Разработка оборудования 330
6.5.2 Структура данных 331
6.5.3 Добавить диск и раздел 338 в систему 338
6.5.4 Откройте файл устройства блока 339
6.5.5 Структура запроса 341
6.5.6 BIO 343
6.5.7 Отправить запрос 345
6.5.8 Планирование ввода/вывода 350
6.5.9 Реализация IOCTL 352
6.6 Распределение ресурсов 353
6.6.1 Управление ресурсами 353
6.6.2 Память ввода/вывода 355
6.6.3 Порт ввода/вывода 357
6.7 Автобусная система 358
6.7.1 Общая модель драйвера 358
6.7.2 PCI Bus 363
6.7.3 USB 370
6.8 Резюме 376
Глава 7 Модуль 377
7.1 Обзор 377
7.2 Используйте модуль 378
7.2.1 Добавить и удалить 378
7.2.2 Зависимые отношения 380
7.2.3 Информация о модуле запроса 381
7.2.4 Автоматическая загрузка 382
7.3 Вставьте и удаляйте модуль 384
7.3.1 Представление модуля 385
7.3.2 Зависимые отношения и ссылка 389
7.3.3 Двоичная структура модуля 391
7.3.4 Модуль вставки 396
7.3.5 Снимите модуль 403
7.4 Автоматизация и вставка тепла 404
7.4.1 Автоматическая загрузка 404 реализована KMOD
7.4.2 Hot Plug Plug 405
7.5 Управление версией 408
7.5.1 Проверка и метод 408
7.5.2 Функция управления версией 411
7.6 Резюме 412
Глава 8 Виртуальная файловая система 413
8.1 Тип файловой системы 413
8.2 Общая модель файла 414
8.2.1 inode 415
8.2.2 Ссылка 416
8.2.3 Интерфейс программирования 416
8.2.4 Файл как общий интерфейс 417
8.3 Структура VFS 417
8.3.1 Структурный обзор 418
8.3.2 inode 419
8.3.3 Информация, специфичная в процессе 423
8.3.4 Операция файла 427
8.3.5 Каталог Кэш 431
8.4 Обработка объекта VFS 436
8.4.1 Операция файловой системы 436
8.4.2 Операция файла 450
8.5 Стандартная функция 456
8.5.1 Общий экзамен для чтения 457
8.5.2 Провальный механизм 459
8.5.3 Проверка разрешений 461
8.6 Резюме 463
Глава 9 EXT File System Family 464
9.1 Введение 464
9.2 ext2 файловая система 465
9.2.1 Физическая структура 465
9.2.2 Структура данных 470
9.2.3 Создание файловой системы 484
9.2.4 Операция файловой системы 485
9.3 ext3 Файловая система 507
9.3.1 Концепция 508
9.3.2 Структура данных 509
9.4 Резюме 511
Глава 10 Файловая система 512 без постоянного хранилища
10.1 Proc File System 512
10.1.1 /Proc Content 513
10.1.2 Структура данных 519
10.1.3 Инициализация 522
10.1.4 Загрузите файловую систему Proc 523
10.1.5 Управление/PROC.
10.1.6 Читать и записать информацию 528
10.1.7 Информация, связанная с процессом 530
10.1.8 Механизм управления системой 535
10.2 Простая файловая система 542
10.2.1 Файл заказа 542
10.2.2 Напишите файловую систему с Libfs 546
10.2.3 Файл -система отладки 547
10.2.4 Pseudo -File System 549
10.3 sysfs 549
10.3.1 Обзор 550
10.3.2 Структура данных 550
10.3.3 Загрузка файловой системы 554
10.3.4 Операция файла и каталога 556
10.3.5 Добавить контент в SYSFS 562
10.4 Резюме 564
Глава 11 Свойства расширения и контроль доступа Таблица 565
11.1 Атрибут расширения 565
11.1.1 Интерфейс к виртуальной файловой системе 566
11.1.2 Реализация в EXT3 570
11.1.3 Реализация в EXT2 576
11.2 ТАБЛИЦА УПРАВЛЕНИЯ 577
11.2.1 Реализация GM 577
11.2.2 Реализация в EXT3 580
11.2.3 Реализация в EXT2 585
11.3 Резюме 585
Глава 12 Сеть 586
12.1 взаимосвязанный компьютер 586
12.2 ISO/OSI и TCP/IP Спорная модель 587
12.3 Связь через розетку 589
12.3.1 Создать набор слов 590
12.3.2 Используйте POT 591 591
12.3.3 Набор газеты данных 595
12.4 Слоистые модели, реализованные сетью 595
12.5 Пространство именования сети 597
12.6 Пакеты Caps 599
12.6.1 Используйте данные Управления Set Word Caps 600
12.6.2 Данные о пакете управления 602
12.7 Сетевой уровень доступа 603
12.7.1 Экспресс сетевого оборудования 603
12.7.2 Получить пакет 608
12.7.3 Отправить пакет 614
12.8 Сетевой уровень 615
12.8.1 IPv4 615
12.8.2 Приема пакета 617
12.8.3 Доставка на местный транспортный слой 618
12.8.4
12.8.5 Отправить пакет 620
12.8.6 netfilter 623
12.8.7 IPv6 627
12.9 Транспортный слой 628
12.9.1 UDP 628
12.9.2 TCP 630
12.10 Приложений 640
12.10.1 Структура данных сокета 640
12.10.2 Слова пакета и файл 643
12.10.3 SocketCall System Calls 644
12.10.4 Создание создания набора 645
12.10.5 Получить данные 646
12.10.6 Отправить данные 647
12.11 СЕВЕТА СОЕДИНЕНИЯ В ЯРНЕЛЕ 647
12.11.1 Функция связи 648
12.11.2 Механизм сетевой связи 649
12.12 Резюме 654
Глава 13 Система звонка 655
13.1 Основы системного программирования 655
13.1.1 Система отслеживания вызов 656
13.1.2 Стандарты поддержали 658
13.1.3 Перезапустить системную звонок 659
13.2 Доступный системный звонок 660
13.3 Реализация системного вызова 663
13.3.1 Структура системного вызова 664
13.3.2 Access User Space 670
13.3.3 Система отслеживания 670
13.4 Резюме 676
Глава 14 Ядра. 678
14.1 прерывание 678
14.1.1 Тип прерывания 678
14.1.2 Аппаратный IRQ 680
14.1.3 Лечение прерывание 680
14.1.4 Структура данных 682
14.1.5 Обработка тока прерывания 688
14.1.6 Инициализировать и выделить IRQ 692
14.1.7 Обработка IRQ 693
14.2 Мягкое прерывание 701
14.2.1 Открытое лечение мягкого прерывания 702
14.2.2 Процесс Guardian с мягким прерыванием 703
14.3 tasklet 704
14.3.1 Создание Tasklet 704
14.3.2 Зарегистрированная задача 704
14.3.3 выполнить Tasklet 705
14.4 В ожидании очереди и завершения 706
14.4.1 Ожидание очередь 706
14.4.2 Завершение 710
14.4.3 Рабочая очередь 711
14.5 Резюме 713
Глава 15 Управление временем 714
15.1 Обзор 714
15.1.1 Тип таймера 714
15.1.2 Вариант конфигурации 716
15.2 Реализация таймера 717 с низким разрешением 717
15.2.1 Активация и статистика процесса таймера 717
15.2.2 Лечение Jiffies 719
15.2.3 Структура данных 720
15.2.4 Динамический таймер 721
15.3 Общая система времени 725
15.3.1 Обзор 726
15.3.2 Вариант конфигурации 727
15.3.3 Время представляет 727
15.3.4 Объект для управления временем 728
15.4 Таймер высокого разрешения 736
15.4.1 Структура данных 736
15.4.2 Установите таймер 740
15.4.3 Реализация 740
15.4.4 Моделирование цикла такта 745
15.4.5 Переключить на таймер 746 с высоким разрешением 746
15.5 Динамические часы 747
15.5.1 Структура данных 747
15.5.2 Динамические часы в системе 749 с низким разрешением 749
15.5.3 Динамические часы в системе 751 с высоким разрешением 751
15.5.4.
15.6 Режим трансляции 755
15.7 Реализация системы, связанной с таймером 756
15.7.1 Time Benchmark 756
15.7.2 Системная система тревоги и setitimer 757
15.7.3 Получите текущее время 758
15.8 Время процесса управления 759
15.9 Резюме 760
Глава 16 Страница Cacus и Block Cache 761
16.1 Страница структуры кеша 762
16.1.1 Управление и поиск кеша страница 762
16.1.2 Пересмотренные модифицированные данные 763
16.2 Структура кеша 764
16.3 Адресное пространство 766
16.3.1 Структура данных 766
16.3.2 Страница Дерево 768
16.3.3 Операция по адресу адреса 771
16.4 Страница Cchecre 774
16.4.1. Страница 774
16.4.2 Найти страницу 775
16.4.3 В ожидании страницы 776
16.4.4 Работа всей страницы 777
16.4.5 Page Cache Pre -read 778
16.5 Реализация Cache 781
16.5.1 Структура данных 782
16.5.2 Операция 783
16.5.3 Страница взаимодействия между кэшем и блок -кэшем 783
16.5.4 Независимый буфер 787
16.6 Резюме 792
Глава 17 Синхронные данные 793
17.1 Обзор 793
17.2 Pdflush Механизм 795
17.3 Начните новую ветку 796
17.4 Инициализация потока 796
17.5 выполнение фактической работы 798
17.6 Циклическая кисть 798
17.7 Связанная структура данных 799
17.7.1 Статус страницы 799
17.7.2 Return Control 800
17.7.3 Регулируемые параметры 802
17.8 Центральный контроль 802
17.9 Super Block Synchronization 804
17.10 Синхронизация INODE 804
17.10.1 Прошел более 805
17.10.2 Изучите Super Block Inode 805
17.10.3 вернуть один inode 807
17.11 Стоки 809
17.11.1 Структура данных 809
17.11.2 Порог 810
17.11.3 Настройки и очистки 811
17.11.4 В ожидании 812 в очереди заторов 812
17.12 Обязательное возвращение 813
17,13 коленного режима 814
17.14 Системный вызов для синхронного управления 815
17.15 Полная синхронизация 815
17.15.1 Синхронный 816
17.15.2 Синхронизация одного файла 818
17.15.3 Синхронизация картирования памяти 819
17.16 Резюме 820
Глава 18 Утилизация страниц и обмен страницей 821
18.1 Обзор 821
18.1.1 можно заменить на страницы 822
18.1.2 страницы шишка 822
18.1.3 Алгоритм обмена страницами 823
18.2 Утилизация страниц и обмен страницами в ядре Linux 824
18.2.1 Организация в области обмена 824
18.2.2 Проверьте использование памяти 825
18.2.3 Выберите страницы 825 для замены
18.2.4 Лечение аномальных аномалий страницы 826
18.2.5 уменьшить кеш ядра 826
18.3 Обмен управления 826
18.3.1 Структура данных 827
18.3.2 Создание зоны обмена 830
18.3.3 Зона активного обмена 831
18.4 Exchange Cache 834
18.4.1. Замените страницу 835
18.4.2 Структура обмена кеша 838
18.4.3 Добавить новую страницу 839
18.4.4 Поиск страницы 843
18.5 Данные обратно в 844
18,6 страницы переработка 845
18.6.1 Обзор 845
18.6.2 Структура данных 847
18.6.3 Определить активность страницы 850
18.6.4 Домен по контракту памяти 853
18.6.5 Изоляция LRU Page и централизованная переработка 856
859
18.6.7 Страница переработки страницы 862
18.7 Tearch Token 867
18.8 Обработка страницы обмена аномалия 870
18.8.1 Изменение на страницу 870
18.8.2 Читать данные 872
18.8.3 Exchange Pre -read 873
18.9 Инициирование переработки памяти 873
18.9.1 Используйте KSWAPD для переработки циклической памяти 873
18.9.2. Измените страницу, когда серьезной памяти недостаточно 877
18.10 Сокращение другого кеша 878
18.10.1 Структура данных 878
18.10.2 Зарегистрируйте и удалите устройства Shrink 879
18.10.3 Кэш сокращения 879
18.11 Резюме 880
Глава 19 Аудит 882
19.1 Обзор 882
19.2 Правила аудита 883
19.3 Реализация 884
19.3.1 Структура данных 884
19.3.2 Инициализация 889
19.3.3 Запрос на лечение 890
19.3.4 Событие 891
19.3.5 Системный вызов аудит 893
19.4 Резюме 898
Приложение A знание, связанное с архитектурой 899
A.1 Обзор 899
A.2 Тип данных 900
A. 3 выравнивание 900
A.4 Страница памяти 900
A.5 Системный звонок 901
A.6 обработка строки 901
A.7 Thread представляет 902
А.8 -бит -эксплуатация и байт -заказ 914
A.9 Страница Таблица 916
A.10 Разное 916
А.11 Резюме 918
Приложение B использует исходный код 919
B.1 Организация исходного кода ядра 919
B.2 Конфигурация 920 с KConfig
B.3 Compile ядра 930 с Kbuild
B.4 Полезные инструменты 935
B.5 Отладка и анализ ядра 942
B.6 Пользовательский режим Linux 945
B.7 Резюме 946
Примечание приложения C о языке C 947
C.1 GNU C Компилятор Как работать 947
C.2 Стандартная структура данных и технология ядра 967
C.3 Резюме 984
Приложение D Система запускается 985
D.1 IA-32 Настройки, связанные с архитектурой 985
D.2 инициализация высокого уровня 986
D.3 Резюме 998
Приложение E -ELF Бинарная система формата 999
E.1 Mayout and Structure 999
E.2 Структура данных 1006 в ядрах 1006
E.3 Маленькая Экролл 1018
Приложение F Процесс разработки ядра 1019
F.1 Введение 1019
F.2 Дерево кода и структуры развития ядра 1019
F.3 Структура патча 1024
F.4 Linux и академические круги 1030
F.5 Резюме 1035
Ссылки 1036
В этой книге обсуждается концепция, структуру и реализацию ядра Linux.Основное содержимое включает в себя многоотражающее, планирование и управление процессами, управление физической памятью и взаимодействие между ядром и связанным с ним оборудованием. Атрибуты файловой системы EXT и метод реализации таблиц управления доступом, реализация сети в ядре, реализация системных вызовов, обработка функций, связанных с ядром, соответствующий механизм переработки страниц и обмен страницами, а также реализация аудит.Кроме того, эта книга использует ключевую часть исходного кода ядра, чтобы объяснить, чтобы помочь читателям освоить важные знания знаний, чтобы полностью отобразить очарование системы Linux в использовании.Эта книга подходит для чтения энтузиастов ядра Linux.