Skip to content

Reshar97/HW_09_timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Linux Kernel Timer Module

Лабораторная работа по написанию модуля ядра Linux.

Этот проект демонстрирует использование API таймеров в ядре Linux (timer_list). Модуль создает периодический таймер, который выводит сообщение в системный журнал (dmesg) каждые N секунд. Работа модуля автоматически прекращается через 5 минут после загрузки.

Также реализована опциональная часть: возможность динамически изменять интервал таймера через интерфейс sysfs. Описание функционала

Основной таймер: По умолчанию срабатывает каждые 30 секунд.
Лимит работы: Модуль автоматически останавливает таймер через 5 минут после загрузки, чтобы не засорять лог.
Динамический интервал (Опционально): Интервал таймера можно изменять "на лету" через файл в виртуальной файловой системе sysfs.

Сборка и установка

Для сборки модуля необходимы заголовочные файлы ядра и компилятор GCC.

Установите необходимые пакеты:

sudo apt update
sudo apt install build-essential linux-headers-$(uname -r)

Соберите модуль:Перейдите в каталог проекта и выполните:

make

Запуск и проверка

Загрузите модуль в ядро:

sudo insmod timer_module.ko

Проверьте логи ядра: Вы увидите сообщения о загрузке и срабатываниях таймера.

sudo dmesg | tail -n 20

Проверьте работу через sysfs (Опционально):Интервал таймера (в секундах) хранится в файле /sys/kernel/timer_module/interval. Посмотреть текущий интервал:

cat /sys/kernel/timer_module/interval

Установить новый интервал (например, 10 секунд):

echo 10 | sudo tee /sys/kernel/timer_module/interval

Выгрузите модуль: После завершения работы выгрузите модуль:

sudo rmmod timer_module

Очистка

Для удаления скомпилированных файлов (.o, .ko, .mod.* и т.д.) выполните:

make clean

Файлы проекта

timer_module.c — Исходный код модуля ядра на языке C.
Makefile — Скрипт для автоматизации сборки, очистки и загрузки модуля.

Важные замечания

Код написан для современных версий ядра Linux (4.15+).
Для сборки используется make. Убедитесь, что у вас установлен пакет build-essential.
Для изменения интервала через sysfs убедитесь, что у вас есть права на запись в /sys/kernel/.
Таймер является программным (soft timer), поэтому при высокой нагрузке на систему возможна небольшая погрешность в интервалах.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors