С чего начать с модулями ядра Linux?

Немного предыстории, я студент CMPE в настоящее время в классе операционных систем. У меня есть некоторые базовые знания по C-кодированию, но я чувствую себя более комфортно с C ++ (примерно 3 семестра). Кроме этого, никогда не было никакого другого официального обучения кодированию. Кроме того, у меня есть общее представление о среде Linux.

Я работаю над проектом, который требует от меня и моей команды написания кода модуля ядра Linux, который может выполнять следующие действия:

отображает данные, передаваемые процессами пользовательского уровня, печатая полученные данные в журнал ядраспособен передавать данные от одного пользовательского процесса другому.должна быть возможность использовать модуль ядра как абстракцию межпроцессного взаимодействия. Модуль должен предусматривать ситуации, когда отправитель отправляет данные в него, но получатель не ожидает. Модуль должен охватывать ситуацию, когда получатель запрашивает данные, но данные недоступны.Модуль должен охватывать ситуацию, когда получатель запрашивает данные, но нет доступных данных.должно быть ограничение в объеме буфера в вашем модуле.

Сейчас я не знаю, насколько это сложно для тех, кто имеет опыт программирования, но это кажется невероятно сложной задачей для кого-то из моих сотрудников.

Вот что я сделал до сих пор:

Кодировал, компилировал, вставлял и удалял базовый модуль ядра Linux "hello world" успешноПрочитайте о первых 4 или 5 главахРуководство по программированию модуля ядра LinuxПрочитайте несколько сообщений stackoverflow, ни один из которых, кажется, не в состоянии направить меня туда, куда мне нужно идти.

Итак, наконец, вот мой вопрос: может кто-нибудь указать мне направление, в котором я должен идти с этим? Я даже не знаю, где найти команды для чтения данных процесса на уровне пользователя, и мне нужно где-то начать. TLPD отлично подходил для понимания этой темы, но не помог мне добраться до того момента, когда у меня будет работоспособный проект для включения. Раньше я учился на чтении исходного кода и обратном инжиниринге, есть ли где-нибудь, где я могу найти что-то подобное? Любая помощь приветствуется.

-Будет

Ответы на вопрос(2)

Ваш ответ на вопрос