Linux Kernel 5.5 最終消除了支持sysctl系統(tǒng)調(diào)用的代碼,該代碼已被棄用了大約十年,目前對(duì)任何體系結(jié)構(gòu)的現(xiàn)代系統(tǒng)都沒(méi)有影響。
長(zhǎng)期以來(lái),Linux sysctl系統(tǒng)調(diào)用都不建議被使用,也不建議將其與通過(guò)/proc/sys公開(kāi)的sysctl接口一起使用,這是讀取/設(shè)置內(nèi)核系統(tǒng)屬性的首選方法。 Linux Kernel 5.5的更改并未涉及/proc/sys支持,而只是將要把多年以來(lái)一直未使用的Linux上帶有sysctl二進(jìn)制接口的系統(tǒng)調(diào)用刪除。
Linux內(nèi)核團(tuán)隊(duì)在郵件中表示,據(jù)了解,應(yīng)該已經(jīng)沒(méi)有人啟用sysctl系統(tǒng)調(diào)用了,不排除仍然有人在少數(shù)defconfigs中啟用它,不過(guò)這種情形也非常少見(jiàn)。如果有任何用戶(hù)想要這個(gè)系統(tǒng)調(diào)用,他們可能需要還原補(bǔ)丁。
其實(shí)早在2011年,他們就想刪除代碼,但因需要保持兼容性,無(wú)法完全刪除。那時(shí),剩下的代碼是為了與舊的C庫(kù)兼容,但是現(xiàn)在構(gòu)建Linux 5.5的任何人都不想運(yùn)行超級(jí)老式的libc。
Eric W. Biederman 寫(xiě)了刪除了該系統(tǒng)調(diào)用的補(bǔ)丁,他提到此前“linux-next中有一個(gè)新的xtensa defconfig,它使系統(tǒng)可以調(diào)用此循環(huán),但代碼維護(hù)者回答說(shuō)并非有意啟用的。” 從今天的linux-next樹(shù)開(kāi)始,defconfig不再啟用系統(tǒng)調(diào)用。