2016-11-12 8 views
0

私は初心者のカーネルです。自分のシステムコールを実装したいのですが。私は非常に多くのリンクを検索していますが、ほぼ到達しましたが、依然として正確な出力を得ることはできません。Linuxカーネル4.xで自分のシステムコールを実装する方法は?

私はown system call on kernel-3.8.8 (youtube video tutorial)に従っています。


私のセットアップは次のとおりです。
OS:Ubuntuの14.04 LTS
アーチ:私は続いている手順は

  1. 編集sytemcallテーブルのlinux-4.7 /アーチ/ x86のです
    x86_64版/entry/syscalls_64.tbl
  2. プロトタイプを/usr/src/linux-4.7/include/linuxのsyscalls.hに追加します。
  3. systcall defnitionを作成し、カーネルにsyscallディレクトリを追加しましたMakefile
  4. カーネルをコンパイルして再起動
  5. syscallが機能しているかどうかを確認するためにユーザアプリケーションを作成します。

syscall()apiでsyscall numを使用してsyscall呼び出しを取得できました。しかし、私が望むのは、オープンコールsys_openのような伝統的な方法です。 私はmycallのようにsys_mycallを呼び出す必要があります。

+0

あなたはあなたのglibcを編集することができますあなたのシステムコールの周りにラッパーを追加する。 http://code.metager.de/source/xref/gnu/glibc/sysdeps/unix/syscalls.listのようなものあなたのシステムコール用のlinuxヘッダに__NR番号を定義するのを忘れないでください。そして、YouTubeのビデオチュートリアルを使ってカーネル開発をしないでください。 – osgx

答えて

1

glibcを編集して、システムコールの周りにラッパーを追加することができます。何かの周りhttp://code.metager.de/source/xref/gnu/glibc/sysdeps/unix/syscalls.list

あなたのシステムコールのためのLinuxのヘッダに__NR番号を定義することを忘れないでください

kernel.orgからの指示、唯一のLinuxカーネル開発者がありますように: https://www.kernel.org/doc/Documentation/adding-syscalls.txt

関連する問題