Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2009  »  03  »  Code-Bücherei  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

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.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Doppel-Herz Parallelprogrammierung in C++ mit der OMPTL
Surfers Neuer Chromium statt Mozilla Firefox
Projekteküche Aktueller Überblick über freie Software und ihre Macher
Projekteküche Aktueller Überblick über freie Software und ihre Macher
Film ab für Flash Praxisbetrieb, Encoding und Streaming von Flash-Videos unter Linux
Junge Pinguinbande Linux Tools für Eclipse
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)
Kommentare (0)