GNU Hurd
GNU Hurd | |
Dezvoltator | Proiectul GNU Thomas Bushnell Roland McGrath Marcus Brinkmann Neal Walfield Samuel Thibault |
---|---|
Programat în | Limbaj de asamblare, C |
Familie SO | Unix-like |
Stare | Curent |
Model surse | Software liber |
Dată lansare inițială | 1990 |
Ultima versiune stabilă | 0.9 din iulie 7, 2019[1] |
Repozitor | git.savannah.gnu.org/cgit/hurd/ |
Platforme suportate | x86 |
Tip de nucleu | Micronucleu multiserver |
Licență | GPLv2+[2] |
Prezență online | |
www.gnu.org/software/hurd/ | |
Modifică date / text |
GNU Hurd este un micronucleu multiserver scris ca parte de GNU. El se află în dezvoltare din anii 1990 de către Proiectul GNU al fundației pentru software liber, proiectat ca o înlocuire pentru nucleul Unix,[3] și eliberat ca software liber sub Licența Publică Generală GNU. Când nucleul Linux s-a dovedit a fi o soluție viabilă, dezvoltarea GNU Hurd a încetinit, schimbându-se ciclic dintre starea de hibernare și cea de activitate și interes reînnoit.[4]
Designul lui Hurd constă dintr-un set de protocoale și procese server (sau demoni, în terminologia Unix) care rulează pe micronucleul GNU Mach .[3] Hurd își propune să depășească nucleul Unix în functionalitate, securitate, și stabilitate, în timp rămânând în mare parte compatibil cu acesta. Proiectul GNU a ales micronucleul multiserver [5] pentru sistemul său de operare, din cauza advantajelor presupuse asupra architecturii traditionale Unix de nucleu monolitic ,[6] o opinie care a fost susținută de unii dezvoltatori în anii 1980.[4]
Istoria dezvoltării
[modificare | modificare sursă]Proiectul Debian, printre altele, a lucrat la proiectul Hurd pentru a produce distribuții binare a unui sistem de operare GNU bazat pe Hurd pentru sisteme compatible PC.
După ani de stagnare, dezvoltarea a început din nou în 2015 și 2016, cu patru versiuni pe parcursul acestor doi ani.[7]
Pe 20 August, 2015, în timpul Google Summer of Code, s-a anunțat că GNU Guix a fost portat pe GNU Hurd.[8]
Architectura
[modificare | modificare sursă]Spre deosebire de majoritatea nucleelor Unix-like, Hurd utilizează o arhitectură client-server, construită peste un micronucleu care e responsabil de furnizarea celor mai de bază servicii nucleu – coordonarea accesului la hardware: procesor (prin intremediul gestiunii proceselor și planificării), memoria (prin gestiunea memoriei), și alte dizpozitive intrare/ieșire (prin planificarea Intrare/Iesire) pentru sunet, grafică, stocare în masă, etc. În teorie, designul micronucleu ar permite ca toate driverele dispozitivelor să fie construite ca servere care lucrează în spațiul utilizatorului, dar astăzi majoritatea driverelor de așa gen încă se mai conțin în spațiul nucleului GNU Mach .[9]
Conform dezvoltatorilor Hurd, avantajul principal al designului bazat pe micronucleu e abilitatea de a extinde sistema: dezvoltarea unui modul nou nu va necesita cunoștințe detailiate în restul nucleului, și o greșeală într-un modul nu va prăbuși întreg sistemul. Hurd oferă un concept de translatori, o funcționalitate de module utilizată pentru a extinde funcționalitatea sistemului de fișiere.[10]
De la bun început, Hurd a fost dezvoltat să utilizeze GNU Mach ca micronucleu. Aceasta a fost o decizie technica făcută de Richard Stallman, care a crezut ca aceasta va crește viteza lucrului salvând o mare parte din acesta. El a admis că a făcut o greșeală pe seama dată.[11] Alte sisteme Unix-like care lucrează pe micronucleul Mach sunt OSF/1, Lites, și MkLinux. macOS și NeXTSTEP utilizează nuclee hibride bazate pe Mach.
Alte micronuclee
[modificare | modificare sursă]In 2007, dezvoltatorii Hurd Neal Walfield și Marcus Brinkmann au criticat arhitectura Hurd, cunoscută ca "critica",[12] și au propus cum un viitor sistem să fie proiectat, cunoscută ca "lucrarea poziție".[13] In 2008, Neal Walfield a început lucrul la micronucleul Viengoos ca un nucleu modern nativ pentru HURD. La data de 2009[update], dezvoltarea lui Viengoos e în repaos din cauza că Walfield duce lipsă de timp să lucreze asupra luia.[14]
Între timp, alții continuă să lucreze asupra variantei Mach al Hurd.[15]
Distribuții GNU care rulează Hurd
[modificare | modificare sursă]Distribuții GNU bazate pe Hurd includ:
- Arch Hurd
- Debian GNU/Hurd
- GNU Guix System (în dezvoltare)
Note
[modificare | modificare sursă]- ^ „2019-07-07-debian gnu hurd 2019”. GNU Hurd. Accesat în .
- ^ „COPYING - hurd/hurd.git - Hurd”. Git.savannah.gnu.org. Accesat în .
- ^ a b „What Is the GNU Hurd?”. GNU. Accesat în .
- ^ a b Tozzi, Christopher (). „30 Years On, HURD Lives: GNU Updates Open Source Unix Kernel” (în engleză). Arhivat din original la .
- ^ „What is a Multiserver Microkernel?”. Gnu.org. . Accesat în .
- ^ „advantages”. GNU. Accesat în .
- ^ „Free Software Foundation changes priorities - SD Times”. SD Times (în engleză). . Accesat în .
- ^ Ragkousis, Manolis (). „[GSoC update] Porting Guix to GNU/Hurd” (Mailing list). guix-devel. Accesat în .
- ^ Kousoulos, Constantine (). „Re: Device drivers in Mach?”. bug-hurd (Mailing list).
- ^ Doeppner, Thomas W. (). Operating Systems In Depth: Design and Programming. John Wiley & Sons. p. 160. ISBN 978-0-471-68723-8. Accesat în .
- ^ Stallman, Richard (). „In Defense of Red Hat”. Linux Today. Arhivat din original la . Accesat în .
I take full responsibility for the technical decision to develop the GNU kernel based on Mach, a decision which seems to have been responsible for the slowness of the development. I thought using Mach would speed the work by saving us a large part of the job, but I was wrong.
- ^ Walfield, Neal H.; Brinkmann, Marcus (iulie 2007). „A Critique of the GNU Hurd Multi-server Operating System” (PDF). GNU. Accesat în .
- ^ Walfield, Neal H.; Brinkmann, Marcus (). „Improving Usability via Access Decomposition and Policy Refinement” (PDF). GNU. Accesat în .
- ^ „viengoos”. GNU. Accesat în .
- ^ „What happened to the L4/Coyotos/viengoos micro-kernels?”. GNU. Accesat în .
Vezi și
[modificare | modificare sursă]- GNU Mach
- Software liber
- GNU Linux-libre – versiunea liberă a nucleului Linux
- Compararea nucleelor sistemelor de operare
- Kernel-based Virtual Machine (KVM)
- Specificația Multiboot