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不再啟用系統調用。