実装されていないシステムコールとは何ですか?

実装されていないシステムコールとは何ですか?

Linuxシステムコールを修正しています。私はいくつかの呼び出しが実装されていないシステム呼び出しであることを発見しました。たとえば、システムコール。まだ利用できませんが、なぜマニュアルページに含まれているのか理解できません。

  1. カーネルでは実装されません。それでは、誰がこれを実施するのでしょうか。将来のカーネルリリースで使用できますか?または、ユーザーはそれを実装する必要がありますか?それともディストリビューションでこれを実装しますか?

  2. 本当に必要ですか?実装されていないシステムコールの用途は何ですか?

  3. 誰かがこれらの呼び出しを実装している場合は、それがどのように実装されたのかを知り、どのパラメータを渡す必要があり、何を返しますか?

答え1

これらの多くはLinuxカーネルの歴史のある時点で実装されていますが、少なくとも一部はまだ特定のカーネルvserverで実装されています。

これらの呼び出しのほとんどは本質的に使用されなくなりましたが、そのスロットはまだ存在し、古いコードを損なうことなく、必要に応じて専用カーネルまたは新しいカーネルで再実装を許可することを目的としたスタブを含みます。

答え2

マニュアルページには3つの理由があります。

   Note that ftime(3), profil(3), and ulimit(3) are implemented as
   library functions.

   Some system calls, like alloc_hugepages(2), free_hugepages(2),
   ioperm(2), iopl(2), and vm86(2) exist only on certain architectures.

   Some system calls, like ipc(2), create_module(2), init_module(2), and
   delete_module(2) exist only when the Linux kernel was built with
   support for them.

関連情報