他の質問を見ています(https://stackoverflow.com/q/47845/537980)、各プロセスの作成時に他のオペレーティングシステムで実行する必要がある設定がどれだけ多いかについての回答を見ました。
知りたいです。設定してから(一度フォーク)できますか?部分のexecは変数部分をロードしますか?これは交換する必要があるプロセスの一部にすぎません。
部品の具体例は次のとおりです。一部の実行環境をロードしてから、execを使用してローダーを交換しようとしますが、環境は交換しないようにします。したがって、これが置き換えられることを制御します(execがすべてを置き換えないことを知っています(たとえば、ファイル記述子テーブルのCOWを保持します))。
私はこれがおそらく実際には使用されておらず、多くのUnixでは比較的安価であることを知っていfork
ますexec
。
答え1
テストされていないアイデアに対する答えの一部です。
名前でファイルを開くと、exec
まだファイルへのハンドルがありますmmap
。
答え2
もちろん、「部分実行」を実行できます。
mmap(PROT_EXEC)
別のファイルからアドレス空間にページを移動して、そのファイルに移動できます。 「部分実行」。 execがユーザースペースで実行するすべての操作をコピーできるかどうかはわかりませんが、ほとんどは確実にコピーできます。
——@pizdelect コメントから抜粋