Login
Newsletter
Werbung

Do, 19. Mai 2016, 09:33

Software::Kernel

GNU Hurd 0.8 erschienen

Das GNU-Projekt hat Version 0.8 des freien Unix-ähnlichen Kernels Hurd freigegeben. Er läuft auf dem Microkernel GNU Mach, der gleichzeitig in Version 1.7 erschienen ist.

Gnu Hurd

Hurd ist der offizielle Kernel von GNU und besteht aus einer Sammlung von Servern, die auf dem Microkernel GNU/Mach laufen und Dateisysteme, Netzprotokolle, Zugriffskontrolle und alle anderen Features Unix-ähnlicher Kernel implementieren. Die Entwicklung begann 1990, also kurz vor der von Linux, durch eine Entwicklergruppe der Free Software Foundation (FSF), wurde aber bald zugunsten der Verwendung von Linux eingeschränkt. So wurde Hurd erst lange nach Linux in der Praxis benutzbar, und auch das nur bedingt. GNU/Hurd-Distributionen gibt es unter anderem von Debian und Arch Linux (ArchHurd).

Die Entwicklung von Hurd hat sich nach teilweise jahrelanger Stagnation auf einen halbjährlichen Veröffentlichungszyklus eingestimmt. So wurde jetzt sechs Monate nach Hurd 0.7 eine neue Version veröffentlicht. Hurd 0.8 läuft nur auf 32 Bit x86-Systemen, die Portierung auf 64 Bit ist weiterhin in Arbeit.

In der neuen Version wurde die netfs-Bibliothek geändert, so dass sie Referenzzähler ohne Sperren verwendet. Die globale Sperre für Referenzzähler konnte entfernt werden. Die Integer-Hashing-Bibliothek wurde um Funktionen erweitert, mit denen sie Schlüssel verwenden kann, die keine Zahlen sind. Sie wird nun in den Node-Caches von libdiskfs und nfs sowie im ftpfs-Translator verwendet.

Das native fakeroot-Programm wurde von einigen Fehlern befreit. Neu sind der devnode-Translator und die Bibliothek hurd-slab. Daneben gab es zahlreiche weitere Code-Verbesserungen, Korrekturen und eine Anpassung an neuere Compiler- und libc-Versionen.

Hurd fußt nun auf der neuen Version 1.7 des Microkernels GNU Mach. GNU Mach ist ein Fork des ursprünglichen Mach-Kernels, der nach Angaben des Projekts immer noch kompatibel mit Mach 3.0 ist, dabei aber äußerst robust und skalierbar. Auch Mach wurde an neuere Compiler- und libc-Versionen angepasst und von vielen Fehlern befreit. Der Code verwendet jetzt die Ganzzahltypen von stdint.h statt der eigenen alten Typen. Es gab eine Änderung in der Cache-Strategie des virtuellen Speichers, nach der unreferenzierte Objekte unbegrenzt gespeichert werden (bis neuere Objekte den Platz benötigen).

Der Allokator für physische Seiten des X15-Kernels wurde übernommen und wird nun vom Slab-Allokator direkt verwendet. Das vergrößert den Kernel-Heap-Speicher und löst drängende Skalierungsprobleme. Neu ist auch der Synchronisationsmechanismus gsync, der den Futexes von Linux ähnelt. Damit wird eine effiziente und leistungsfähige Synchronisation von Anwenderprozessen möglich. Auch die Möglichkeit, ein Profil des Kernel-Codes mit Hilfe von normalen Programmen durch Sampling zu erstellen, ist neu.

Zu GNU Mach gehört auch der Mach 3.0 Interface Generator (MIG), der ebenfalls in einer neuen Version 1.7 freigegeben wurde. MIG übersetzt Definitionen für Remote Procedure Calls (RPCs) in C-Code und ist damit ein wichtiges Hilfsmittel für die Interprozesskommunikation in Hurd. In dieser Version wurde eine Testsuite hinzugefügt. Der generierte Code verwendet jetzt die Ganzzahltypen von stdint.h statt der alten Mach-Typen. Code, der die Wortgröße fest definierte, wurde flexibler gemacht. Objekte, die von Capabilities stammen, erhielten einen Typecast auf den korrekten C-Typ. Die Unterstützung für die obsoleten Arten »functions«, »procedures« und »simple procedures« von RPC-Routinen wurde dagegen entfernt.

Die C-Bibliothek blieb auf den Stand von glibc 2.19, wurde aber weiter verbessert und um libpthread ergänzt. Im Gegensatz zu glibc für Unix-ähnliche Systeme, bei denen Funktionen, die Systemaufrufe darstellen, oftmals fast direkt ans System durchgereicht werden, werden diese Aufrufe unter Hurd in die entsprechenden IPC-Protokolle umgesetzt.

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