I was revising Linux system calls. I found that a few calls are unimplemented system calls. For example: afs_syscall. I don't understand why they are included in man pages if they are not yet available.

  1. They are not implemented in the kernel. So who will implement them? Will they be available in future kernel releases? Or does the user have to implement them? Or will distributions implement them?

  2. Are they really necessary? What is the use of unimplemented system calls?

  3. If some one implemented these calls, how can I know they are implemented, what arguments do I have to pass and what will they return?

2 Answers 2


Most of them used to be implemented at some point in Linux kernel history time, but some like at least vserver are still implemented in specific kernels.

The majority of these calls is now essentially obsolete but their slot remains and contains a stub which role is not to break old code and allow a re-implementation in a specialized or new kernel should it be needed.


The manual page gives 3 reasons.

   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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .