2013-08-21 2 views
0

В Linux, syscall для clone() используется для создания процессов/потоков.Какой сценарий используется для создания нового процесса/потока на OpenBSD-5.3

В OpenBSD-5.3 с использованием ktrace/kdump я определил, что для создания процесса используется «sshall» vfork(), а для создания потоков - «tfork()».

У меня есть два вопроса:

  1. Является ли мое заявление правильно?

  2. Не следует ли 'vfork()' и 'tfork()' наконец использовать один системный вызов типа 'clone()'?

+0

Должен быть 'syscall' fork(), возможно, отличный от 'vfork()'. 'vfork()' - возможно ограниченная версия 'fork()', предназначенная для использования, только если вы сразу вызываете 'execve()' или '_exit()'. На ОС, которые были перенесены на! MMU-платформы, он определенно отличается от 'fork()'. – ninjalj

ответ

0

Я не слышал клон(), но я хотел бы использовать fork(2), чтобы создать новый процесс и pthread_create(3), чтобы создать новую тему. Они переносимы.

+0

'pthread_create()' является библиотечной функцией, а не системным вызовом. – ninjalj

+0

Да, это так. Не уверен, что это имеет значение для OP. –