自作システムコール
code: zsh
$ sudo vi arch/x86/entry/syscalls/syscall_64.tbl
777 common wafuwafu_hello_log sys_wafuwafu_hello_log
code: zsh
$ sudo vi arch/x86/kernel/wafuwafucall.c
//777
asmlinkage void sys_wafuwafu_hello_log(void){
printk (KERN_INFO "=====================\n");
printk (KERN_INFO "Hello wafuwafu World!\n");
printk (KERN_INFO "=====================\n");
};
code: zsh
sudo vi arch/x86/kernel/Makefile
obj-y += wafuwafucall.o
code: zs h
$ sudo make -j4
CC arch/x86/kernel/wafuwafucall.o
CC security/apparmor/lsm.o
CC kernel/sched/psi.o
code: wafuwafu.c
int main() {
printf("syscall\n");
syscall(wafuwafucall_syslog);
}
code: zsh
$ sudo dmesg | tail -n 5
171.151609 IPv6: ADDRCONF(NETDEV_CHANGE): wlx000f00c8d880: link becomes ready 207.011868 audit: type=1400 audit(1661417748.051:47): apparmor="DENIED" operation="mknod" profile="/usr/bin/evince-thumbnailer" name="/home/user/.thumbnails/normal/f84dbfea6a2f443bcbcde17 23093296b.png" pid=1888 comm="evince-thumbnai" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
code: zsh
$ sudo docker image pull ubuntu:18.04
$ sudo dockerd -D
failed to mount overlay: no such device storage-driver=overlay2
AUFS was not found in /proc/filesystems storage-driver=aufs
/etc/docker/daemon.json
code: zsh
$ uname -r
5.4.0-124-generic
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
code: zsh
$ ./wafuwafu
syscall
$ sudo dmesg | tail -n 5
124.145876 IPv6: ADDRCONF(NETDEV_CHANGE): wlx000f00c8d880: link becomes ready 155.525088 audit: type=1400 audit(1661420675.605:57): apparmor="DENIED" operation="mknod" profile="/usr/bin/evince-thumbnailer" name="/home/user/.thumbnails/normal/f84dbfea6a2f443bcbcde1723093296b.png" pid=2034 comm="evince-thumbnai" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000