Hurd

Från Wikipedia
Hoppa till: navigering, sök
Hurd
Hurds logga, föreställande samverkande daemoner
HURD Live CD.png
Live-CD med GNU och Hurd efter uppstart.
Företag / utvecklare GNU-projektet
OS-familj Unixliknande
Arbetsstatus Pågående
Källkod Fri programvara
Senaste version Ingen stabil version släppt ännu
Licens GPL
Kärntyp GNU Mach, L4 med flera
Webbplats http://www.gnu.org/software/hurd

GNU Hurd är en fri unixliknande operativsystemskärna avsedd att vara en ersättning för Unix-kärnan, utgiven under GNU General Public License. Hurd har varit under utveckling sedan 1990, som en del av Free Software Foundations GNU-projekt, för deras fria operativsystem GNU.

Hurd består i sig av ett antal daemoner som körs ovanpå en mikrokärna, i kontrast till de traditionella Unix-kärnorna som istället är monolitiska. Daemonerna och mikrokärnan (GNU Mach) är tillsammans tänkt att utgöra kärnan i operativsystemet GNU. Utvecklarna siktar på att få Hurd att bli överlägsen andra Unix-kärnor i datasäkerhet, stabilitet och funktionalitet, samtidigt som den fortfarande i stort ska vara kompatibel med dessa. Utvecklingen har emellertid dragit ut på tiden, varför det vanliga istället är att det övriga GNU-systemet används i en kombination med kärnan Linux, som än så länge har högre funktionalitet. Detta system kallas ofta i dagligt tal "Linux", men Free Software Foundation och dess anhängare insisterar på att det bör kallas GNU/Linux.

Hurd är en dubbel rekursiv akronym, där HURD står för "HIRD of Unix Replacing Daemons"[1] och HIRD står för "HURD Interfaces Representing Depth".

Historia[redigera | redigera wikitext]

Från början kördes Hurd på mikrokärnan GNU Mach (en vidareutveckling av Machkärnan) och den är fortfarande den mest stabila kärnan, men under utvecklingen av systemet har man upptäckt djupgående problem med Mach som har gjort att man på senare tid börjat planera för att flytta Hurd till en annan mikrokärna[2]. Bland annat har försök gjorts med L4, och utveckling pågår av en helt ny kärna vid namn Viengoos.[3] Valet att använda Mach som kärna för systemet gjordes av Richard Stallman, och han beskrev det senare som ett misstag.[4] Tanken var att så mycket som möjligt av systemet skulle köras i användarrymden för att göra det stabilare och lättare att felsöka- och utveckla med vanliga programmeringsverktyg. En av de stora fördelarna med detta designval är att en krasch i ett program i användarrymden som värst innebär att detta program måste startas om, medan en krasch i operativsystemets kärna i regel kräver en omstart av hela systemet.

Arkitektur[redigera | redigera wikitext]

Till att börja med så är Hurd, till skillnad från de flesta BSD-systemen och Linux en mikrokärna, där bara små delar av systemet, drivrutiner och minneshantering exempelvis[5], faktiskt körs i kärnan. Resten av den funktionalitet som behövs, som exempelvis inloggningskonsoler, nätverk och filsystemsåtkomst, körs i användarrymden av daemonprogram.[6]

Hurd tar också fasta på det gamla Unix-valspråket att "allting är en fil", även exempelvis mappar kan läsas som filer.[7] Detta blir viktigt för ett annat Hurd-specifikt koncept: översättare (eng. translators), som är program som körs i användarrymden och som interagerar med det virtuella filsystemet[8]. De fungerar så att det virtuella filsystemet associerar en översättare med en specifik nod (en mapp eller fil) i det virtuella filsystemet med översättaren, och istället för att direkt ge användaren ett svar när noden anropas så körs översättaren först. Hurds system för filsystemsåtkomst är översättare, men de kan användas till andra saker också. Exempelvis har det föreslagits översättare för tar-filer som transparent visar tar-arkiv som en mappstruktur och lägger till- och tar bort filer i dem. Översättarna delas upp i två kategorier; aktiva översättare, som startar en gång och körs till de avslutas, antingen normalt, av en krasch eller av exempelvis en omstart, och passiva översättare som inte startar förrän den nod i filsystemet som associeras med dem anropas. [9]

Exempel på daemoner [10][redigera | redigera wikitext]

Notera att detta inte är en komplett lista!

  • auth - har hand om autentisering daemoner emellan
  • term - implementerar en POSIX-terminal
  • null - har hand om enheterna /dev/null och /dev/zero
  • crash - tar hand om program som kraschar
  • exec - kör processer

Översättare[redigera | redigera wikitext]

Källor[redigera | redigera wikitext]

  1. ^ ”Om namnet "Hurd" på www.gnu.org”. http://www.gnu.org/software/hurd/hurd.html#name. 
  2. ^ ”Hurd on Mach på HURD-wikin”. http://www.bddebian.com/~wiki/contributing/#hurd_on_mach. 
  3. ^ ”Resource management problems på HURD-wikin”. http://www.bddebian.com/~wiki/hurd/ng/resource_management_problems/. 
  4. ^ ”Richard Stallman: In Defense of Red Hat”. http://www.linuxtoday.com/infrastructure/2000101200421OPCYRH. 
  5. ^ ”Re: Device drivers in Mach? på bug-hurd epostlistan”. http://lists.gnu.org/archive/html/bug-hurd/2007-03/msg00089.html. 
  6. ^ ”Towards a New Strategy of OS Design på gnu.org”. http://www.gnu.org/software/hurd/hurd-paper.html. 
  7. ^ ”Hurd FAQ: 4.16. Why can I `read' a directory?”. http://www.gnu.org/software/hurd/faq.en.html#q4-16. 
  8. ^ ”Om översättare på Hurd-wikin”. http://www.bddebian.com/~wiki/hurd/translator/. 
  9. ^ ”Debian GNU/Hurd: Translators”. http://www.debian.org/ports/hurd/hurd-doc-translator. 
  10. ^ ”Debian GNU/Hurd: Servers”. http://www.debian.org/ports/hurd/hurd-doc-server. 

Se även[redigera | redigera wikitext]

Externa länkar[redigera | redigera wikitext]