Login
Login-Name Passwort


 
Newsletter
Werbung

Do, 25. August 2005, 23:47

Software::Distributionen::BSD::OpenBSD

Neues Speichermanagement in OpenBSD 3.8

Theo de Raadt, Gründer des OpenBSD-Projekts, hat für das kommende 3.8-Release ein grundlegend überarbeitetes Speichermanagement angekündigt.
Von ThomasS

In einer Mail erläutert de Raadt, dass man nach jahrelanger Arbeit das Speichermanagement von OpenBSD erneuert habe. Zu den grundlegenden Neuerungen zählt er eine überarbeitete mmap-Funktion, die Objekte und Gerätedateien (Devices) in den Speicher mappt. Ein Systemaufruf der veränderten Funktion liefert nun anders als bisher eine zufällige Speicheradresse zurück. Dabei wurde Wert darauf gelegt, dass mmap z.B. zwei Objekte nicht in nahe beieinander liegenden Speichersegmenten mappt. Im Endeffekt schafft dies nicht-allozierte Speicherbereiche, die de Raadt als "guard pages" bezeichnet. Als Hintergrund für diese Änderungen beschreibt de Raadt die jahrelangen, vergeblichen Bemühungen so genannte Bufferoverflow-Lücken zu finden und zu schließen. Als Beispiel für diese Beobachtung führt er kürzlich gefundene Fehler in Programmen an, die vor dem Start versuchen, auf temporären Speicher außerhalb definierter Speichergrenzen zuzugreifen. Mit den angekündigten Neuerungen werden sich solche Programme zukünftig mit einem SIGSEGV-Signal beenden.

Ein Update erfährt auch die malloc-Funktion, die über mmap für die Anforderung und Freigabe von Speicherbereichen zuständig ist. De Raadt erhofft sich, mit der neuen Version von malloc schlecht programmierte Software aufspüren zu können: "Wir erwarten, dass malloc weitere Bugs in Software finden wird, dies könnte unserer Nutzergemeinde für einen kurzen Zeitraum missfallen." In seinen weiteren Ausführungen macht er deutlich, dass diese Unannehmlichkeiten nicht primär mit den Änderungen des Speichermanagements zu tun haben. Vielmehr hält er dies für eine Konsequenz nachlässig programmierter Open-Source-Software, die immer wieder zu finden sei. Überarbeitet wurde außerdem auch die free-Funktion, die nun von Prozessen freigegebenen Speicher sofort an den Kernel zurück gibt. Weitere zusätzliche Neuerungen deutet er nur an, sie sind allerdings nicht standardmäßig aktiviert, da diese für "normale Software" zu gefährlich oder mit deutlichen Performance-Einbußen verbunden seien.

In seinem Aufruf an die Beta-Tester bittet er um Mithilfe, solche Programme zu identifizieren und umschreiben zu können. Dies sei, so de Raadt weiter, keineswegs nur nützlich für das OpenBSD-Projekt, sondern ein wertvoller Dienst für die gesamte Open-Source-Gemeinschaft.

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