UNIXプロセスの作成における親子関係がよくわかりました。しかし、その背後にある理論的根拠がわかりません:(現在のプロセスからフォークして新しいプロセスを作成し、そのイメージを新しいコードで上書きする必要があるのはなぜですか?乾杯
質問する
1484 次
1 に答える
1
理論的根拠は、UNIXシステムコールは(少なくとも元々は)カーネルによって実行される「基本的な」操作であるということです。
実際には、アプリケーションはしばしばfork(2)とexecve(2 )の間でいくつかの特定のことを行います。特に、close(2)とdup2(2)の呼び出し、またsigaction(2)を実行して、いくつかの信号を無視します(おそらくいくつかのpipe(2 ) ) syscallsはfork
)の前に実行されます。
一度にこれらすべてを処理する単一のシステムコールが必要な場合、それは非常に複雑で、柔軟性が低くなります。
intro(2)に加えて、Advanced Linux Programming(無料でオンライン)やAdvancedUnixProgrammingのような本を読むことをお勧めします。
それどころか、プロセスの作成とプログラムの実行を分離する意図は非常に自然だと思います。なぜ両方の操作を組み合わせたいのかよくわかりません。
システムコールに関するこの私の回答も参照してください。
于 2013-02-16T13:09:29.967 に答える