Nucli del sistema operatiu

Un nucli del sistema operatiu (kernel en anglès), en informàtica sovint només nucli, é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.

Un kernel connecta l'aplicació de software al maquinari d'un ordinador.

No es necessita necessàriament 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.