Professional Documents
Culture Documents
s repla ement for UNI"# a popular operating s$stem %ernel. The Hurd is firstl$ a olle tion of proto ols formali&ing how different omponents ma$ intera t. The proto ols are designed to redu e the mutual trust re'uirements of the a tors there($ permitting a more e)tensi(le s$stem. These in lude interfa e definitions to manipulate files and dire tories and to resol*e path names. This allows an$ pro ess to implement a file s$stem. The onl$ re'uirement is that it ha*e a ess to its (a %ing store and that the prin ipal that started it own the file s$stem node to whi h it onne ts. The Hurd is also a set of ser*ers that implement these proto ols. The$ in lude file s$stems# networ% proto ols and authenti ation. The ser*ers run on top of the +a h mi ro%ernel and use +a h!s I,- me hanism to transfer information. The Hurd pro*ides a ompati(ilit$ la$er su h that ompiling higher le*el programs is essentiall$ transparent. that is# ($ means of the gli( # it pro*ides the same standard interfa es %nown from other UNI"/li%e s$stems. Thus# for a t$pi al user# the Hurd is intended to silentl$ wor% in the (a %ground pro*iding the ser*i es and infrastru ture whi h the mi ro%ernel itself has no (usiness implementing# (ut that are re'uired for higher le*el programs and li(raries to operate. The Hurd supplies the last major software omponent needed for a omplete GNU operating s$stem as originall$ on ei*ed ($ 0i hard +. 1tallman 20+13 in 4567. The GNU *ision dire tl$ dro*e the reation and has guided the e*olution of the 8ree 1oftware 8oundation# the organi&ation that is the home of the GNU proje t. The Hurd de*elopment effort is a somewhat separate proje t from the 9e(ian GNU/Hurd port.
a defender esta idAia. -hegando a lassifi ar a idAia de um mi ro%ernel omo Guma estupide&G. Hem# isso A (riga de a horro grande# nBo *ou me meter... ./3 ,ara nCs usuErios# mais interessante do 'ue dis utir 'ual idAia A melhor# A sa(er 'ue em (re*e teremos ? disposiJBo mais uma opJBo de sistema opera ional Fi*re. @ssim omo no aso do Finu)# nada impede 'ue as distri(uiJLes utili&em o Hurd ao in*As do Finu)# aso ele onsiga apresentar algum diferen ial importante. ,or en'uanto# o Hurd ainda estE em desen*ol*imento# por isso A inNtil tentar te er 'ual'uer omparaJBo. No momento 2No*em(ro de ;==;3# a instalaJBo ainda A difD il e o suporte a hardware A muito fra o# se on entrando em pla as de *Ddeo# rede e alguns outros perifAri os essen iais. -omo des rito na do umentaJBo# Go suporte a pla as de som e outros dispositi*os A 'uase 'ue ine)istenteG. Iu seja# o Hurd ainda nBo A para usuErios finais# mas *amos tor er para 'ue a G on orrOn iaG a elere o desen*ol*imento do Kernel do Finu) e seja um fator positi*o para a plataforma omo um todo. Peja mais detalhes em: http://www.gnu.org/software/hurd
:m desen*ol*imento desde 455=# o %ernel Hurd suporta a ar'uitetura i<6<# tem uma amada de dri*ers de rede portada do Finu) ;.<.7; e ofere e suporte (Esi o a I9:/1-1I/,-+-I@/"org. -oisas (Esi as de hoje em dia ainda fi am faltando: U1H# 1@T@ e pro essadores de <Q/(it.
I estado do projeto o torna inutili&E*el para (oa parte das tarefas num des%top atual. @inda assim os desen*ol*edores ontinuam ati*os# e planejam um release ofi ial do 9e(ian GNU/Hurd om o lanJamento do GMessieG# su essor do Whee&$. :sta *ersBo do 9e(ian 26.=3 A esperada para o final de ;=4>. HE muita oisa a ser implementada no Hurd para 'ue ele possa ser utili&E*el em ,-s atuais por lE. @tA lE estBo tra(alhando numa *ersBo nBo ofi ial do Whee&$. +ais alguns detalhes so(re o projeto podem ser onferidos neste ,98# alAm deste re*iew de ;=44 do ,horoni) 2informaJLes em inglOs3.
No#e e !ogo
:m de&em(ro de 4554# o ar'uiteto prin ipal do Hurd# e)pli ou 'ue GHU09G A um a rRnimo indiretamente re ursi*o para: GHI09 of Uni)/0epla ing 9aemonsG# em 'ue GHI09G signifi a GHU09 of Interfa es 0epresenting 9epthG# a opiniBo 'ue pre*ale e atualmente na e'uipe A de 'ue Hurd A um su(stanti*o on reto.> < S hora TdeU e)pli ar o signifi ado de GHurdG. GHurdG signifi a GHird de daemons su(stituindo Uni)G. :# entBo# GHirdG signifi a GHurd de interfa es representando profundidadeG. Temos a'ui# ao meu onhe imento# o primeiro software a ser nomeado por um par de siglas mutuamente re ursi*as. VThomas Bushnell @inda em estEgio de desen*ol*imento# os prCprios 2e pou'uDssimos3 desen*ol*edores pedem ajuda ? pessoas onhe edoras da Finguagem - 2tanto para o desen*ol*imento do nN leo# 'uanto para o porte de apli ati*os3# assim omo pessoas 'ue tenham disponi(ilidade para efetuar testes e reportar (ugs. -omo am(os GHurdG e GHirdG sBo homCfonos da pala*ra em InglOs Gre(anhoG 2herd3# o nome ompleto GNU Hurd tam(Am A uma (rin adeira om as pala*ras rebanho de gnus# refletindo omo o %ernel fun ionaW o logotipo A hamado de caixas Hurd e isso tam(Am reflete na ar'uitetura. I logotipo A um grEfi o onde os nCs
representam ser*idores do %ernel Hurd e as (ordas sBo dirigidas I,-. +ensagens < 9e*ido ao estado da te nologia mi ro%ernel# na sigla duplamente re ursi*a A muitas *e&es referida pelos espe ialistas omo a ara terDsti a mais interessante do GNU Hurd.6
$esenvo!vi#ento e historia
I 0i hard 1tallman fundou o projeto GNU em setem(ro de 4567 om a finalidade de riar o sistema operati*o free GNU. Ini ialmente os omponentes ne essErios para o %ernel e seu desen*ol*imento foram es ritos: editores# shell# ompilador e todos os outros. :m 4565# foi riado o G,F e GsCG falta*a um importante omponente: o %ernel.5 4= I desen*ol*imento do Hurd omeJou em 455= depois de ter a(andonado uma tentati*a de onstruir o %ernel em 456<# (aseado na in*estigaJBo do sistema operati*o T0I" desen*ol*ido pelo professor 1te*e Ward e seu grupo em +IT!s la(oratCrio de informEti a 2F-13.44 9e a ordo om Thomas Hushnell# o ar'uiteto ini ial do Hurd# o plano ini ial era adaptar o %ernel Q.QH19/Fite %ernel e# em retrospe to# GS perfeitamente C(*io a mim 'ue isto iria ter um su esso esplOndido e 'ue o mundo seria muito diferente hojeG.4; :m 456W 0i hard 1tallman propRs utili&ar o +a h mi ro%ernel desen*ol*ido na Uni*ersidade -arnegie +ellon 2-+U3. I tra(alho foi atrasado trOs anos de*ido in erte&a se a -+U iria li(erar o Cdigo +a h numa li enJa orrespondente.44 -om a pu(li aJBo do Kernel Finu) em 4554# o usuErio primErio das ferramentas e omponentes GNU de espaJo de usuErio em (re*e se tornaram sistemas operati*os onstruDdos so(re o %ernel linu) 29istri(uiJLes linu)3# soli itando a ontro*Arsia ontro*Arsia do termo GNU/Linux. 9esen*ol*imento do Hurd tOm o orrido lentamente. @pesar dos anNn ios positi*os de 1tallman em ;==; pre*endo a pu(li aJBo do GNU/Hurd mais tarde nesse ano#47 o Hurd ainda nBo A onsiderado ade'uado para am(ientes de produJBo. I seu desen*ol*imento# em geral# nBo atingiu as e)pe tati*as# e ainda hE (ugs e falta parti ularidade. 4Q Isso resultou em um produto mais po(re do 'ue muitos 2in lusi*e o 1tallman3 espera*am. 4> :m ;=4=# apCs ;= anos em desen*ol*imento# 1tallman disse 'ue eleG nBo era muito otimista so(re o GNU Hurd. 8a& algum progresso# mas para ser realmente superior seria ne essErio resol*er muitos pro(lemas omple)osG# mas a res entou 'ueG o a a(amento nBo A ru ial Gpara o sistema GNU por'ue um %ernel li*re jE e)istia 2Finu)3# e ompletando Hurd nBo resol*eria o prin ipal pro(lema restante para um sistema opera ional li*re: suporte a dispositi*os. 4< I projeto 9e(ian# entre outros# tra(alhou no projeto Hurd para produ&ir distri(uiJLes (inErias do 1istemas operati*os (aseados em Hurd para sistemas ompatD*eis om IH+ ,-.6
%r&uitetura
@o ontrErio da maioria de %ernels Uni)/li%e# o Hurd utili&a uma ar'uitetura liente/ser*idor# onstruDda em um mi ro%ernel# 'ue A responsE*el por forne er os ser*iJos mais (Esi os do %ernel / oordenar o a esso ao hardware: o -,U 2a es alonamento de pro essos e geren iamento de pro essos3# 0@+ 2*ia geren iamento de memCria3# e *Erios outros dispositi*os de entrada/saDda 2*ia agendamento I/I3 para o som# grEfi os# arma&enamento de massa# et # em teoria o projeto mi ro%ernel permitiria a todos os dri*ers de dispositi*o serem onstruDdos omo ser*idores 'ue tra(alham em espaJo do usuErio# mas hoje a maioria dos dri*ers desse tipo sBo ainda ontida no espaJo do %ernel no GNU +a h. 4W 9e a ordo om os desen*ol*edores do Hurd a prin ipal *antagem do projeto (aseado em mi ro%ernel A a apa idade de estender o sistema: o desen*ol*imento de um no*o mCdulo nBo e)ige onhe imento profundo do resto do %ernel e um (ug em um mCdulo nBo tra*ar o sistema inteiro. Hurd forne e um on eito de tradutores# uma estrutura de mCdulos usados para estender a fun ionalidade do sistema de ar'ui*os 46
Outros #icro'erne!s
9e ;==Q em diante# *Erios esforJos foram lanJados para portar o Hurd para mi ro%ernels mais modernos. I FQ mi ro%ernel era a es olha original# em ;==Q# mas desa elerou a um impasse. No entanto# em ;==># o
desen*ol*edor Hurd# Neal Walfield terminou a estrutura de geren iamento de memCria ini ial para a porta FQ/Hurd e +ar us Hrin%mann portou as partes essen iais de gli( # ou seja# o(ter o Cdigo de ini iali&aJBo do pro esso de tra(alho# permitindo 'ue os programas sejam e)e utados# permitindo assim 'ue os primeiros programas de usuErios 2os tri*iais# omo o programa IlE +undo em -3 possa ser e)e utado. 9esde ;==> Hrin%mann e Walfield omeJou a pes'uisar so(re o -o$otos omo um no*o %ernel para HU09. ;= ;4 :m ;==<# onhe eu Hrin%mann om Monathan 1hapiro 2o prin ipal ar'uiteto do sistema opera ional -o$otos3 para ajudar e dis utir o uso do %ernel -o$otos para GNU/Hurd. Uma dis ussBo mais aprofundada dos desen*ol*edores HU09 per e(eram 'ue o -o$otos 2(em omo outros nN leos similares3 nBo sBo ade'uados para o Hurd. :m ;==W# os desen*ol*edores do Hurd# Neal Walfield e +ar us Hrin%mann fi&eram uma rDti a da ar'uitetura Hurd# onhe ida omo Ga rDti aG# ;; e uma proposta de omo o futuro sistema pode ser projetado# onhe ido omo Go papel de posiJBoG. ;7 em ;==6# Neal Walfield omeJou a tra(alhar no mi ro%ernel Piengoos omo um %ernel nati*o moderno para HU09. @ partir de ;==5# o desen*ol*imento em Piengoos estE em pausa de*ido ? falta de tempo 'ue Walfield tem para tra(alhar nele ;Q . :n'uanto isso# os outros ontinuaram a tra(alhar na *ariante +a h do Hurd. ;>
e(tens)es Uni(
Uma sArie de on eitos tradi ionais do Uni) sBo su(stituDdos ou e)tensD*eis no Hurd. No Uni)# ada programa em e)e uJBo tem um asso iado user id# 'ue normalmente orresponde ao usuErio 'ue ini iou o pro esso. :ste id amplamente dita as aJLes permitidas para o programa. Nenhum pro esso e)terior pode mudar o I9 de usuErio de um programa em e)e uJBo. Um pro esso Hurd# por outro lado# A e)e utado so( uma set no I9s de usuErio# 'ue pode onter *Erios ids# um ou nenhum. Um pro esso sufi ientemente pri*ilegiado pode adi ionar e remo*er ids para outro pro esso. ,or e)emplo# e)iste um ser*idor de senha 'ue irE distri(uir ids em tro a de uma senha de login orreta. Xuanto ao sistema de ar'ui*os# um programa ade'uado pode ser designado omo um tradutor para um Nni o ar'ui*o ou uma hierar'uia de diretCrio inteiro. Todo o a esso ao pro esso tradu&ido# ou a(ai)o de uma hierar'uia de ar'ui*os# no segundo aso# A# de fa to# pro essado pelo programa. ,or e)emplo# um ar'ui*o tradutor pode simplesmente redire ionar ler e es re*er operaJLes para outro ar'ui*o# e nBo ao ontrErio de um lin% sim(Cli o Uni). I efeito montagem do Uni) A al anJado atra*As da riaJBo de um sistema de ar'ui*os tradutor 2usando o omando GsettransG3. Is tradutores tam(Am podem ser usados para forne er ser*iJos ao utili&ador. ,or e)emplo# o ftpfs tradutor permite 'ue um usuErio para en apsular sites 8T, remotos dentro de um diretCrio. :m seguida# as ferramentas padrBo# omo ls# p e rm pode ser usado para manipular ar'ui*os no sistema remoto. +esmo os tradutores mais poderosos sBo a'ueles# omo Union81# 'ue permite 'ue um usuErio para unifi ar *Erios diretCrios em um# listando assim o diretCrio unifi ado re*ela o onteNdo de todos os diretCrios 2um re urso 'ue estE faltando em muitos sistemas Uni)# em(ora disponD*el nos modernos H19s3. I Hurd re'uer um multi(oot ompatD*el om (oot loader# omo o G0UH.
,-d 2ser*idor forward3: en aminha soli itaJLes para outros ser*idores# usado por ser*idores de 8I8I e s$mlin%. host#u( 2ser*idor de multiple)ador host3 i,soc' 2ser*idor para a interfa e de so %ets3: @juda om domDnio endereJos de so'uetes UNI". init 2ser*idor init3: I sistema (Esi o de ini iali&aJBo e onfiguraJBo. #agic 2ser*idor de magi 3 nu!! 2ser*idor null3: Implementa /de*/null e /de*/&ero. ,inet 2ser*idor pfinet3: Implementa o proto olo da familia ,8_IN:T. ,!oca! 2ser*idor pflo al3: Implementos so'uetes de domDnio Uni). roc 2ser*idor pro ess3: @tri(ui ,I9 s e gere a JLes a nD*el de pro esso. s/#!in' 2tradutor lin% sim(Cli o3: Implementa lin%s sim(Cli os para os sistemas de ar'ui*os 'ue nBo os suportam. ter# 2ser*idor de terminal3: Um terminal ,I1I". user#u( 2ser*idor de usuErio multiple)ador3: In*o a tradutores espe Dfi os do usuErio. *ervidores do *iste#a de %r&uivos :)t;fs I tradutor para o sistema de ar'ui*os e)t;. :le re e(e (lo os de dis o do mi ro%ernel e dando ar'ui*os e diretCrios para as apli aJLes. Isofs I tradutor para o sistema de ar'ui*os I1I 5<<=. Tradu& (lo os de um -9 ou 9P9 para ar'ui*os e diretCrios para as apli aJLes. Nfs Peja Networ% 8ile 1$stem. Ufs Tradutor para o sistema de ar'ui*os H19 om o mesmo nome# U81. 8tpfs 8ile Transfer ,roto ol tradutor de sistema de ar'ui*o. 1toreio I tradutor de arma&enamento. Is ser*idores oleti*amente implementam o ,I1I" @,I# om ada ser*idor de implementando parte da interfa e. ,or e)emplo# os *Erios ser*idores de sistemas de ar'ui*os indi*idualmente implementam as hamadas de sistema de ar'ui*os. I ser*idor de arma&enamento *ai fun ionar omo uma amada de wrapping# semelhante ? amada de (lo'ueio do Finu). I e'ui*alente a P81 no Finu) A onseguido atra*As li(dis%fs e (i(liote as li(pager.