すべてのオペレーティングシステムは、同じモデルを使用して新しいプロセスを作成します。親はそれ自身をフォークし、次にexecはその子です。しかし、なぜこのモデルは圧倒的に人気がありますか?OSで新しいプロセスを作成するのにfork + execが使用されるのはなぜですか?
一般的なfork + execモデルでは、OSはプロセス空間全体のコピーを作成する必要があります(いくつかの最適化はコピーオンライトなどで行われます)。そしてexecが完了すると、新しいプログラムのコードと残りのメタデータと共にデータ/スタックを設定する必要があります。
OSに直接呼び出すことができ、システムコールexec_new()があるとすれば、2つのシステムコールを必要とせずに上記と同じことができます。所有者は引き続き同じUIDになります。なぜこれはしないのですか? fork + execモデルは私たちに何を与えるのですか?