Nucli monolític: diferència entre les revisions

Contingut suprimit Contingut afegit
m Robot insereix {{ORDENA:Nucli Monolitic}}
Cap resum de modificació
Línia 2:
Un '''Nucli monolític''' és el [[Nucli del sistema operatiu|nucli]] o kernel d'un [[sistema operatiu]]. Com exemple de sistema operatiu amb nucli monolític estan [[UNIX]] i [[Linux]].
 
Aquests sistemes tenen un nucli gran i complex, que engloba tots els serveis del sistema. Està programat de forma no modular, i té un rendiment més gran que un [[microkernel|micronucli]]. No obstant, qualsevol canvi a realitzar en qualsevol servei requereix la recompilació del nucli i el reinici del sistema per aplicar els nous canvis.
 
Hi ha diverses ramificacions d'aquest disenydisseny, que s'han anat amoldantadaptant a noves necesitatsnecessitats. Podem citar el sistema de módulsmòduls executables en temps d'execució, que l'hi ofereix al model de nucli monolític algunes de les ventatgesavantatges d'un [[microkernel|micronucli]]. Aquests módulsmòduls poden ser compilats, modificats, carregats i descarregats en temps d'execució, de manera similar als serveis d'un [[microkernel|micronucli]], però amb la diferienciadiferència de que s'executen en el espai de memoriamemòria del mateix nucli (anell 0). D'aquesta forma, un bloqueig del módulmòdul, es probable que bloquegi tot el nucli. AdemésA més amés, el módulmòdul pasapassa a formar un tot amb el nucli, utlitzant lautilitzant l'[[API]] del mateix, i no s'utilitza un sistema de missatges com en els micronuclis.
Aquest es l'esquema usat per, entre d'altres, [[GNU/Linux]], [[FreeBSD]] i diversos derivats de UNIX.
Hem de resaltardestacar que el pas constant de missatges entre els serveis del [[microkernel|micronucli]], esés en partepart responsable dels pobres rendiments dels micronuclis.
 
Un [[sistema operatiu]] amb '''nucli monolític''' concentra totes les funcionalitats posiblespossibles (planificació, [[sistema de fitxers]], xarxes, controladors de dispositius, gestió de memoriamemòria, etc.) dins d'un gran programa. Aquest pot tenir una mida considerable, i haurà de ser recompilat per complet a l'afegir una nova funcionalitat. Tots els components funcionals del nucli tenen accés a totes les seves estructures de dades internes i a les seves rutines. Un error en una rutina pot propagar-se a tot el nucli. Tots els seus components es troben integrats en un únic programa que executa en un únic espai de direccions. En aquest tipus de sistemes, totes las funcions que ofereix el sistema operatiu s'executen en mode supervisor.
 
Aquests sistemes operatius han surgitsorgit, normalment, de sistemes operatius senzills i petits als que se'ls ha anat afegint un número més gran de funcionalitats. Això els ha fet evolucionar i creixercréixer fins convertir-los en programes grans i complexos formats per moltes funcions situades totes elles a un mateix nivell. Clars exemples d'aquest tipus de sistemes són [[MS-DOS]] i [[UNIX]]. Ambdós van començar sent sistemes operatius petits, que van anar fent-se cada cop més grans degut a la gran popularitat que van anar adquirint.
 
El problema que plantegen aquest tipus de sistemes radica amb la complexitat de modificar el sistema operatiu per afegir noves funcionalitats i serveis. Es a dir, afegir una nova característica implica la modificació d'un gran programa, composat per milers de línies de codi font i funcions, cada una de les quals pot invocar a d'altres aquantquant així ho requereixi. AdemésA més a més, en aquest tipus de sistemes no es segueix el principi d'ocultació d'informació. Per solucionar aquest problema és necesarinecessari propocionarproporcionar certa estructura al sistema operatiu.
 
L'alternativa es tenir una estructura de [[microkernel|micronucli]], on les parts funcionals estan dividides en unitats separades amb mecanismes de comunicació extrictesestrictes entre ells..
 
==Exemples de nuclis monolítics==