
Linux では、「init」を作成するようにプロセスを最初から作成するのではなく、分岐の方法で「フォーク」を作成するのはなぜですか?
答え1
プロセスの大部分は、コンテキスト (開いているファイル、現在のディレクトリ、環境変数など) を共有する連携セットの一部として作成され、新しいプロセスのコンテキストの調整は、そのプロセスが作成された目的に非常に特化しているため、親プロセスを双子にして、新しいプロセスで実行されているコードに必要な変更を加えてからexecve
次の処理を実行するのが最も簡単です。
クリーンスレートプロセスはごく少数派例外、ルールではありません。