Статьи посвящены тому, как из модулей ядра (которые вы подгружаете динамически) могут изменяться или даже создаваться новые системные вызовы Linux в интересах вашего собственного проекта.
Статьи достаточно большие, чтобы их пересказывать. Кроме того, каждая из них содержит пример кода, который можно непосредственно перенести в свой проект. Поэтому я даю только ссылки, где всё это можно скачать совершенно свободно.
1. Делаем
доступным все символы ядра.
Здесь мы учимся использовать даже те символы ядра (функции, структуры данных), к которым разработчики ядра не считают нужными давать нам доступ. Это основа всего дальнейшего обсуждения.
Скачать здесь.
Это о том, как вы можете изменить стандартное поведение любого системного вызова Linux.
Скачать здесь.
Сетевые (сокетные) системные вызовы в Linux обрабатываются не так, как сотни прочих системных вызовов. Это достаточно мало известно.
Скачать здесь.
А это на тот случай, если вы захотите динамически добавлять новый системный вызов в Linux для своего целевого проекта.
Скачать здесь.
Код здесь.