😊

システムコールを追加しよう

2022/10/10に公開

ヘッダファイルに自分のシステムコールを追加する。

  1. システムコールテーブルに451番のmycall登録
arch/x86/entry/syscalls/syscall_64.tbl
451     common  mycall                  sys_mycall
  1. Cソース追加
arch/x86/kernel/mycall.c
#include <linux/kernel.h>
#include <linux/syscalls.h>
#include <asm/current.h>

asmlinkage void __x64_sys_mycall(void) {
        printk(KERN_INFO "hello mycall\n");
};

3.Makefile修正

arch/x86/kernel/Makefile
obj-y	+= mycall.o
  1. カーネルビルド
sudo make 
  1. Cファイルを作成する mycall.c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

int main () {
    syscall(451);
    return 0;
}
  1. 実行するとdmesgに標示される。

Discussion