pid0とcomm"swapper/ 0"を持つタスクインスタンスがある場合、所有者pidを取得する方法は?
==編集==
これは、Netfilterフックを使用して発生します。
オペレーティングシステムUnixでは、別のプロセスがfork()システムコールを実行すると、プロセス0(スワッパー)を除くすべてのプロセスが作成されます。forkを呼び出したプロセスは親プロセスであり、新しく作成されたプロセスは子プロセスです。すべてのプロセス(プロセス0を除く)には1つの親プロセスがありますが、多くの子プロセスを持つことができます。
オペレーティングシステムカーネルは、プロセス識別子によって各プロセスを識別します。プロセス0は、システムの起動時に作成される特別なプロセスです。子プロセス(プロセス1)をフォークした後、プロセス0はスワッパープロセス(「アイドルタスク」とも呼ばれます)になります。プロセス1は、initと呼ばれ、システム内の他のすべてのプロセスの祖先です。
パケットが UDP の場合、netfilter 発信フック コンテキストのcurrent
タスクには常に TGID (ユーザー空間の PID) があります。
SYN TCP パケットの場合、current
タスクには TGID がありますが、ACK パケットにはありません。TGID を取得するには、パケット長を使用して SYN パケットからソケット シーケンスを計算する必要があります。