De Hurd
Van Wikipedia
De Hurdkernel is bedoeld als GNU-kernel voor een GNU-besturingssysteem; het wordt onder de GPL-licentie ontwikkeld. De Hurd probeert bestaande Unixvarianten te overtreffen in capaciteiten en toch compatibel te blijven. Dit wordt bereikt door de POSIX-standaard te volgen.
Inhoud[verbergen] |
[bewerk] Architectuur
In tegenstelling tot de meeste Unixkernels (waaronder Linux) is de Hurdkernel een zogenoemde microkernel, een kernel die slechts de meest basale services uitvoert, namelijk het coördineren van de hardware: de CPU, het geheugen en vele andere apparaten zoals die voor geluid, beeldbesturing, massaopslag, etc.
Nu nog wordt de GNU Machkernel als microkernel gebruikt, maar men is bezig om de Hurd te porten naar de betere L4-kernel.
Er draaien ook andere Unix-achtige systemen op de Machkernel, bijvoorbeeld: OSF/1, NeXTSTEP, Mac OS X, Lites en MkLinux.
Deze systemen hebben gemeen dat ze geen monolithische kernel hebben die gebruikelijk is bij Unix-achtigen, maar deze gesplitst hebben in een microkernel en een zogenaamd Unixserverdeel.
De Hurd bestaat echter uit meerdere van zulke samenwerkende servers. In plaats van één groot stuk code dat alles regelt, van de klok tot het netwerk, heeft de Hurd voor elke taak een aparte server. Dit maakt ontwikkeling een stuk gemakkelijker (althans in theorie), want een verandering in de code zal weinig tot geen effect hebben op andere servers. Dit verklaart de naam Hurd, een afkorting voor: "Hird of Unix-Replacing Dæmons", waarin "Hird" weer staat voor: "Hurd of Interfaces Representing Depth".
Het oorspronkelijke doel van Mach was het creëren van zulke servers, maar de Hurd was het eerste systeem dat dit ook daadwerkelijk implementeerde.
Het is niet volledig duidelijk waarom het gebeurde, maar men scheen het drukker te hebben met het ontwikkelen van de Machkernel dan met het ontwikkelen van het gehele besturingssysteem.
[bewerk] Unix-uitbreidingen
Een paar typische Unix-eigenschappen worden in de Hurd vervangen of uitgebreid:
Onder Unix heeft elk programma een user id dat normaal overeenkomt met de gebruiker die het proces gestart heeft. Dit id bepaalt in hoge mate wat het programma kan en mag doen. Een ander proces kan het id van dit programma niet veranderen. Een Hurdproces draait op verschillende id's, dit kan een of meerdere id's inhouden, of zelfs geen. Een proces met voldoende rechten kan de id's van andere processen veranderen. Bijvoorbeeld: er is een wachtwoordserver die id's vrijgeeft na het invoeren van het correcte wachtwoord.
Wat betreft bestandssystemen, een programma kan ontworpen worden om te fungeren als vertaler voor één enkel bestand of voor een volledige directorystructuur. Elke toegang tot het vertaalde bestand of de andere bestanden in die directory wordt geregeld door dat programma. Bijvoorbeeld: een bestandsvertaler kan de lees/schrijf-operaties verplaatsen naar een ander bestand, niet veel anders dan in een symbolic link in Unix. Wat in Unix mounten genoemd wordt, wordt in de Hurd bereikt door zulke bestandsvertalers. Zulke vertalers kunnen ook gebruikt worden om gebruikers services te verlenen. Voorbeeld: de vertaler ftpfs wordt gebruikt om FTP-sites 'in te vangen' in een bestand. Dan kunnen standaardgereedschappen als ls, cp en rm gebruikt worden om files in dat bestand te reguleren. Een nog krachtigere vertaler is bijvoorbeeld Shadowfs, die meerdere geschaduwde structuren in een bestand kan opslaan, zodat het bestand de geschaduwde bestanden te voorschijn haalt: een groot gebrek in Unix.
De krachtigste functie van de Hurd is misschien wel dat een gebruiker zijn eigen systeemservices kan starten. Elke gebruiker kan elke vertaler op een bestandssysteem zetten voor zijn eigen persoonlijke gebruik. Een gebruiker zou zelfs systeemservices, zoals bijvoorbeeld de auth-server, kunnen vervangen door een server van zijn keuze. Dit kan allemaal gedaan worden zonder andere gebruikers daarmee te beïnvloeden, dit vanwege duidelijk vastgestelde gebruikersgebieden. Het is zelfs mogelijk een Hurd binnen een Hurd te draaien: dit staat bekend als een sub-Hurd.
De Hurd heeft een multi-bootloader nodig, zoals bijvoorbeeld GRUB.
[bewerk] Ontwikkelgeschiedenis
Op het moment is er één op Hurd gebaseerde distributie in ontwikkeling. Deze is nog niet officieel uitgebracht, en alleen geschikt voor ontwikkelaars en geïnteresseerden: de Debian GNU/Hurd. Richard Stallman, van het GNU-project, had aangekondigd dat de eerste release van dit systeem eind 2002 plaats zou vinden maar dat is nog steeds niet gebeurd.
In 2003 kende de Hurd een langzame ontwikkeling en grote hardwarebeperkingen (zoals het ontbreken van geluid, en een oudere beperking waarin je geen grotere partities kon hebben dan 1,5 GB). Dankzij het Debian-project heeft men een al groot deel van deze beperkingen overwonnen en de verwachting is dat zodra men hiermee klaar is het een erg functionele kernel zal zijn voor het GNU-systeem.
[bewerk] Zie ook
[bewerk] Externe links
Categorieën: GNU | Unix