2013-08-21 1 views
0

Sous Linux, 'syscall' clone() 'est utilisé pour créer des processus/threads.Quel syscall est utilisé pour la création d'un nouveau processus/thread sur OpenBSD-5.3

Sur OpenBSD-5.3 en utilisant ktrace/kdump, j'ai déterminé que pour la création de processus 'vfork()' syscall est utilisé, et pour la création de thread - 'tfork()'.

J'ai deux questions:

  1. ma déclaration correcte?

  2. Est-ce que 'vfork()' et 'tfork()' ne devraient pas utiliser un seul appel système comme 'clone()'?

+0

Il devrait y avoir un appel système 'fork()', probablement différent de 'vfork()'. 'vfork()' est une version possiblement restreinte de 'fork()', destinée à être utilisée uniquement si vous appelez instantanément 'execve()' ou '_exit()'. Sur les systèmes d'exploitation qui ont été portés sur des plates-formes MMU, il est définitivement différent de 'fork()'. – ninjalj

Répondre

0

Je n'ai pas entendu parler de clone(), mais je voudrais utiliser fork(2) pour créer un nouveau processus et pthread_create(3) pour créer un nouveau fil. Ce sont portables.

+0

'pthread_create()' est une fonction de bibliothèque, pas un appel système. – ninjalj

+0

Oui, c'est le cas. Je ne sais pas si cela compte pour OP. –

Questions connexes