O que são chamadas de sistema não implementadas?

2

Eu estava revisando as chamadas do sistema Linux. Descobri que algumas chamadas são chamadas do sistema não implementadas. Por exemplo: afs_syscall . Não entendo por que eles estão incluídos nas man pages, se ainda não estiverem disponíveis.

  1. Eles não estão implementados no kernel. Então, quem irá implementá-los? Eles estarão disponíveis em versões futuras do kernel? Ou o usuário precisa implementá-las? Ou as distribuições irão implementá-las?

  2. Eles são realmente necessários? Qual é o uso de chamadas do sistema não implementadas?

  3. Se alguém implementou essas chamadas, como posso saber se elas foram implementadas, que argumentos eu tenho que passar e o que eles retornarão?

por gangadhars 08.04.2015 / 09:08

2 respostas

2

A maioria deles foi implementada em algum momento do histórico do kernel do Linux, mas alguns como vserver ainda estão implementados em kernels específicos.

A maioria dessas chamadas agora é essencialmente obsoleta, mas seu espaço permanece e contém um stub cujo papel não é quebrar o código antigo e permitir uma reimplementação em um kernel especializado ou novo, caso seja necessário.

    
por 08.04.2015 / 09:37
0

A página de manual apresenta três motivos.

   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.
    
por 08.04.2015 / 11:56