私は初心者のカーネルです。自分のシステムコールを実装したいのですが。私は非常に多くのリンクを検索していますが、ほぼ到達しましたが、依然として正確な出力を得ることはできません。Linuxカーネル4.xで自分のシステムコールを実装する方法は?
私はown system call on kernel-3.8.8 (youtube video tutorial)に従っています。
私のセットアップは次のとおりです。
OS:Ubuntuの14.04 LTS
アーチ:私は続いている手順は
- 編集sytemcallテーブルのlinux-4.7 /アーチ/ x86のです
x86_64版/entry/syscalls_64.tbl - プロトタイプを/usr/src/linux-4.7/include/linuxのsyscalls.hに追加します。
- systcall defnitionを作成し、カーネルにsyscallディレクトリを追加しましたMakefile
- カーネルをコンパイルして再起動
- syscallが機能しているかどうかを確認するためにユーザアプリケーションを作成します。
syscall()apiでsyscall numを使用してsyscall呼び出しを取得できました。しかし、私が望むのは、オープンコールsys_openのような伝統的な方法です。 私はmycallのようにsys_mycallを呼び出す必要があります。
あなたはあなたのglibcを編集することができますあなたのシステムコールの周りにラッパーを追加する。 http://code.metager.de/source/xref/gnu/glibc/sysdeps/unix/syscalls.listのようなものあなたのシステムコール用のlinuxヘッダに__NR番号を定義するのを忘れないでください。そして、YouTubeのビデオチュートリアルを使ってカーネル開発をしないでください。 – osgx