Linuxでのプロセス作成の流れをたどろうとしています。これまで、printk
Linuxカーネルでのpidの割り当てを理解するために、いくつかのデバッグを行いました。ただし、PIDが作成(または実行)されるときに、PIDをバイナリにマップしたいと思います。
Linuxがプロセスを作成する方法は、initをフォークしてから、execを実行するか、initから直接execを実行することです。
comm
新しいフィールドがいつどこでtask_struct
埋められているかを追跡しようとしています。このcomm
フィールドには、実行中のバイナリが格納されます。これまでのところ、comm
フィールドを印刷しようとしても(関数中context_switch
を除く)、すべてのプロセスは常に名前を次のように表示します。khelper
関数のデバッグを広範囲に試みましたが、フィールドdo_execve
の変更に関連するコードが含まれていないようです。comm
comm
フィールドが割り当てられている場所と時期を誰かが指摘できますか