Die GNU-C-Bibliothek in Version 2.9
Code-Bücherei
von Mathias Huber
Erschienen im Linux-Magazin
2009/03
Eine Bibliothek erspart es dem Programmierer, das Rad ständig neu zu erfinden. Daneben kann sie aber auch Anwendungen beschleunigen und den Entwickler vor gefährlichen Fehlern bewahren. Eine Vorstellung der Neuerungen in Version 2.9 der GNU C-Bibliothek.
Große Entwicklungssprünge sind von der neuen Version 2.9 der Glibc ([1], [2]) nicht zu erwarten, schließlich soll sie ja stabile Schnittstellen garantieren. Aber als Bibliothek, gegen die der Großteil der Programme auf einer typischen Linux-Installation gelinkt ist, übt sie erheblichen Einfluss auf Performance und Sicherheit des Systems aus. Die Library-Entwickler haben auch bei der jüngsten Ausgabe der freien C-Bibliothek vom November 2008 an einigen Stellschräubchen gedreht, um die Code-Bibliothek zu optimieren. Erste Linux-Distributionen nutzen die neue Release bereits im Produktiveinsatz.
Wer steckt dahinter?
Maintainer und Hauptentwickler der Glibc ist derzeit Ulrich Drepper. Der deutsche Informatiker lebt in Kalifornien und arbeitet dort beim Linux-Distributor Red Hat. Über die Bibliothek entscheidet er nicht allein: Politisch wichtige Entscheidungen trifft das GNU C Library Steering Committee, dem unter anderem die Suse-Mitarbeiter Andreas Jaeger und Andreas Schwab, der Red-Hat-Mann Jakub Jelinek sowie der Original-Autor der Bibliothek, Roland McGrath, angehören.
Die Weiterentwicklung umfasst beispielsweise Security-Features. Die Verantwortung für die Sicherheit einer Anwendung liegt zwar zunächst bei deren Entwickler, doch Ulrich Drepper ist überzeugt, die verwendete Bibliothek müsse nach Kräften mithelfen. "Bei Library-Code muss man einfach auf Nummer sicher gehen", schreibt er in seinem Blog [3]. "Das bedeutet zwar eine Menge Arbeit, aber die muss einfach gemacht werden."
Release 2.9 bringt neben Bugfixes ein Security-relevantes Detail: Viele Funktionen und Systemaufrufe verwenden nun das Close-on-Exec-Flag, wenn sie einen Dateideskriptor öffnen. Warum das relevant ist, erläutert Drepper in folgendem Beispielszenario: Ein Webbrowser hat in einem Tab eine Internetbanking-Seite geöffnet, in einem anderen lädt er eine beliebige Seite, die ein Flash-Objekt enthält. Um das Objekt anzuzeigen, startet der Browser per »fork()« und »exec()« einen Plugin-Prozess. Dieser erbt vom Browserprozess alle offenen Dateideskriptoren, sofern diese nicht mit Close-on-Exec markiert sind.
Böswillig konstruierte Flash-Inhalte dürften so vertrauliche Informationen aus den vom Elternprozess geöffneten Dateien lesen, also etwa aus dem Onlinebanking-Tab des Browsers. Solche Informationslecks könnte der Programmierer durch Schließen der Filedeskriptoren vor dem Aufruf von »exec(«) verhüten - er vergisst aber vielleicht, dies zu erledigen. Gut, wenn bereits beim Öffnen der Deskriptoren das Flag zum automatischen Schließen gesetzt ist, und noch besser, wenn die Bibliothek dabei hilft.
Kernel-Schnittstellen
Um diese Security-Verbesserung auch bei Systemaufrufen zu nutzen, die Programme an den Linux-Kernel absetzen, hat Ulrich Drepper Patches auf der Kernel-Mailingliste eingereicht. Sie schaffen neue Systemaufruf-Varianten wie »dup3()«, »pip2()« »epoll_create1()« und »inotify_init1()«. Diese unterscheiden sich von ihren Namensbrüdern ohne Numeral darin, dass sie als zusätzlichen Parameter das Close-on-Exec-Flag aufnehmen. Dem Systemaufruf »popen()« zum Öffnen von Pipes verpasste der Entwickler zu diesem Zweck den Modus »e«.
Die Änderungen gingen in Kernel 2.6.27 ein, Glibc 2.9 unterstützt selbstverständlich die neuen Linux-Schnittstellen. Diese Kombination aus Kernel und passender C-Bibliothek ist die Basis für Red Hats und Novells jüngsten Community-Distributionen: Fedora 10 erschien nur wenige Tage nach der neuen Library-Version im November 2008, Open Suse 11.1 (Abbildung 1) etwa vier Wochen später.

|
Abbildung 1: Open Suse 11.1 gehört zu den ersten Distributionen, die die Glibc-Version 2.9 als C-Bibliothek verwenden. So kommt sie auch in den Genuss der neu geschaffenen Kernel-Schnittstellen.
|
| Whitepaper |
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele
Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|