プロセスを fork() すると、カーネル内で do_fork() が呼び出され、それ自体の正確なコピーが作成されます。本を読んでみると、fork の子が exec を呼び出して新しいプロセスを作成すると書かれています。
例:
シェルで ls コマンドを実行すると、この方法で作成されます。
sh(Parent)
|
sh(Child)
|
ls(New Process)
しかし、私は exec*() がどこでどのように呼び出されるのか理解できませんか? なぜなら、私が見ることができるのは、シェル(子)がフォークで作成されたものだからです。しかし、いつ、どこで新しいプロセスが作成/実行されるのでしょうか?