8 (905) 200-03-37 Владивосток
с 09:00 до 19:00
CHN - 1.14 руб. Сайт - 17.98 руб.

Проектирование и реализация ядра Linux (оригинальная книга 3 -е издание)

Цена: 801руб.    (¥44.51)
Артикул: 520372358826

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

Этот товар на Таобао Описание товара
Продавец:新华在线图书专营店
Адрес:Сычуань
Рейтинг:
Всего отзывов:0
Положительных:0
Добавить в корзину
Другие товары этого продавца
¥84.81 525руб.
¥2294 118руб.
¥21378руб.
¥ 104 21378руб.

1320437395

Проектирование и реализация ядра Linux (оригинальная книга 3)

делать  Робертлове (Робертлов) переводится Чэнь Лиджун и другие
Конечно   цена:69
вне&Ensp; издание&Encp; Общество:Machinery Industry Press
Дата публикации:01 июня 2011 г.
Страница &Nbsp; номер:352
Пакет   кадр:Оплата в мягкой обложке
ISBN:9787111338291
1320437395
Оглавление
Переводчик
Предисловие
Предисловие
об авторе
глава  
1.1   Unix History 1
1.2   Найти Linus Footprint: Введение в Linux 2
1.3  
1.4  
1.5  
1.6  
1.7   Резюме 8

Глава 2  
2.1  
2.1.1   используйте git10
2.1.1  
2.1.3   патч 11
2.2  
2.3  
2.3.1  
2.3.2   уменьшить скомпилированный спам 14
2.3.3   Полученное несколько компиляций домашнее задание 14
2.3.4  
2.4  
2.4.1  
2.4.2  GNU C16
2.4.3  
2.4.4  
2.4.5   маленький и фиксированный стек 18
2.4.6   синхронизация и одновременная 18
2.4.7   важность пересадки 19
2.5   Резюме 19

Глава 3   Управление процессами 20
3.1   процесс 20
3.2   Описание процесса и структура задачи 21
3.2.1   дескриптор процесса распределения 22
3.2.2   хранение дескриптора процесса 23
3.2.3   Статус процесса 23
3.2.4   Установите текущее состояние процесса 25
3.2.5  
3.2.6   процесс семейного дерева 25
3.3 &Nbsp; процесс создает 26
3.3.1   копия 27 при написании
3.3.2  fork()27
3.3.3  vfork()28
3.4   реализация потоков в Linux 28
3.4.1   создать поток 29
3.4.2  
3.5   конец процесса 31
3.5.1   удалить дескриптор процесса 32
3.5.2 &Nbsp; продвижение и отступление сирот 32
3.6   Резюме 34

Глава 4   Планирование процесса 35
4.1   Multi -Task 35
4.2   Планирование процесса Linux 36
4.3   стратегия 36
4.3.1   ввода/вывода типа потребителя и процесс потребления процессора 36
4.3.2   Process Priority 37
4.3.3   Time Film 38
4.3.4   деятельность стратегии планирования 38
4.4   Алгоритм планирования Linux 39
4.4.1   планирование класса 39
4.4.2 &Планирование процесса 40 в NBSP;
4.4.3   Справедливое планирование 41
4.5   планирование Linux 42
4.5.1   Time Book 42
4.5.2   Выбор процесса 44
4.5.3   вход планировщика 48
4.5.4   Sleep and Awakening 49
4.6  
4.6.1   пользователь захватит 53
4.6.2  
4.7   стратегия планирования реального времени 54
4.8  
4.8.1  
4.8.2  
4.8.3   отдайте время процессора 56
4.9   Резюме 56

Глава 5  
5.1  
5.2   API, POSIX и C Библиотека 57
5.3  
5.3.1  
5.3.2  
5.4  
5.4.1  
5.4.2   Параметр проход 60
5.5  
5.5.1  
5.5.2   проверка параметров 62
5.6  
5.6.1  
5.6.2  
5.6.3  
5.7   Резюме 68

Глава 6  
6.1   ссылки 69
6.1.1  
6.1.2   кольцо связано со списком 70
6.1.3   Двигайтесь по связанному списку 71
6.1.4  
6.1.5   операционные ссылки 73
6.1.6   Связанный список 75
6.2   очередь 78
6.2.1  kfifo79
6.2.2   очередь создания 79
6.2.3   протолкнуть данные в очереди 79
6.2.4   Поднимите данные очереди 80
6.2.5   Получите длину очереди 80
6.2.6   сбросить и отменить очередь 80
6.2.7   использование крана пример 81
6.3   Картирование 81
6.3.1   Инициализируйте IDR82
6.3.2  
6.3.3   найти UID83
6.3.4   удалить UID84
6.3.5   revisit idr84
6.4   двоичное дерево 84
6.4.1   Дерево бинарного поиска 84
6.4.2   сами -банальное дерево бинарного поиска 85
6.5   Структура и выбор данных 87
6.6   Сложность алгоритма 88
6.6.1   алгоритм 88
6.6.2   Big O Symbol 88
6.6.3   большой&Тета; символ 89
6.6.4   Временная сложность 89
6.7   Резюме 90

Глава 7   прерывание и прерывание обработки 91
7.1   прерывание 91
7.2   Программа обработки прерываний 92
7.3  
7.4   Процедура регистрации прерывания 93
7.4.1  
7.4.2   пример прерывания 95
7.4.3   Программа обработки прерываний NBSP; 95
7.5   Написание программы обработки прерываний 96
7.5.1   Программа общей обработки прерываний 97
7.5.2   Энденс Программы обработки прерываний 97
7.6  
7.7   реализация механизма обработки прерываний 100
7.8  /proc/interrupts102
7.9   контроль прерывания 103
7.9.1   запрещенное и активированное прерывание 103
7.9.2   запрещенная указанная линия прерывания 105
7.9.3  
7.10   Резюме 106

Глава 8  
8.1  
8.1.1  
8.1.2  
8.2   мягкое прерывание 110
8.2.1   реализация мягкого прерывания 111
8.2.2   мягкое прерывание 113
8.3  tasklet114
8.3.1   реализация Tasklet 114
8.3.2   используйте Tasklet116
8.3.3   Старый механизм BH 119
8.4   queue 120
8.4.1   реализация рабочей очередь 121
8.4.2   используйте очередь работы 124
8.4.3   механизм очереди старой задачи 126
8.5  
8.6  
8.7  
8.8   суммирование 129

Глава 9  
9.1  
9.1.1   зачем нам защищать 132
9.1.2  
9.2   Lock 134
9.2.1   причина одновременного исполнения 135
9.2.2   понимать, что защитить 136
9.3   Dead Lock 137
9.4   борьба и масштабируемость 138
9.5   суммирование 140

Глава 0  
10.1   атомная операция 141
10.1.1   Atomic Integer Operation 142
10.1.2   64 -бит -атомная операция 144
10.1.3   операция по атомной позиции 145
10.2   Spin Lock 147
10.2.1   метод спинового блокировки 148
10.2.2  
10.2.3  
10.3   Читающий писатель самозаключение 150
10.4   сигнал 152
10.4.1   Семного семафора и двух -стоимости семафора 153
10.4.2   создать и инициализировать Semaphore 154
10.4.3   используйте Semaphore 154
10.5   сигнал о написании чтения № 155
10.6   взаимное исключительное тело 156
10.6.1   Semaphores и взаимоисключающее тело 158
10.6.2   спин -блокировка и взаимоисключающее тело 158
10.7   полная переменная 158
10.8  
10.9   последовательный блокировка 160
10.10   запрещено захватить 161
10.11   последовательность и барьер 162
10.12   Резюме 165

1 глава   таймер и управление временем 166
11.1  
11.2   скорость удара: Hz167
11.2.1   Идеальное Значение Гц 168
11.2.2  
11.2.3  
11.3  jiffies170
11.3.1   Jiffies Внутреннее представительство 171
11.3.2   спина Джиффиса 172
11.3.3   Пользовательское пространство и HZ173
11.4   твердые часы и таймер 174
11.4.1   часы в реальном времени 174
11.4.2  
11.5   Программа обработки часов -прерываний 174
11.6   Фактическое время 176
11.7   таймер 178
11.7.1   используйте таймер 178
11.7.2  
11.7.3   реализовать таймер 180
11.8   выполнение задержки 181
11.8.1   занят ожиданием 181
11.8.2   короткая задержка 182
11.8.3  schedule_timeout()183
11.9   Резюме 185

2 главы   Управление памятью 186
12.1   Page 186
12.2   Район 187
12.3   получить страницу 189
12.3.1   Page 190 с 0 заполнением 0
12.3.2   выпуск страницы 191
12.4  kmalloc()191
12.4.1  
12.4.2  kfree()195
12.5  vmalloc()196
12.6   Slab Layer 197
12.6.1 &Nbsp; дизайн слоя плиты 198
12.6.2   интерфейс распределения Slab 200
12.7  
12.7.1  
12.7.2  
12.8  
12.8.1   Постоянное картирование 204
12.8.2   временное картирование 204
12.9    
12.10.1  
12.10.2  
12.11  
12.12   выберите функцию распределения 209
12.13   Резюме 209

3 главы  
13.1  
13.2  
13.3  
13.4 &Объект NBSP; VFS и его структура данных 213
13.5   Super Block Object 214
13.6   Операция Super Block 215
13.7   Индексный узел объект 217
13.8   операция узла индекса 219
13.9   объект каталога объект 222
13.9.1   Справочный терминал 222
13.9.2   Ужигание каталогов 223
13.10   операция по элементу каталога 224
13.11   Файл объект 225
13.12   операция файла 226
13.13  
13.14   Структура данных, связанная с процессом, 232
13.15   Резюме 233

4 главы   Блок ввода/вывода слой 234
14.1   проанализируйте блочное устройство 234
14.2   буферная и буферная головка 235
14.3   Био -структура 237
14.3.1   Вектор ввода/вывода 238
14.3.2  
14.4  
14.5   Программа планирования ввода/вывода 240
14.5.1   Программа планирования ввода/вывода работа 241
14.5.2   линейный лифт 241
14.5.3   Последний период программы планирования ввода/вывода 242
14.5.4   Прогнозируйте программу планирования ввода/вывода 244
14.5.5  
14.5.6   Пустая программа планирования ввода/вывода операции 245
14.5.7   запланированный выбор ввода/вывода 245
14.6   суммирование 246

5 главы   обработанное адресное пространство 247
15.1   Адресное пространство 247
15.2   дескриптор памяти 248
15.2.1   выделяйте дескрипторы памяти 249
15.2.2 &Nbsp; Repisit descriptor памяти 250
15.2.3  
15.3   область виртуальной памяти 251
15.3.1  
15.3.2   операция VMA 253
15.3.3   ссылки на структуру дерева и область памяти области памяти 254
15.3.4   область памяти 254 в фактическом использовании
15.4   Работая область памяти 255
15.4.1  find_vma()256
15.4.2  find_vma_prev()257
15.4.3  find_vma_intersection()257
15.5   mmap () и do_mmap (): создать интервал адреса 258
15.6   mummap () и do_mummap (): удалить интервал адреса 259
15.7   Страница Таблица 260
15.8   Резюме 261

6 главы  
16.1   кэш означает 262
16.1.1   Кэш записи 262
16.1.2   восстановление кэша 263
16.2  
16.2.1   address_space объект 264
16.2.2   address_space операция 266
16.2.3   Базовое дерево 267
16.2.4   Пейдж Санда Список 268
16.3  
16.4   резьба промывки 268
16.4.1  
16.4.2  
16.4.3   избегайте заторов: используйте многооткрытие 271
16.5   Резюме 271

7 главы  
17.1   тип устройства 273
17.2  
17.2.1   Привет, World274
17.2.2  
17.2.3  
17.2.4  
17.2.5  
17.2.6   Вариант конфигурации управления 279
17.2.7  
17.2.8   Символ экспорта Таблица 282
17.3   модель устройства 283
17.3.1  kobject283
17.3.2  ktype284
17.3.3  kset285
17.3.4   Kobject, Ktype и отношения KSET 285
17.3.5   управление и операция KOBject286
17.3.6   Справочный счет 287
17.4  sysfs288
17.4.1 &Nbsp; sysfs добавить и удалить Kobject 290
17.4.2 &Nbsp; добавить файл 291 в sysfs
17.4.3  
17.5   Резюме 294

Глава 8   отладка 295
18.1   подготовка начинается 295
18.2  
18.3   отладка 296 путем печати
18.3.1   надежность 296
18.3.2   Log Уровень 297
18.3.3   записывающий буфер 298
18.3.4   syslogd и klogd298
18.3.5 &Nbsp; от printf () в printk () преобразование 298
18.4  oops298
18.4.1  ksymoops300
18.4.2  kallsyms300
18.5  
18.6   причина ошибки и печати информация 301
18.7  
18.8  
18.8.1  gdb303
18.8.2  kgdb304
18.9  
18.9.1  
18.9.2  
18.9.3   Используйте статистику 305
18.9.4  
18.10   используйте метод поиска с двумя точками, чтобы найти изменение, которое вызывает SIN 306
18.11   используйте GIT для поиска двух точечных поисков 307
18.12  
18.13   Резюме 308

9 главы   пересаживаемое 309
19.1  
19.2   История трансплантации Linux 310
19.3  
19.3.1   непрозрачный тип 313
19.3.2   укажите тип данных 314
19.3.3   тип 314 с прозрачной длиной
19.3.4 &Nbsp; ar -тип символ. Проблема 315
19.4   выравнивание данных 315
19.4.1   избегайте проблем, вызванных выравниванием 316
19.4.2  
19.4.3   Структурное заполнение 316
19.5  
19.6   время 319
19.7   длина страницы 320
19.8   Сортировка процессора 320
19.9  
19.10   Резюме 321

Глава 20   патч, развитие и сообщество 322
20.1   Сообщество 322
20.2   Стиль кодирования Linux 322
20.2.1   сокращается 323
20.2.2   оператор переключения 323
20.2.3   пространство 324
20.2.4   цветочный бренд 325
20.2.5  
20.2.6   спецификация именования 326
20.2.7   функция 326
20.2.8   примечание 326
20.2.9  typedef327
20.2.10   используйте больше готовых вещей 328
20.2.11   уменьшить использование IFDEF328 в исходном коде
20.2.12   Структура инициализация 328
20.2.13  
20.3  
20.4   отправить отчет об ошибке 329
20.5   патч 330
20.5.1   создать патч 330
20.5.2   создать патч 331 с git
20.5.3   отправить патч 331
20.6   Резюме 332
Справочные материалы 333
1320437395
Пунктирное содержание

краткое введение

Эта книга подробно введена в систему ядра Linux, основываясь на ядре Linux 2.6.34, охватывающего все аспекты, такие как применение системы ядра Core, к проектированию и реализации ядра.Основное содержание этой книги включает в себя: управление процессами, планирование процессов, управление временем и таймер, интерфейс системного вызова, адресация памяти, управление памятью и кэш страниц, VFS, синхронизация ядра и технология отладки.В то же время, эта книга также охватывает отличительный контент в ядре Linux 2.6, включая программу планирования CFS, захват ядра, слой ввода/вывода блока и программу планирования ввода -вывода.Эта книга принимает линию комбинации теории и практики, которая может привести к тому, что читатели могут быстро войти в мир ядра Linux и по -настоящему разработать код ядра.

1320437395
об авторе

Робертлове (Робертлов) переводится Чэнь Лиджун и другие

(США) Роберт Лав
Роберт Лав - старший мастер сообщества с открытым исходным кодом, который начал использовать Linux очень рано.В настоящее время он является хорошим инженером -программированием в Google и членом команды разработки ядра мобильной платформы Android; Ximain.Проекты ядра, которые он участвовал, включают в себя захват ядра, процесс планирования, слой события ядра, механизм уведомлений, улучшение виртуальной машины и драйвер оборудования.Он является редактором журнала "Linux Journal".У него также есть «Программирование системы Linux» и «Linux вкратце».

Захватывающий контент

    Независимо от того, является ли ядро ​​развития для интереса или заработать деньги, я надеюсь привести читателей быстро войти в мир ядра Linux.Эта книга не только вводит теорию, но и обсуждает конкретные приложения, которые могут удовлетворить потребности разных читателей.Книга тесно связана с теоретической контактной практикой и не подчеркивает теорию или практику.Независимо от того, что вы изучаете мотивацию ядра Linux, я надеюсь, что эта книга может проанализировать дизайн и реализацию ядра и сыграть роль в привлечении кирпичей.
   &Таким образом, NBSP;Я думаю, что это важно, и это стоит обсудить.Например, в главе 8 обсуждается так называемый механизм нижней половины.В этой главе обсуждается проектирование и реализацию механизма нижней половины ядра (заинтересованы в разработчиках ядра или ученых Core Cornel), а затем представьте, как использовать интерфейс, предоставленный ядром, он очень полезен).На самом деле, я думаю, что две части вышеупомянутых двух частей дополняют друг друга, хотя развитие основного ядра ...

1320437395