Nucli del sistema operatiu
De Viquip??dia
En inform??tica, el nucli (en alemany: kernel) ??s la part fonamental d'un sistema operatiu. ??s el programari responsable de facilitar als diversos programes acc??s segur al maquinari de l'ordinador. Ja que hi ha molts programes i l'acc??s al maquinari ??s limitat, el nucli tamb?? s'encarrega de decidir quin programa podr?? fer ??s d'un dispositiu i durant quant de temps, cosa coneguda com a multiplexat. Accedir al maquinari directament pot ser realment complex, per aix?? els nuclis solen implementar una s??rie d'abstraccions del maquinari. Aix?? permet amagar la complexitat, i proporciona una interf??cie neta i uniforme al maquinari subjacent, facilitant-ne l'??s per part del programador.
No necess??riament es necessita un nucli per a utilitzar un ordinador. Els programes poden carregar-se i executar-se directament en un ordinador ??buit??, sempre que els seus autors vulguin desenvolupar-los sense utilitzar cap abstracci?? del maquinari ni cap ajuda del sistema operatiu. Aquesta era la manera habitual d'utilitzar els primers ordinadors: per a utilitzar diferents programes s'havia de reiniciar i reconfigurar l'ordinador cada cop. Amb el temps, es va comen??ar a deixar en mem??ria (fins i tot entre diferents execucions) petits programes auxiliars, com ara el carregador i el depurador, o es carregaven des de mem??ria de nom??s lectura. A mesura que es van anar desenvolupant, es van convertir en els fonaments del que esdevindrien els primers nuclis de sistema operatiu.
Hi ha quatre grans tipus de nuclis:
- Els nuclis monol??tics faciliten abstraccions del maquinari subjacent realment potents i diverses.
- Els micronuclis (o microkernel) proporcionen un petit conjunt d'abstraccions simples del maquinari, i utilitzen les aplicacions anomenades servidors per a oferir una funcionalitat major.
- Els h??brids (micronuclis modificats) s??n molt semblants als micronuclis purs, per?? inclouen codi addicional a l'espai de nucli per tal que s'executi m??s r??pidament.
- Els exonuclis no faciliten cap abstracci??, per?? permeten l'??s de biblioteques que proporcionen una major funcionalitat gr??cies a l'acc??s directe o quasi directe al maquinari.
Taula de continguts |
[edita] Nuclis monol??tics
El plantejament monol??tic defineix una interf??cie virtual d'alt nivell sobre el maquinari, amb un conjunt de primitives o crides al sistema que implementen serveis del sistema operatiu com ara gesti?? de processos, concurr??ncia i gesti?? de mem??ria en diferents m??duls que s'executen en mode protegit.
Fins i tot si cada m??dul est?? separat de la resta, la integraci?? del codi ??s molt forta, i ??s dif??cil fer-la b??. A m??s, com que tots els m??duls s'executen en el mateix mode, un error en un d'ells pot penjar tot el sistema. Tanmateix, quan se n'ha completat la implementaci?? i aquesta ??s fiable, la forta integraci?? dels components permet un ??s molt efectiu de les caracter??stiques de baix nivell del sistema subjacent, fent que un bon nucli monol??tic sigui molt eficient. Els partidaris del plantejament monol??tic afirmen que si el codi no ??s correcte, no hauria de trobar-se al nucli, i que si ho ??s, llavors l'aproximaci?? micronucli t?? pocs avantatges.
La majoria dels nuclis monol??tics, com ara Linux i el nucli de FreeBSD, poden carregar m??duls executables en qualsevol moment, permetent una forma f??cil d'ampliar les capacitats del nucli a mesura que es necessitin, per?? alhora possibilitant que la quantitat de codi que s'executa en espai de nucli es mantingui al m??nim.
Alguns exemples de nuclis monol??tics:
[edita] Micronuclis
L'aproximaci?? dels micronuclis consisteix en definir una abstracci?? molt simple sobre el maquinari, amb un conjunt de primitives o crides al sistema que implementen serveis del sistema operatiu m??nims, com ara la gesti?? de fils, l'espai d'adre??ament i la comunicaci?? entre processos.
L'objectiu principal ??s la separaci?? de la implementaci?? dels serveis b??sics de la de la pol??tica de funcionament del sistema. Per exemple, el proc??s de l'E/S es pot implementar amb un servidor en espai d'usuari executant-se sobre el micronucli. Aquests servidors d'usuari, que s'utilitzen per a gestionar les parts d'alt nivell del sistema, s??n molt modulars i simplifiquen l'estructura i el disseny del nucli. Si falla un d'aquests servidors, no es penjar?? tot el sistema, i es podr?? reiniciar aquest m??dul de forma independent.
Alguns exemples de micronuclis:
- AIX
- La fam??lia de micronuclis L4
- El micronucli Mach, utilitzat al GNU Hurd i al Mac OS X
- Minix
- MorphOS
- QNX
- RadiOS
- VSTa
[edita] Nuclis monol??tics en contraposici?? a micronuclis
Sovint es prefereixen els nuclis monol??tics en lloc dels micronuclis degut al menor nivell de complexitat que comporta el tractar amb tot el codi de control del sistema en un sol espai d'adre??ament. Per exemple, l'XNU, el nucli del Mac OS X, est?? basat en el nucli Mach 3.0 i en FreeBSD, en el mateix espai d'adre??ament per a disminuir la lat??ncia que comporta el disseny de micronucli convencional.
A principis dels anys 1990, els nuclis monol??tics es consideraven obsolets. El disseny de Linux com a nucli monol??tic en lloc de com a micronucli fou el tema d'una famosa disputa entre en Linus Torvalds i n'Andrew Tanenbaum (hi ha disponible un resum en angl??s). Els arguments d'ambdues parts en aquesta discussi?? presenten raonaments interessants.
Els nuclis monol??tics solen ser m??s f??cils de dissenyar correctament, i per tant poden cr??ixer m??s r??pidament que un sistema basat en un micronucli, per?? hi ha casos d'??xit als dos b??ndols. Els micronuclis se solen utilitzar en rob??tica incrustada o ordinadors m??dics, ja que la majoria dels elements del sistema operatiu resideixen al seu propi espai de mem??ria privat i protegit. Aix?? no seria possible amb els nuclis monol??tics, ni tan sols amb els moderns que permeten carregar m??duls.
Tot i que Mach ??s el micronucli generalista m??s conegut, s'han desenvolupat d'altres micronuclis amb prop??sits m??s espec??fics. L' L3 fou creat per a demostrar que els micronuclis no necess??riament s??n lents. La fam??lia de micronuclis L4 n'??s la successora, i una de les seves ??ltimes implementacions, anomenada Pistachio (microkernel L4), permet executar el Linux simult??niament amb d'altres processos, en espais d'adre??ament separats.
QNX ??s un sistema operatiu que ha estat disponible des de principis dels anys 1980, i t?? un disseny de micronucli molt minimalista. Aquest sistema ha aconseguit arribar a les metes del paradigma del micronucli amb molt m??s ??xit que el Mach. S'utilitza en situacions en qu?? no es pot permetre que hi hagi errades del programari, com ara bra??os mec??nics en naus espacials, o m??quines que poleixen vidres on un petit error podria costar centenars de milers d'euros.
Molta gent creu que com que el Mach b??sicament va fallar en l'intent de resoldre el conjunt de problemes que els micronuclis intentaven resoldre, tota la tecnologia de micronuclis ??s in??til. Els partidaris del Mach afirmen que aquesta ??s una actitud estreta de mires que ha arribat a ser prou popular com per a que molta gent l'accepti com a veritat.
[edita] Nuclis h??brids (micronuclis modificats)
Els nuclis h??brids fonamentalment s??n micronuclis que tenen codi ??no essencial?? en espai de nucli per a que s'executi m??s r??pid del que ho faria si estigu??s en espai d'usuari. Aquest fou un comprom??s que molts dissenyadors dels primers sistemes operatius amb arquitectura basada en micronucli van adoptar abans que es demostr??s que els micronuclis poden tenir un molt bon rendiment. La majoria de sistemes operatius moderns pertanyen a aquesta categoria, sent-ne el m??s popular el Microsoft Windows. XNU, el nucli del Mac OS X, tamb?? ??s un micronucli modificat, degut a la inclusi?? de codi del nucli de FreeBSD al nucli basat en Mach. DragonFly BSD ??s el primer sistema BSD que adopta una arquitectura de nucli h??brid sense basar-se en Mach.
Hi ha gent que confon el terme ??nucli h??brid?? amb els nuclis monol??tics que poden carregar m??duls despr??s de l'arrancada, cosa que ??s un error. ??H??brid?? implica que el nucli en q??esti?? utilitza conceptes d'arquitectura o mecanismes tant del disseny monol??tic com del micronucli, espec??ficament el pas de missatges i la migraci?? de codi ??no essencial?? cap a l'espai d'usuari, per?? mantenint cert codi ??no essencial?? al propi nucli per raons de rendiment.
Alguns exemples de nuclis h??brids:
- Microsoft Windows NT, utilitzat a tots els sistemes que utilitzen el codi base del Windows NT.
- XNU
- DragonFly BSD
- ReactOS
[edita] Exonuclis
Els exonuclis, tamb?? coneguts com a sistemes operatius verticalment estructurats, representen una aproximaci?? radicalment nova al disseny de sistemes operatius.
Es basen en la idea de permetre que el desenvolupador prengui totes les decisions relatives al rendiment del maquinari. Els exonuclis s??n extremadament petits, ja que limiten expressament la seva funcionalitat a la protecci?? i el multiplexat dels recursos.
Els dissenys de nuclis cl??ssics (tant el monol??tic com el micronucli) abstreuen el maquinari, amagant els recursos sota una capa d'abstracci?? del maquinari, o darrera dels controladors de dispositiu. Als sistemes cl??ssics, si s'assigna mem??ria f??sica, ning?? pot estar segur de quina ??s la seva localitzaci?? real, per exemple.
La finalitat d'un exonucli ??s permetre a una aplicaci?? que sol??liciti una regi?? espec??fica de la mem??ria, un bloc de disc concret, etc., i simplement assegurar-se que els recursos demanats estan disponibles, i que el programa t?? dret a accedir-hi.
Ja que l'exonucli nom??s proporciona una interf??cie al maquinari de molt baix nivell, mancant-li totes les funcionalitats d'alt nivell d'altres sistemes operatius, se'l complementa amb una ??biblioteca de sistema operatiu??. Aquesta biblioteca es comunica amb l'exonucli subjacent, i facilita als programadors d'aplicacions les funcionalitats disponibles a d'altres sistemes operatius.
Algunes de les implicacions te??riques d'un sistema exonucli s??n que ??s possible tenir diferents tipus de sistemes operatius (p.e. Windows, Unix) executant-se sobre un sol exonucli, i que els desenvolupadors poden triar si prescindir de funcionalitats (o incrementar-les) per raons de rendiment.
Actualment, els dissenys d'exonucli estan fonamentalment en fase d'estudi, i no s'utilitzen en cap sistema popular. Un esborrany de sistema operatiu ??s el Nemesis, creat per la Universitat de Cambridge, la Universitat de Glasgow, Citrix Systems i l'Institut Suec d'Inform??tica. El MIT tamb?? ha dissenyat alguns sistemes basats en exonuclis.
[edita] Enlla??os relacionats
[edita] Enlla??os externs