2011-09-27 12 views
0

私はプロセス番号&を探しています。これはMacで新しいプロセスをすべて起動するシステムコールです。 私はそれがCreateProcess()のようなもので、新しく作成されたプロセスのプロセスIDを返すと信じています(これは推測です)新しいアプリケーションはどのようにMacで起動しますか?

私は新しいアプリケーションを起動するフローのような内部の詳細に興味があります。

何か助けていただければ幸いです。世話をするための参考文献さえも役立つかもしれません。

答えて

0

通常、Mac OS XではLaunchDはすべてのプロセスの親です。そこで、LaunchDはそれらを起動します。どうやって??最初はfork()、次にposix_spawn()です。

1

OS XはさまざまなUnixです。新しいプロセスはfork()システムコールで作成されます。これにより、呼び出しを行うプロセスとほぼ同じコピーが作成されます(違いは、子プロセスでforkが0、親プロセスが子プロセスのPIDを返すことです)。次に、子プロセス内のexec()システムコールの1つを使用して、その子プロセスを異なる実行可能プログラムを実行するプロセスに変換します。

編集

質問は[ココア]タグ付けされているので、私は上記をラップNSTaskと呼ばれるココアのクラスがあります言及する必要があります。

+0

プロセスが分岐して実行するアイディアがありますか? – MacGeek

+0

@MachinTosh:どのプロセスもfork/execを実行できます。 – JeremyP

+0

私は、どのプロセスもfork/execできることを理解しています。しかし、私はドック、ターミナル、アイチューンのようなすべてのアプリケーションの共通点を見つけ出すことに興味がありますか?どちらのプロセスフォーク&それらを起動しますか? – MacGeek

関連する問題