ru

Программирование ядра Linux: исчерпывающее руководство по внутренним механизмам ядра, написанию модулей ядра и синхронизации ядра на русском

#3019811
Программирование ядра Linux: исчерпывающее руководство по внутренним механизмам ядра, написанию модулей ядра и синхронизации ядра

Linux Kernel Programming: A comprehensive guide to kernel internals, writing kernel modules, and kernel synchronization (978-1789955927)

Купить и скачать электронную книгу в форматах PDF, EPUB, FB2, MOBI

Kaiwan N Billimoria | #197: Администрирование Linux и UNIX

4.6 (104)

Узнайте, как писать высококачественный код для модулей ядра, решать распространенные проблемы программирования ядра Linux и понимать основы внутренней работы ядра Linux.

Основные характеристики

  • Узнайте, как писать код ядра, используя фреймворк загружаемых модулей ядра (Loadable Kernel Module).
  • Изучите передовые методы эффективного распределения памяти и синхронизации данных в ядре ядра.
  • Разберитесь в основных внутренних аспектах таких тем, как архитектура ядра, управление памятью, планирование работы ЦП и синхронизация ядра.

Описание книги

«Программирование ядра Linux» — это всестороннее введение для тех, кто только начинает знакомиться с разработкой ядра и модулей Linux. Это простое и понятное руководство позволит вам быстро освоить написание кода ядра. В книге используется новейшее ядро ​​Linux 5.4 с долгосрочной поддержкой (LTS), которое будет поддерживаться с ноября 2019 года по декабрь 2025 года. Работая с ядром 5.4 LTS на протяжении всей книги, вы можете быть уверены, что ваши знания останутся актуальными на долгие годы.

Вы начнёте с изучения сборки ядра из исходного кода. Затем вы напишете свой первый модуль ядра, используя мощную платформу Loadable Kernel Module (LKM). В последующих главах будут рассмотрены ключевые внутренние аспекты ядра, включая архитектуру ядра Linux, управление памятью и планирование работы ЦП.

В ходе изучения этой книги вы углубитесь в довольно сложную тему параллельного выполнения в ядре, поймете проблемы, которые оно может вызывать, и узнаете, как их можно решить с помощью различных технологий блокировки (мьютексы, спин-блокировки, атомарные операторы и операторы подсчета ссылок). Вы также получите пользу от более продвинутого материала о влиянии кэша, вводного курса по методам работы без блокировок в ядре, предотвращения взаимоблокировок (с помощью lockdep) и методов отладки блокировок в ядре.

К концу изучения этой книги по ядру Linux вы получите подробное понимание основ написания кода модулей ядра Linux для реальных проектов и продуктов.

Что вы узнаете

  • Разрабатывать высококачественный модульный код ядра (фреймворк LKM) для ядер версий 5.x.
  • Настройте и соберите ядро ​​из исходного кода.
  • Изучите архитектуру ядра Linux.
  • Разберитесь с ключевыми внутренними механизмами управления памятью в ядре.
  • Понимать и работать с различными динамическими API ядра для выделения/освобождения памяти.
  • Изучите ключевые внутренние аспекты планирования работы ЦП в ядре ядра.
  • Получите представление о проблемах параллельного выполнения в ядре ядра.
  • Узнайте, как работать с ключевыми примитивами синхронизации ядра.

Для кого предназначена эта книга?

Эта книга предназначена для начинающих программистов, работающих с Linux и осваивающих разработку ядра Linux. Если вы разработчик ядра и драйверов Linux и хотите преодолеть распространенные проблемы разработки ядра или понять интервалы обновления ядра, вы найдете в ней много полезной информации.

Прежде чем приступить к работе, вам потребуется прочная база знаний Linux CLI и программирования на языке C.

Оглавление

  1. Настройка рабочей области ядра
  2. Сборка ядра Linux 5.0 из исходного кода, часть 1.
  3. Сборка ядра Linux 5.0 из исходного кода, часть 2.
  4. Написание первого модуля ядра, часть 1.
  5. Написание первого модуля ядра — Часть 2
  6. Основы внутреннего устройства ядра — процессы и потоки.
  7. Внутреннее устройство управления памятью — основы
  8. Выделение памяти ядром для авторов модулей, часть 1.
  9. Выделение памяти ядром для авторов модулей — Часть 2
  10. Планировщик ЦП — Часть 1
  11. Планировщик ЦП — Часть 2
  12. Синхронизация ядра — Часть 1
  13. Синхронизация ядра — Часть 2