2025-02-08 18:27:36 +01:00
|
|
|
#include <linux/init.h>
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
#include <linux/module.h>
|
|
|
|
#include <linux/sched.h>
|
|
|
|
#include <linux/sched/signal.h>
|
|
|
|
|
|
|
|
static inline void print_processus_info(void);
|
|
|
|
|
|
|
|
static int __init basic_module_init(void) {
|
2025-02-23 13:14:54 +01:00
|
|
|
pr_info("Bonjour! Le module est chargé.\n");
|
2025-02-08 18:27:36 +01:00
|
|
|
|
2025-02-23 13:14:54 +01:00
|
|
|
print_processus_info();
|
|
|
|
return 0;
|
2025-02-08 18:27:36 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
static void __exit basic_module_exit(void) {
|
2025-02-23 13:14:54 +01:00
|
|
|
pr_info("Au revoir! Le module est déchargé.\n");
|
2025-02-08 18:27:36 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline void print_processus_info(void) {
|
2025-02-23 13:14:54 +01:00
|
|
|
struct task_struct *task;
|
2025-02-08 18:27:36 +01:00
|
|
|
|
2025-02-23 13:14:54 +01:00
|
|
|
for_each_process(task) {
|
|
|
|
pr_info("PID: %d, COMM: %s, ON CPU: %d\n", task->pid, task->comm, task->on_cpu);
|
|
|
|
}
|
2025-02-08 18:27:36 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
module_init(basic_module_init);
|
|
|
|
module_exit(basic_module_exit);
|
|
|
|
|
|
|
|
MODULE_LICENSE("MIT License");
|
|
|
|
MODULE_AUTHOR("Florian RICHER");
|
|
|
|
MODULE_DESCRIPTION("Un module noyau qui affiche les processus en cours");
|
|
|
|
MODULE_VERSION("1.0");
|