Login
Newsletter
Werbung

Do, 28. November 2019, 12:20

Software::Kernel

Linux 5.5 entfernt sysctl-Systemaufruf

Der bereits seit zehn Jahren obsolete Systemaufruf sysctl soll in Linux 5.5 endgültig entfernt werden. Nach Einschätzung der Kernel-Entwickler gibt es keine Anwendungen mehr, die den Aufruf verwenden. Sollte sich das als falsch herausstellen, würde sysctl allerdings im Kernel verbleiben.

Larry Ewing

sysctl, deklariert als _sysctl, ist ein historischer Systemaufruf, der in 4.4BSD vorhanden war und in Linux mit identischer Syntax implementiert wurde. Portabel war dieser Aufruf dennoch nicht, da die Werte der Argumente des Aufrufs auf den verschiedenen Systemen unterschiedlich waren. Auch bei den Kernel-Entwicklern war der Aufruf unbeliebt, da er viele Definitionen erforderte und viele verschiedene Dinge tat, somit komplex und fehlerträchtig war. So warnt die Manpage von sysctl bereits seit langer Zeit, dass dieser Aufruf nicht verwendet werden sollte. Als Alternative steht das direkte Lesen und Schreiben von Werten im Verzeichnis /proc/sys im virtuellen proc-Dateisystem zur Verfügung.

Schon vor 2010 hatten die Entwickler den Systemaufruf optional gemacht. Benutzer und Distributoren mussten in der Kernel-Konfiguration eine eigene Option aktivieren, um den Systemaufruf zu erhalten, andernfalls wurde er erst gar nicht compiliert. Anfangs war er standardmäßig noch eingeschaltet. Vor acht Jahren war der Aufruf dann weitgehend außer Gebrauch und aus glibc war er entfernt worden. Doch mit Rücksicht auf die Kompatibilität mit älteren libc-Versionen und Anwendungen konnte er noch nicht ganz abgeschafft werden. Denn schon damals galt die eherne Regel, dass Änderungen im Kernel keine Regressionen bei Anwendungen verursachen dürfen. Ein Patch von Wang Cong änderte vor gut acht Jahren die Standardeinstellung für sysctl von »Y« auf »N». Aufrufe von _sysctl schreiben eine Warnung ins Kernel-Log.

Nach Einschätzung von Eric Biederman kann sysctl nun endgültig entfernt werden. Es seien ihm keine Benutzer mehr bekannt. Einige Standardkonfigurationen hatten sysctl immer noch aktiviert, was laut Biederman allerdings lediglich durch Kopieren früherer Konfigurationen ohne Nachdenken verursacht war. Daher entfernt sein Patch den Systemaufruf komplett und lässt nur die Kernel-Warnung bestehen. Sollte in den nächsten Wochen ein Problem damit auftauchen, würde der Patch rückgängig gemacht. Das ist aber ziemlich unwahrscheinlich. Das Programm sysctl, das es wie der Systemaufruf ermöglicht, die Dateien in /proc/sys zu lesen und zu ändern, bleibt unverändert bestehen, so dass sich für die Anwender nichts ändert.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung