This project is a work in progress and aims to develop a Linux kernel module that monitors key process metrics at the kernel level. The module collects per-process CPU usage, memory faults, scheduler statistics, and other essential system metrics. The collected data is exposed to user-space programs via the proc-file system, enabling further analysis and monitoring.
- Tracks per-process resource consumption including:
- CPU usage
- Memory faults
- Process uptime
- Scheduler statistics
- Proc-file system integration for real-time user-space access.
- Character device interface for additional monitoring capabilities.
- Python-based analytics tools to process and visualize collected data.
🚧 This project is actively under development. 🚧
New features, optimizations, and improvements are continuously being worked on.
- Linux Kernel Version:
5.15.165
- Development Tools:
gcc
(for compiling kernel modules)make
(for build automation)python3
(for analytics tools)
- Kernel Headers matching the system kernel version.
git clone <repository-url>
cd kernel-process-monitor
make
sudo insmod process_monitor.ko
lsmod | grep process_monitor
cat /proc/process_monitor
sudo rmmod process_monitor
make clean
Once the kernel module is running and exposing process data, Python scripts can be used for further processing, visualization, and logging. More details on analytics tools will be provided as development progresses.
- Implement basic CPU and memory tracking.
- Integrate proc-file system for user-space access.
- Enhance data collection efficiency.
- Implement more visualization tools in Python.
- Add support for monitoring additional kernel-level statistics.