Add scheduling counter by modifying the kernel and recompile it
- add counter variable in
struct task_struct
ininclude/linux/sched.h
- initialize the counter (set to 0) in
kernel_clone()
inkernel/fork.c
- increase the counter by 1 in
activate_task()
inkernel/sched/core.c
- create a entry in
tgid_base_stuff[]
infs/proc/base.c
See https://nickchen120235.github.io/2021/04/22/linux-kernel-scheduling.html for more details
Three memory management-related functionalities implemented for both x86 and aarch64 architectures
listvma
: print all virtual addresses of all processes in the format ofstart-addr end-addr permission
findpage addr
: print the corresponding physical address of virtual addressaddr
. If no such translation exists, printtranslation not found
writeval addr val
: try to writeval
toaddr
See https://nickchen120235.github.io/2021/05/18/linux-kernel-memory-management.html for more details
Modify romfs implementation to accomplish the following functionalities
- hide a file: modify
romfs_readdir
- encrypt a file: modify
romfs_readpage
- change the permission of a file: modify
romfs_lookup
Two methods for hooking