logo

Nucli al sistema operatiu

Nucli és un component central d'un sistema operatiu que gestiona les operacions de l'ordinador i el maquinari. Bàsicament gestiona operacions de memòria i temps de CPU. És un component bàsic d'un sistema operatiu. El nucli actua com a pont entre les aplicacions i el processament de dades realitzat a nivell de maquinari mitjançant la comunicació entre processos i les trucades al sistema.

El nucli es carrega primer a la memòria quan es carrega un sistema operatiu i roman a la memòria fins que el sistema operatiu es torna a tancar. És responsable de diverses tasques com ara la gestió del disc, la gestió de tasques i la gestió de la memòria.



El nucli té una taula de processos que fa un seguiment de tots els processos actius
• La taula de procés conté una taula de regió per procés l'entrada de la qual apunta a entrades de la taula de regió.

El nucli carrega un fitxer executable a la memòria durant la trucada al sistema 'exec'.

Decideix quin procés s'ha d'assignar al processador per executar-lo i quin procés s'ha de mantenir a la memòria principal per executar-lo. Bàsicament actua com a interfície entre les aplicacions d'usuari i el maquinari. L'objectiu principal del nucli és gestionar la comunicació entre el programari, és a dir, les aplicacions a nivell d'usuari i el maquinari, és a dir, la CPU i la memòria del disc.



Objectius del nucli:

  • Establir comunicació entre l'aplicació a nivell d'usuari i el maquinari.
  • Per decidir l'estat dels processos d'entrada.
  • Per controlar la gestió del disc.
  • Per controlar la gestió de la memòria.
  • Per controlar la gestió de tasques.

Tipus de nucli:

1. Nucli monolític



És un dels tipus de nucli on tots els serveis del sistema operatiu operen a l'espai del nucli. Té dependències entre els components dels sistemes. Té grans línies de codi que són complexes.

Exemple:

Unix, Linux, Open VMS, XTS-400 etc.>

Avantatge:
1. Eficiència: Els nuclis monolítics són generalment més ràpids que altres tipus de nuclis perquè no han de canviar entre els modes d'usuari i el nucli per a cada trucada al sistema, cosa que pot causar sobrecàrrega.

2. Integració estreta: Com que tots els serveis del sistema operatiu s'executen a l'espai del nucli, es poden comunicar de manera més eficient entre ells, cosa que facilita la implementació de funcionalitats i optimitzacions complexes.

3. Simplicitat: Els nuclis monolítics són més senzills de dissenyar, implementar i depurar que altres tipus de nuclis perquè tenen una estructura unificada que facilita la gestió del codi.

4. Menor latència: Els nuclis monolítics tenen una latència més baixa que altres tipus de nuclis perquè les trucades i interrupcions del sistema poden ser gestionades directament pel nucli.

Desavantatge:

1. Problemes d'estabilitat: Els nuclis monolítics poden ser menys estables que altres tipus de nuclis perquè qualsevol error o vulnerabilitat de seguretat en un servei del nucli pot afectar tot el sistema.

2. Vulnerabilitats de seguretat: Com que tots els serveis del sistema operatiu s'executen a l'espai del nucli, qualsevol vulnerabilitat de seguretat en un dels serveis pot comprometre tot el sistema.

3. Dificultats de manteniment: Els nuclis monolítics poden ser més difícils de mantenir que altres tipus de nuclis perquè qualsevol canvi en un dels serveis pot afectar tot el sistema.

4. Modularitat limitada: Els nuclis monolítics són menys modulars que altres tipus de nuclis perquè tots els serveis del sistema operatiu estan estretament integrats a l'espai del nucli. Això fa que sigui més difícil afegir o eliminar funcionalitats sense afectar tot el sistema.
2. Micro Kernel
Són els tipus de nucli que tenen un enfocament minimalista. Té memòria virtual i programació de fils. És més estable amb menys serveis a l'espai del nucli. Posa descans a l'espai d'usuari.

S'utilitza en petits sistemes operatius.

Exemple:

Mach, L4, AmigaOS, Minix, K42 etc.>

Avantatges:

1. Fiabilitat: L'arquitectura de micronucli està dissenyada per ser més fiable que els nuclis monolítics. Com que la majoria dels serveis del sistema operatiu s'executen fora de l'espai del nucli, qualsevol error o vulnerabilitat de seguretat en un servei no afectarà tot el sistema.

2. Flexibilitat : L'arquitectura de micronucli és més flexible que els nuclis monolítics perquè permet afegir o eliminar diferents serveis del sistema operatiu sense afectar tot el sistema.

3. Modularitat: L'arquitectura de micronucli és més modular que els nuclis monolítics perquè cada servei del sistema operatiu s'executa independentment dels altres. Això facilita el manteniment i la depuració del sistema.

4. Portabilitat: L'arquitectura de micronucli és més portàtil que els nuclis monolítics perquè la majoria dels serveis del sistema operatiu s'executen fora de l'espai del nucli. Això fa que sigui més fàcil portar el sistema operatiu a diferents arquitectures de maquinari.

Desavantatges:

1. Rendiment: L'arquitectura del micronucli pot ser més lenta que els nuclis monolítics perquè requereix més canvis de context entre l'espai d'usuari i l'espai del nucli.

2. Complexitat: L'arquitectura de micronucli pot ser més complexa que els nuclis monolítics perquè requereix més mecanismes de comunicació i sincronització entre els diferents serveis del sistema operatiu.

3. Dificultat de desenvolupament: Desenvolupar sistemes operatius basats en l'arquitectura de micronucli pot ser més difícil que desenvolupar nuclis monolítics perquè requereix més atenció al detall en el disseny dels mecanismes de comunicació i sincronització entre els diferents serveis.

4. Major ús de recursos: L'arquitectura de micronucli pot utilitzar més recursos del sistema, com ara memòria i CPU, que els nuclis monolítics perquè requereix més mecanismes de comunicació i sincronització entre els diferents serveis del sistema operatiu.

3. Nucli híbrid -
És la combinació tant del nucli monolític com del micronucli. Té velocitat i disseny de nucli monolític i modularitat i estabilitat del micronucli.

Exemple:

sanjay dutt i
Windows NT, Netware, BeOS etc.>

Avantatges:

1. Rendiment: Els nuclis híbrids poden oferir un millor rendiment que els micronuclis perquè redueixen el nombre de canvis de context necessaris entre l'espai d'usuari i l'espai del nucli.

2. Fiabilitat: Els nuclis híbrids poden oferir una millor fiabilitat que els nuclis monolítics perquè aïllen els controladors i altres components del nucli en dominis de protecció separats.

3. Flexibilitat: Els nuclis híbrids poden oferir una millor flexibilitat que els nuclis monolítics perquè permeten afegir o eliminar diferents serveis del sistema operatiu sense afectar tot el sistema.

4. Compatibilitat: Els nuclis híbrids poden ser més compatibles que els micronuclis perquè poden suportar una gamma més àmplia de controladors de dispositiu.

Desavantatges:

1. Complexitat: Els nuclis híbrids poden ser més complexos que els nuclis monolítics perquè inclouen components monolítics i micronuclis, cosa que pot dificultar el disseny i la implementació.

2. Seguretat: Els nuclis híbrids poden ser menys segurs que els micronuclis perquè tenen una superfície d'atac més gran a causa de la inclusió de components monolítics.

3. Manteniment: Els nuclis híbrids poden ser més difícils de mantenir que els micronuclis perquè tenen un disseny i una implementació més complexos.

4. Ús de recursos: Els nuclis híbrids poden utilitzar més recursos del sistema que els micronuclis perquè inclouen components monolítics i micronuclis.

4. Exo Kernel -
És el tipus de nucli que segueix el principi d'extrem a extrem. Té el menor nombre possible d'abstraccions de maquinari. Assigna recursos físics a les aplicacions.

Exemple:

Nemesis, ExOS etc.>

Avantatges:

1. Flexibilitat: Els exokernels ofereixen el nivell més alt de flexibilitat, permetent als desenvolupadors personalitzar i optimitzar el sistema operatiu per a les seves necessitats específiques d'aplicació.

2. Rendiment: Els exokernels estan dissenyats per oferir un millor rendiment que els nuclis tradicionals perquè eliminen abstraccions innecessàries i permeten que les aplicacions accedeixin directament als recursos de maquinari.

3. Seguretat: Els exokernels proporcionen una millor seguretat que els nuclis tradicionals perquè permeten un control detallat sobre l'assignació dels recursos del sistema, com ara la memòria i el temps de CPU.

4. Modularitat: Els exokernels són altament modulars, la qual cosa permet afegir o eliminar fàcilment els serveis del sistema operatiu.

Desavantatges:

1. Complexitat: Els exokernels poden ser més complexos de desenvolupar que els nuclis tradicionals perquè requereixen una major atenció als detalls i una consideració acurada de l'assignació de recursos del sistema.

2. Dificultat de desenvolupament: Desenvolupar aplicacions per a exokernels pot ser més difícil que per a nuclis tradicionals perquè les aplicacions s'han d'escriure per accedir directament als recursos de maquinari.

3. Suport limitat: Els exokernels són encara una tecnologia emergent i és possible que no tinguin el mateix nivell de suport i recursos que els nuclis tradicionals.

4. Dificultat de depuració: La depuració d'aplicacions i serveis del sistema operatiu en exokernels pot ser més difícil que en nuclis tradicionals a causa de l'accés directe als recursos de maquinari.

5. Nano Kernel -
És el tipus de nucli que ofereix abstracció de maquinari però sense serveis del sistema. Micro Kernel tampoc té serveis de sistema, per tant, Micro Kernel i Nano Kernel s'han convertit en anàlegs.

Exemple:

EROS etc.>

Avantatges:

1. Talla petita: Els nanokernels estan dissenyats per ser extremadament petits, proporcionant només les funcions més essencials necessàries per executar el sistema. Això pot fer-los més eficients i ràpids que altres tipus de nucli.

2. Alta modularitat: Els nanokernels són altament modulars, la qual cosa permet afegir o eliminar fàcilment els serveis del sistema operatiu, fent-los més flexibles i personalitzables que els nuclis monolítics tradicionals.

3. Seguretat: Els nanokernels proporcionen una millor seguretat que els nuclis tradicionals perquè tenen una superfície d'atac més petita i un risc reduït d'errors o errors al codi.

4. Portabilitat: Els nanokernels estan dissenyats per ser altament portàtils, cosa que els permet funcionar en una àmplia gamma d'arquitectures de maquinari.

Desavantatges:

1. Funcionalitat limitada: Els nanokernels ofereixen només les funcions més essencials, cosa que els fa inadequats per a aplicacions més complexes que requereixen una gamma més àmplia de serveis.

2. Complexitat: Com que els nanokernels només proporcionen una funcionalitat essencial, poden ser més complexos de desenvolupar i mantenir que altres tipus de nuclis.

3. Rendiment: Tot i que els nanokernels estan dissenyats per a l'eficiència, és possible que el seu enfocament minimalista no pugui oferir el mateix nivell de rendiment que altres tipus de nuclis en determinades situacions.

4. Compatibilitat: A causa del seu disseny minimalista, els nanokernels poden no ser compatibles amb totes les configuracions de maquinari i programari, limitant el seu ús pràctic en determinats contextos.