Tannenbaum の MINIX に関する本の中で、私は単純化されたシェル プログラムに出くわしました。
while(1) {
read_command(command, parameters);
if (fork() != 0)
wait(&status); /* parent code */
}
else {
execve(command, parameters, 0); /* child code */
}
}
無限ループが最初の反復を実行すると、fork() は子プロセスを作成したことを示す 0 を返します。2 回目の実行では、fork() は新しい子プロセスを作成しませんか? wait(&status) はどのように実行されますか?
OS がどのように機能するか、またはどのように構築されるかを理解するのは初めてです。
ありがとう!