Skip to content

EltexEmbeddedC/linux-kernel-modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Модули ядра Linux

Сборка

  1. Необходимо перейти в директорию с нужным заданием и выполнить команду для сборки проекта make;

  2. Файл модуля ядра xxx.ko появится в той же директории;

  3. Для удаления всех файлов сборки необходимо выполнить команду make clean.

Задание: написать модуль ядра, который предоставляет механизм общения kernel space и user space посредством символьного файла устройства, а также виртуальных файловых систем sys и proc

Код представлен в директории Task. После сборки модуля установим его в ядро:

sudo insmod task1.ko

Выведем последние 10 сообщений ядра и увидим сообщения об успешной загрузке модуля:

sudo dmesg | tail -n10

image

Создадим файл устройства в /dev, выполнив команду:

sudo mknod task1 c 511 0

Повысим права доступа к файлу:

sudo chmod +0666 task1

image

Выведем его содержимое:

sudo cat task1

Изменим содержимое:

sudo echo "123456789" > task1

Снова выведем содержимое:

sudo cat task1

image

Перейдем в /proc и проведем аналогичное тестирование чтения и записи:

image

Теперь перейдем в sys/kernel/kobject_test и проведем те же операции:

image

Note

В данном примере все три виртуальные файловые системы работают с одной и той же переменной. Именно поэтому результат записи в одной системе отображается при выводе в другой.

После проведения тестирования удалим файл устройства и выгрузим модуль из ядра:

sudo rm /dev/task1
sudo rmmod task1

About

Задание 20. Модули ядра Linux

Resources

License

Stars

Watchers

Forks