0

pid0とcomm"swapper/ 0"を持つタスクインスタンスがある場合、所有者pidを取得する方法は?

==編集==

これは、Netfilterフックを使用して発生します。

4

2 に答える 2

0

オペレーティングシステムUnixでは、別のプロセスがfork()システムコールを実行すると、プロセス0(スワッパー)を除くすべてのプロセスが作成されます。forkを呼び出したプロセスは親プロセスであり、新しく作成されたプロセスは子プロセスです。すべてのプロセス(プロセス0を除く)には1つの親プロセスがありますが、多くの子プロセスを持つことができます。

オペレーティングシステムカーネルは、プロセス識別子によって各プロセスを識別します。プロセス0は、システムの起動時に作成される特別なプロセスです。子プロセス(プロセス1)をフォークした後、プロセス0はスワッパープロセス(「アイドルタスク」とも呼ばれます)になります。プロセス1は、initと呼ばれ、システム内の他のすべてのプロセスの祖先です。

于 2013-02-21T19:48:06.323 に答える
0

パケットが UDP の場合、netfilter 発信フック コンテキストのcurrentタスクには常に TGID (ユーザー空間の PID) があります。

SYN TCP パケットの場合、currentタスクには TGID がありますが、ACK パケットにはありません。TGID を取得するには、パケット長を使用して SYN パケットからソケット シーケンスを計算する必要があります。

于 2013-02-27T19:28:39.397 に答える