新しいシステム コールを追加するオペレーティング システムの割り当てを行っています。「ダムフォーク」と呼ばれるシステム コールは、コピー オン ライト ポリシーを使用せずにプロセスをフォークする必要があります。したがって、基本的にはアドレス空間全体を子プロセスにコピーする必要があります。
システムカーネルをセットアップして再コンパイルすることができました。カスタム システム コールを呼び出すことはできますが、実際にダムフォークを実装して COW 機能を無効にする方法がわかりません。ソース コードの 1 つは、sys_vfork がどのようにdo_forkを呼び出しているかを示しています。Dumbfork は sys_vfork に似ている必要があります。do_fork のパラメータを設定する方法がわかりません。sys_fork の実装方法を真似ようとしたところ、NULL ポインター逆参照エラーが発生しました。誰でもこの問題について教えてもらえますか。
asmlinkage long sys_dumbfork(struct pt_regs *regs)
{
return do_fork(SIGCHLD, regs->sp, regs, 0, NULL, NULL);
}