Linux Kernel 5.5 最終刪除SYSCTL 系統調用
Linux Kernel 5.5 最終消除了支持sysctl 系統調用的代碼,該代碼已被棄用了大約十年,目前對任何體系結構的現代系統都沒有影響。長期以來,Linux sysctl 系統調用都不建議被使用,也不建議將其與通過/proc/sys 公開的sysctl 接口一起使用,這是讀取/設置內核系統屬性的首選方法。
Linux Kernel 5.5 的更改並未涉及/proc/sys 支持,而只是將要把多年以來一直未使用的Linux 上帶有sysctl 二進制接口的系統調用刪除。
Linux內核團隊在郵件中表示,據了解,應該已經沒有人啟用sysctl系統調用了,不排除仍然有人在少數defconfigs中啟用它,不過這種情形也非常少見。如果有任何用戶想要這個系統調用,他們可能需要還原補丁。
其實早在2011 年,他們就想刪除代碼,但因需要保持兼容性,無法完全刪除。那時,剩下的代碼是為了與舊的C 庫兼容,但是現在構建Linux 5.5 的任何人都不想運行超級老式的libc。
Eric W. Biederman 寫了刪除了該系統調用的補丁,他提到此前“linux-next 中有一個新的xtensa defconfig,它使系統可以調用此循環,但代碼維護者回答說並非有意啟用的。”從今天的linux-next 樹開始,defconfig 不再啟用系統調用。
消息來源:phoronix