引言
在 Linux 內核中,網絡通信和進程間交互(IPC)的核心數據結構之一是 struct sock
(即 socket)。其生命周期管理涉及復雜的資源分配與釋放邏輯。本文聚焦于 security_sk_free
這一函數,探討其作用、調用場景以及與安全模塊的交互機制,并解答一個常見疑問:在單機間 TCP 傳輸時,內核是否真的需要調用此函數?
一、security_sk_free
的功能解析
security_sk_free
是 Linux 安全框架(LSM, Linux Security Module)的核心接口之一,其定義如下:
void security_sk_free(struct sock *sk) {call_void_hook(sk_free_security, sk); }
-
核心邏輯
-
call_void_hook
是一個宏,用于遍歷所有已注冊的安全模塊(如 SELinux、AppArmor、Smack 等),并依次調用它們實現的sk_free_security
鉤子函數。
-