Pull to refresh
2781.19
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

Перевод книги от RUVDS: Пособие по программированию модулей ядра Linux

Reading time2 min
Views2.5K
Продолжаем совмещать приятное с полезным. Перед вами актуальная версия полностью переведённого руководства, которое вышло 2 июля 2022 года — труд нескольких месяцев, который состоялся благодаря работе всей редакционной команды RUVDS.

Изначально материал вышел в виде нескольких частей — в нашем блоге, и если у вас есть желание поучаствовать в комментариях к статьям — ниже представлен спойлер с ними:
Все части руководства
Программирование модулей ядра Linux. Ч.1
В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав вопросы лицензирования, передачу аргументов командной строки и прочие нюансы.

Программирование модулей ядра Linux. Ч.2
В первой половине текущей части мы подробнее разберём структуру и принцип действия модулей, узнаем, чем отличается пространство пользователя от пространства ядра, а также немного поговорим об использовании памяти. Вторая же половина будет посвящена одному из типов модулей — драйверам устройств, основы работы с которыми мы также подробно рассмотрим.

Программирование модулей ядра Linux. Ч.3
Продолжаем серию статей по созданию модулей ядра. В текущей части мы разберём работу с файловой системой /proc, взаимодействие с модулями при помощи sysfs, а также работу с файлами устройств.

Программирование модулей ядра Linux. Ч.4
Тема этой части — системные вызовы. В ней вы познакомитесь с этим понятием на примере создания собственной функции для открытия файлов, которая будет подменять собой исходную sys_open, а также следить за конкретным пользователем, информируя нас об открываемых им файлах.

Программирование модулей ядра Linux. Ч.5
В ней мы разберёмся, как в ядре реализована совместная работа процессов и потоков, узнаем, какую роль в этом играет режим ожидания (sleep), рассмотрим возможные способы избежания коллизий и взаимных блокировок, а также познакомимся с назначением и использованием атомарных операций.

Программирование модулей ядра Linux. Ч.6
Познакомимся с понятием tty, представляющим альтернативу макросу print, напишем модуль для мигания светодиодами клавиатуры, а также разберём тему планирования задач с помощью тасклетов и очередей заданий.

Программирование модулей ядра Linux. Ч.7
Заключительная часть. Здесь мы рассмотрим обработку прерываний, криптографию, стандартизацию интерфейсов с помощью модели устройства, а также разберём принцип работы драйвера виртуального устройства ввода и возможность внесения в модуль некоторой оптимизации. В завершение же укажем на пару неявных, но важных нюансов, а также дадим рекомендации по дальнейшему погружению в тему программирования ядра.
Однако дальше нам стали поступать просьбы читателей, что очень нужна электронная версия, в виде единого справочника — недолго думая, мы быстро подготовили два формата, которыми сейчас с удовольствием с вами поделимся:


Надеемся, что эта книга будет для вас полезна!
Telegram-канал и уютный чат
Tags:
Hubs:
+34
Comments1

Other news

Information

Website
ruvds.com
Registered
Founded
Employees
11–30 employees
Location
Россия
Representative
ruvds