GNU Hurd (obično se nazivaju the Hurd ili samo Hurd) je u multiserver mikrojezgra pisani kao deo GNU. U razvoju je od 1990. godine od GNU projekta fondacije za slobodan softver, dizajniran kao zamena za Juniks jezgro, i objavljen kao slobodan softver pod GNU-ovom opštom javnom licencom.

GNU HURD
Programer(i)GNU projekat
Tomas Bušnel
Roland MkGrat
Marcus Brinkmann
Nil Volfild
Samjuel Tibault
Stabilno izdanje
0.8 / 2015.; pre 9 godina (2015)
Repozitorijum Uredi na Vikipodacima
Napisan uAsembler, C
PlatformaJuniks
TipSlobodni softver i softver otvorenog koda
LicencaGNU GPL
Veb-sajtwww.gnu.org/software/hurd/index.html

GNU Hurd se sastoji od niza protokola i serverskih procesa (ili demona, u terminologiji Juniksa) koji rade na GNU Mek mikrojezgra. Hurd ima za cilj da nadmaši Juniks jezgro u funkcionalnosti, bezbednosti i stabilnosti, ostajući u velikoj meri kompatibilan sa njim. GNU Projekat je izabrao multiserver mikroćelije za operativni sistem, zbog uočenih prednosti u odnosu na tradicionalne Juniks monolitne kernel arhitekture   [1]

Ime i logo

uredi

U decembru 1991. godine primarni arhitekta Hurd-a je opisao ime kao međusobni rekurzivni akronim: [2]

Kao i Hurd i HIRD su homonimi na engleskom reči stada, puno ime GNU Hurd je takođe igra reči a znači krdo od gnuova i odražava način na koji jezgro radi.

Logo se zove Hurd kutije, a pokazuje na arhitekturu. Logo predstavlja grafikon gde čvorovi predstavljaju servere Hurd kernela, a usmerene ivice su IPC poruke. [2]

Razvojna istorija

uredi

Ričard Stolman je osnovao GNU projekat u septembru 1983. godine sa ciljem da se stvori slobodan operativni sistem GNU. U početku su komponente koje su potrebne za razvoj kernela napisane: editori, šel, kompajler i svi ostali. Do 1989. godine, nastao je GNU GPL i jedina glavna komponenta koja je nedostajala je jezgro. [3][4]

Razvoj na Hurdu je počela 1990. godine, posle neuspelog pokušaja razvoja jezgra 1986. godine, na osnovu istraživanja TRIX operativni sistem razvijen od strane profesora Stiv Vard i njegove grupe u laboratoriji MIT za kompjuterske nauke (LKN). Prema Tomasu Bušnelu, početnom Hurd arhitekti, njihov rani plan je bio da prilagodi 4.4BSD - Lite kernel i, retrospektivno, " Sada je sasvim jasno da bi ovo sjajno uspelo i svet bi bio mnogo drugačije mesto Danas ". Godine 1987. Ričard Stolman je predložio pomoću Mek mikrokernela razvijen na univerzitetu Karnegi Melon. Rad na tome je odložen za tri godine zbog neizvesnosti oko toga da li će CMU otpustiti Mek kod pod odgovarajućom licencom. [5]

Sa objavljivanjem Linuks kernela 1991. godine, primarni korisnik GNU-ovih Userland komponenti je ubrzo postao operativni sisteme zasnovan na Linuks kernelu (Linuks distribucije), što je dovelo do kovanja spora između GNU / Linuks.

Razvoj Hurda je polako nastavljen. Uprkos optimističnom saopštenju Stalmana 2002. godine predviđajući objavljivanje GNU / Hurda kasnije te godine, Herd se još uvek ne smatra pogodnim za proizvodna okruženja. U osnovi, razvoj uopšte nije ispunio očekivanja, i dalje postoji značajan broj grešaka i nestalih funkcionalnosti. To je rezultiralo lošijim proizvodo nego što su mnogi (uključujući i Stalmana) očekivali. Godine 2010., posle dvadeset godina razvijanja, Stalman je rekao da "nije veliki optimista u vezi GNU Hurd. Postoji izvestan napredak, ali da bi bio zaista superioran to bi zahtevalo rešavanje mnogo dubljih problema ", ali je dodao da " završavanje nije presudno " za GNU sistem jer je slobodan kernel već postojao (Linuks), a završetak Herda ne bi rešio osnovni preostali problem za besplatni operativni sistem: podršku uređaja. [6]

Debijan projekat, između ostalih, su radili na projektu Hurd za proizvodnju binarne raspodele Hurd - baziranih GNU operativnih sistema za IBM PC kompatibilne sisteme.

20. avgusta 2015. godine, usred Guglovog Google Summer of Code, najavljeno je da GNU Guiks je prebačen GNU Hurd, što je prvi domaći paket menadžer na Hurd. [7]

Arhitektura

uredi
 
Generalna struktura monolitičkih, mikroćelija i hibridnih jezgro-baziranih operativnih sistema.

Za razliku od većine Juniks jezgara, Herd koristi klijent-server arhitekture, izgrađene na mikrokernelu koji je odgovoran za pružanje najosnovnije usluge kernel - koordinacionog pristup hardveru: CPU (preko upravljanja procesima i raspoređivanja), RAM (preko upravljanje memorijom ), i drugih raznih ulazno/izlaznih uređaja ( preko I / O rasporedu ) za zvuk, grafiku, masovno skladištenje, itd. U teoriji mikrokernel dizajn bi omogućilo svim drajverima da budu izgrađeni kao serveri koji rade u korisničkom prostoru, ali danas većina drajvera ove vrste su još uvek sadržane u GNU Mek kernel prostoru.

Prema Hurd programerima glavna prednost mikrokernela zasnovana  na dizajnu je mogućnost da proširi sistem : razvijanje novog modula ne zahteva dublje znanje ostatka jezgra i bag u jednom modulu ne bi srušiti ceo sistem. Herd daje koncept prevodilaca, okvir modula koji se koriste da prošire funkcionalnost i sistema datoteka.

Od početka, Herd je razvijen da koristi GNU Meka kao mikroćeliju. To je tehnička odluka Ričard Stolmana, koji je mislio da će ubrzati rad čuvajući veliki deo rada. On je priznao da je bio u pravu u vezi toga. Ostali Uniksolike sisteme koji rade na Mekovim mikrokernelu uključuju OSF/1, Lites, i MkLinuks. OS X i NeXTSTEP koriste hibridna jezgra zasnovana na Meku.

Druge mikroćelije

uredi

Od 2004. pa nadalje, razni napori su uloženi da se stavi Hurd na moderne mikroćelije. L4 mikrojezgro je bila prvobitni izbor u 2004. godini, ali je napredak usporen do zastoja. Ipak, tokom 2005. godine, Hurd programer Nil Valfield završio početni okvir za upravljanje memorija za L4 / Hurd port, i Markus Brinkman lansirali su bitne delove glibc-a ; Naime, osposobljavajući start ap kod, omogućavajući programima da rade, omogućili su rad prvih korisničkih programa ( trivijalni poput onih što su zdravo svete program u C ) za pokretanje.

Od 2005. Brinkmann i Valfield počeo istraživanje Kojota kao novo jezgro za Hurd. U 2006. godini, Brinkman sastao sa Džonatanom Šapirom ( primarni arhitekta Kojot operativnog sistema)da pomogne i razgovara o korišćenju Kojot kernela za GNU / Hurd. U daljem razgovoru Hurd programeri su shvatili da Kojot ( kao i druge slične jezgra ) nisu pogodni za Hurd

U 2007. godini, Herd programeri Nil Valfield i Markus Brinkman dali su kritiku Hurd arhitekture, poznatu kao " kritika ", i predlog za to kako budući sistemi mogu biti dizajnirani, poznat kao "Položaj papira ". U 2008. godini, Nil Valfield počeo da radi na Viengoos mikroćeliji kao moderno domaće jezgro za Hurd. Od 2009. godine, razvoj na Viengoos se pauzira zbog Valfieldovog nedostatka vremena za rad. [8]

U međuvremenu, ostali su nastavili da rade na Mek varijanti Hurd.

Juniks dodaci

uredi

Veliki broj tradicionalnih Unik koncepta su zamenjeni ili produženi u Hurd.

Pod Juniks, svaki program ima povezan korisnički nalog, koji obično odgovara korisniku koji je počeo proces. Ovaj ID u velikoj meri diktira akcije dozvoljene programu. Ni jedan spoljašnji proces ne može da promeni korisničku ID nekog program rada. Herd proces, s druge strane, radi pod skupom korisnički ID, koji može da sadrži više dokumenata, jedan ili nijedan. Dovoljno privilegovani proces može dodati i ukloniti legitimacije sa drugim procesom. Na primer, postoji server lozinka koja će deliti legitimacije u zamenu za ispravnu login šifru.

Što se tiče sistema datoteka, pogodan program može biti označen kao prevodilac za jednu datoteku ili ceo imenik hijerarhije. Svaki pristup do prevedenog fajla ili fajlovi ispod hijerarhije u drugom slučaju, reguliše program. Na primer, datoteka prevodilac može jednostavno preusmeriti čitati i pisati operacije na drugi fajl, poput Unik simboličkog linka. Efekat Juniks mauntovanja se postiže postavljanjem fajlsistem prevodioca (koristeći "settrans" komandu). Prevodioci se takođe mogu koristiti za pružanje usluga korisniku. Na primer, ftpfs prevodilac omogućava korisniku da obuhvati udaljene FTP lokacije unutar direktorijuma. Zatim, standardni alati poput ls, CP, i RM mogu da se koriste za rad sa datotekama na daljinskom sistemu. Čak i snažniji prevodioci, kao što su unionfs, koji omogućavaju korisniku da ujedini više direktorijuma u jedan; tako sortirajući jedinstveni direktorijum otkriva sadržaj svih direktorijuma

Hurd zahteva pokretački multiboot - kompatibilan, kao što je GRUB.

Arhitektura servera

uredi

Prema dokumentaciji Debian ima 24 servera ( 18 glavnih servera i 6 fajl sistem serveri ) pod nazivom kako slijedi :

Glavni serveri

uredi
  • Aut (server za proveru autentičnosti ) : prima zahteve i lozinke iz programa i daje im ličnu kartu, koja menja privilegije programa.
  • Kreš (kreš Server ) : Brine za sve fatalne greške..
  • Egzek (server za izvršenje  ) : Pomera izvršnu sliku (trenutno su podržani ELF i a.aut ) do radne slike u memoriji.
  • FIFO ( FIFO prevodilac ) : implementira imenovane cevi.
  • novi - FIFO ( FIFO novi server ) : Alternativni Server za imenovane cevi 
  • firmlink (u firmlink prevodilac ) : Sprovodi firmlinks - " na pola puta između simboličkog linka i hard link ".
  • [9]
  • FVD ( unapred Server ) : Prosledi zahteve drugim serverima, koje koristi FIFO i simlink serverima.
  • hostmuk ( domaćin multiplekser servera )
  • ifsok ( server za nasadne interfejsa ) : Pomaže kod UNIX domena soket adrese.
  • init ( init Server ) : Osnovni sistem booting i konfiguracija.
  • magija (Medžik Server ) : Signalizira da se dodeljivanje ip adrese mora rešiti unutar procesa kada rezultat uključuje status procesa
  • nul ( nul Server ) : realizuje /dev/null i /dev/zero.
  • finet ( pfinet Server ) : Sprovodi porodicu PF_INET protokola.
  • flokal ( pflokal Server ) : Sprovodi UNIX domen utičnice
  • proc ( server proces ) : Dodeljuje PID i upravlja akcijama na proces nivou.
  • simlink ( simbolički link prevodilac ) : Sprovodi simboličke veze za fajl sisteme koji ih ne podržavaju.
  • Term ( Terminal Server ) POSIX terminala.
  • usermuks ( korisnik multiplekser Server ) : poziva specifičnie prevodioce.

Serveri sistema fajlova

uredi
eht2fs
Eht2 fajl sistem prevodilac. Ona dobija disk blokove od mikrojezgra i daje fajlove i foldere u aplikacijama.
isfos
Prevodilac za ISO 9660 fajl sistemu. Prevodi blokove CD-a ili DVD-a na fajlovima i direktorijumima za aplikacije 
nfs
Vidi mrežni fajl sistem
ufs
Prevodilac BSD fajl sistema sa istim imenom, UFS.
ftpfs
Prevodilac fajl Transfer Protolol sistem datoteka.
storieo
Prevodilac skladišta

Serveri kolektivno sprovede POSIX API, sa svakim serverom koji sprovodi deo interfejsa. Na primer, različiti fajl sistem serveri sprovode fajl sistema pozive. Server za skladištenje će raditi kao sloj za pakovanje, sličan blok sloju Linuksa. Ekvivalent vfs-ovom Linuksu se postiže libdiskfs i libpager bibliotekama.

GNU distribucije radnog Hurda

uredi
 
Debian GNU / Hurd radećeg GNU Emacs na IceVM

Hurd - bazirane GNU distribucije uključuju :

Vidi još

uredi

Reference

uredi

Spoljašnje veze

uredi