GNU Hurd

GNU Hurd (gewöhnlich gekennzeichnet als der Hurd) ist ein Computer Betriebssystemkern entworfen als ein Ersatz für Unix, befreit als kostenlose Software laut der GNU-Lizenz der Breiten Öffentlichkeit. Es ist unter der Entwicklung seit 1990 durch das GNU-Projekt der Organisation zur Förderung freier Software gewesen.

GNU-Hurd besteht aus einer Reihe von Protokollen und Server-Prozessen (oder Dämonen, in der Fachsprache von Unix), die auf dem GNU-Mach-Mikrokern laufen; zusammen sind sie beabsichtigt, um den Kern des GNUS Betriebssystem zu bilden. Der Hurd hat zum Ziel, Unix Betriebssysteme an der Funktionalität, Sicherheit und Stabilität zu übertreffen, während er größtenteils vereinbar mit ihnen bleibt. Das GNU-Projekt hat die Mikrokernarchitektur des Server-Kunden für das Betriebssystem, wegen wahrgenommener Vorteile gegenüber traditionellem Unix monolithische Kernarchitektur gewählt.

Name

HURD ist ein gegenseitig rekursives Akronym, für HIRD eintretend, Dämonen Zu Unix-ersetzen, wo HIRD für HURD von Schnittstellen eintritt, die Tiefe vertreten. Sowohl als sind hurd als auch als hird gerade abwechselnde Rechtschreibungen für die englische Wortherde, das GNU des vollen Namens, das Hurd auch ein Spiel auf der Wortherde von Gnus ist, widerspiegelnd, wie der Kern arbeitet.

Entwicklungsgeschichte

Die Entwicklung auf dem GNU, das Betriebssystem 1984 begonnen hat und am Anfang gute Fortschritte gemacht hat. Freie GNU-Werkzeuge haben angefangen, einen guten Ruf zu erwerben, und wurden häufig in der Bevorzugung vor von Systemverkäufern zur Verfügung gestellten Eigentumswerkzeugen angenommen. Bis zum Anfang der 1990er Jahre war der einzige Hauptteilvermisste der Kern.

Die Entwicklung auf dem Hurd hat 1990 nach einem aufgegebenen Kernversuch 1986, gestützt auf der Forschung TRIX Betriebssystem begonnen, das von Professor Steve Ward und seiner Gruppe am Laboratorium von MIT für die Informatik (LCS) entwickelt ist. Gemäß Thomas Bushnell, die Initiale Architekt von Hurd, war ihr früher Plan, den 4.4BSD-Lite Kern und im Nachhinein anzupassen, "Es ist jetzt mir vollkommen offensichtlich, dass das herrlich erfolgreich gewesen wäre und die Welt ein sehr verschiedener Platz heute sein würde". Jedoch, 1987, wegen eines Mangels an der Zusammenarbeit von den Programmierern von Berkeley, hat Richard Stallman stattdessen vorgehabt, den an der Universität von Carnegie Mellon entwickelten Mach-Mikrokern zu verwenden. Die Arbeit daran wurde seit drei Jahren wegen der Unklarheit verzögert, ob CMU den Mach-Code laut einer passenden Lizenz veröffentlichen würde.

Mit der Ausgabe des Kerns von Linux 1991 ist der primäre Benutzer der userland Bestandteile des GNUS bald Betriebssysteme geworden, die auf dem Kern von Linux (Vertrieb von Linux) gestützt sind, das Münzen des umstrittenen Begriffes GNU/Linux veranlassend.

Die Entwicklung des Hurds ist langsam weitergegangen. Trotz einer optimistischen Ansage von Stallman, 2002 eine Ausgabe von GNU/Hurd später in diesem Jahr voraussagend, wird der Hurd passend für Produktionsumgebungen noch immer nicht betrachtet. Entwicklung hat im Allgemeinen Erwartungen nicht entsprochen, und es gibt noch Programmfehler und fehlende Eigenschaften. Das ist auf ein schlechteres Produkt hinausgelaufen, als viele (einschließlich Stallmans) erwartet hatten. 2010, nach zwanzig Jahren unter der Entwicklung, hat Stallman gesagt, dass er über das GNU Hurd "nicht sehr optimistisch war. Es macht einige Fortschritte, aber wirklich höher zu sein, würde es das Lösen von vielen tiefen Problemen verlangen", aber hat hinzugefügt, dass "das Vollenden davon" für das GNU-System nicht entscheidend ist, weil ein freier Kern bereits in Linux und Vollendung bestanden hat, würde Hurd das restliche Hauptproblem für ein freies Betriebssystem nicht richten: Gerät-Unterstützung.

Das Debian-Projekt, unter anderen, hat am Projekt von Hurd gearbeitet, binären Vertrieb des mit Sitz in Hurd GNUS Betriebssysteme für IBM PC vereinbare Systeme zu erzeugen.

Architektur

Verschieden von den meisten Unix ähnlichen Kernen verwendet der Hurd eine Architektur des Server-Kunden, hat auf einen Mikrokern gebaut, der dafür verantwortlich ist, die grundlegendsten Kerndienstleistungen - das Koordinieren des Zugangs zur Hardware zur Verfügung zu stellen: die Zentraleinheit (durch die Prozesssteuerung und planend), RAM (über das Speichermanagement), und andere verschiedene Geräte des Eingangs/Produktion (über die Eingabe/Ausgabe-Terminplanung) für den Ton, die Grafik, die Massenlagerung usw. In der Theorie würde das Mikrokerndesign alle Gerät-Treiber berücksichtigen, die als Server zu bauen sind, die im Benutzerraum arbeiten, aber heute werden die meisten Treiber dieser Art noch im GNU-Mach-Kernraum enthalten. Das ist, weil, am Anfang, Benutzerraumfahrer unter dem Leistungsverlust wegen der Gemeinkosten der Mach-Zwischenprozess-Kommunikation gelitten hätten. Mit der Leistung von heutigen Maschinen ist es möglich, dass das oben ein bedeutendes Leistungsproblem nicht mehr verursachen würde.

Von bald wurde der Hurd entwickelt, um GNU-Mach als der Mikrokern zu verwenden. Das war eine technische Entscheidung, die von Richard Stallman getroffen ist, der gedacht hat, dass sie die Arbeit durch das Sparen eines großen Teils davon beschleunigen würde. Er hat zugegeben, dass er sich darin geirrt hat. Andere Unix ähnliche Systeme, die am Mach-Mikrokern arbeiten, schließen OSF/1, Lites und MkLinux ein. Mac OS X und NeXTSTEP verwenden hybride auf dem Mach gestützte Kerne.

Versuche anderer Kerne

2007 haben Entwickler von Hurd Neal Walfield und Marcus Brinkmann eine Kritik der Architektur von Hurd gegeben, die als "die Kritik" und ein Vorschlag dafür bekannt ist, wie ein zukünftiges System entworfen, als "das Positionspapier" bekannt werden kann.

Von 2004 wurden vorwärts schreitende, verschiedene Anstrengungen gestartet, um den Hurd zu moderneren Mikrokernen zu tragen. Der L4 Mikrokern war die ursprüngliche Wahl 2004, aber der zu einem Halt verlangsamte Fortschritt. Dennoch, während 2005, hat Entwickler von Hurd Neal Walfield das anfängliche Speicherverwaltungsfachwerk für den L4/Hurd Hafen beendet, und Marcus Brinkmann hat wesentliche Teile von glibc getragen; nämlich, das Prozess-Anlauf-Codearbeiten bekommend, Programmen erlaubend, zu laufen, so den ersten Benutzerprogrammen (triviale wie das hallo Weltprogramm in C) erlaubend, zu laufen.

Seit 2005 haben Brinkmann und Walfield angefangen, Coyotos als ein neuer Kern für HURD zu erforschen. 2006 hat sich Brinkmann mit Jonathan Shapiro (ein primärer Architekt des Coyotos Betriebssystem) getroffen, um zu helfen in und den Gebrauch des Kerns von Coyotos für GNU/Hurd zu besprechen. In der weiteren Diskussion haben HURD Entwickler begriffen, dass Coyotos (sowie andere ähnliche Kerne) für HURD nicht passend sind.

2008 hat Neal Walfield begonnen, am Mikrokern von Viengoos als ein moderner heimischer Kern für HURD zu arbeiten., die Entwicklung auf Viengoos wird wegen Walfields Pause gemacht, der an Zeit Mangel hat, um daran zu arbeiten.

Inzwischen haben andere fortgesetzt, an der Mach-Variante von Hurd zu arbeiten.

Erweiterungen von Unix

Mehrere traditionelle Konzepte von Unix werden ersetzt oder im Hurd erweitert.

Unter Unix hat jedes laufende Programm einen verbundenen Benutzer id, der normalerweise dem Benutzer entspricht, der den Prozess angefangen hat. Dieser id diktiert größtenteils die dem Programm erlaubten Handlungen. Kein Außenprozess kann den Benutzer id eines laufenden Programms ändern. Ein Prozess von Hurd läuft andererseits unter einer Reihe des Benutzers ids, der vielfachen ids, ein, oder niemand enthalten kann. Ein genug privilegierter Prozess kann hinzufügen und ids zu einem anderen Prozess entfernen. Zum Beispiel gibt es einen Kennwort-Server, der ids als Gegenleistung für ein richtiges Anmeldungskennwort austeilen wird.

Bezüglich des Dateisystems kann ein passendes Programm als ein Übersetzer für eine einzelne Datei oder eine ganze Verzeichnishierarchie benannt werden. Jeder Zugang zur übersetzten Datei oder Dateien unter einer Hierarchie im zweiten Fall, wird tatsächlich durch das Programm behandelt. Zum Beispiel kann ein Dateiübersetzer einfach gelesen umadressieren und Operationen einer anderen Datei schreiben, nicht verschieden von Unix symbolische Verbindung. Die Wirkung von steigendem Unix wird durch die Aufstellung eines filesystem Übersetzers erreicht (den "Settrans"-Befehl verwendend). Übersetzer können auch verwendet werden, um Dienstleistungen dem Benutzer zur Verfügung zu stellen. Zum Beispiel erlaubt der ftpfs Übersetzer einem Benutzer, entfernte FTP Seiten innerhalb eines Verzeichnisses kurz zusammenzufassen. Dann können Standardwerkzeuge wie ls, Bedienungsfeld und rm verwendet werden, um Dateien auf dem entfernten System zu manipulieren. Noch mächtigere Übersetzer sind wie UnionFS, der einem Benutzer erlaubt, vielfache Verzeichnisse in eines zu vereinigen; so offenbart die Auflistung des vereinigten Verzeichnisses den Inhalt aller Verzeichnisse (eine Eigenschaft, die in vielem Uneis, obwohl verfügbar, in modernem BSDs vermisst wird).

Der Hurd verlangt einen mehrstiefelentgegenkommenden Stiefellader wie MADE.

Architektur der Server

Gemäß der Dokumentation von Debian gibt es 24 Server (18 Kernserver und 6 Dateisystemserver) genannt wie folgt:

Kernserver

  • auth (Beglaubigungsserver): Erhält Bitten und Kennwörter aus Programmen und gibt ihnen einen Personalausweis, der die Vorzüge des Programms ändert.
  • Unfall (zertrümmern Server): Griffe alle tödlichen Fehler.
  • exec (Ausführungsserver): Übersetzt ein rechtskräftiges Image (zurzeit ELF und a.out werden unterstützt) zu einem runnable Image im Gedächtnis.
  • fifo (FIFO Übersetzer): Werkzeuge haben Pfeifen genannt.
  • neu-fifo (neuer FIFO Server): Ein abwechselnder Server für genannte Pfeifen.
  • firmlink (der firmlink Übersetzer): Werkzeuge firmlinks  "halbwegs zwischen einer symbolischen Verbindung und einer harten Verbindung".
  • fwd (schicken Server nach): Vorwärts Bitten zu anderen Servern, die durch fifo und symlink Server verwendet sind.
  • hostmux (veranstalten multiplexer Server)
  • ifsock (Server für die Steckdose-Schnittstelle): Hilft mit UNIX Bereichssteckdose-Adressen.
  • init (init Server): Das Grundlegende Systemstarten und die Konfiguration.
  • Magie (magischer Server)
  • ungültig (ungültiger Server): Werkzeuge/dev/null und/dev/zero.
  • pfinet (pfinet Server): Führt die PF_INET Protokoll-Familie durch.
  • pflocal (pflocal Server): Werkzeuge UNIX Bereichssteckdosen.
  • proc (bearbeiten Server): Teilt PIDs zu und führt Handlungen des Prozess-Niveaus.
  • symlink (symbolischer Verbindungsübersetzer): Führt symbolische Verbindungen für filesystems durch, die sie nicht unterstützen.
  • Begriff (Endserver): Ein POSIX Terminal.
  • usermux (Benutzer multiplexer Server): Ruft benutzerspezifische Übersetzer an.

Server von Filesystem

ext2fs

:The ext2 filesystem Übersetzer. Es erhält Plattenblöcke vom Mikrokern und gibt Dateien und Verzeichnisse zu den Anwendungen.

isofs

:The-Übersetzer für den ISO 9660 filesystem. Übersetzt Blöcke einer CD oder DVD zu Dateien und Verzeichnissen für die Anwendungen.

nfs

:See-Netzdateisystem.

ufs

:Translator für den BSD filesystem desselben Namens, UFS.

ftpfs

: Dateiübertragungsprotokoll filesystem Übersetzer.

storeio

:The-Lagerungsübersetzer.

Die Server führen insgesamt die POSIX API mit jedem Server durch, der einen Teil der Schnittstelle durchführt. Zum Beispiel, die verschiedenen filesystem Server jedes Werkzeug die Filesystem-Anrufe. Der Lagerungsserver wird als eine sich einhüllende Schicht arbeiten, die der Block-Schicht von Linux ähnlich ist. Die Entsprechung von VFS von Linux wird durch libdiskfs und libpager Bibliotheken erreicht.

GNU-Vertrieb, der Hurd führt

Mit Sitz in Hurd GNU-Vertrieb schließt ein:

Siehe auch

  • Linux-libre
  • Minix 3

Außenverbindungen


Hades / Zyklen von Hollywood
Impressum & Datenschutz