Anar al contingut

Núcleu (informàtica)

De L'Enciclopèdia, la wikipedia en valencià

En informàtica, un núcleu o kernel (de la raïl germànica Kern, 'núcleu', 'os') és un software que constituïx una part fonamental del sistema operatiu, i es definix com la part que s'eixecuta en modo privilegiat (conegut també com a modo núcleu).[1] És el principal responsable de facilitar als distints programes accés segur al hardware de la computadora, o, en forma bàsica, és l'encarregat de gestionar recursos a través de servicis de cridada al sistema. Com hi ha molts programes i l'accés al hardware és llimitat, també s'encarrega de decidir qué programa podrà usar un dispositiu d'hardware i durant quant temps, lo que es coneix com multiprogramación. Accedir a l'hardware directament pot ser realment complex, per lo que els núcleus solen implementar una série d'abstracció del hardware. Açò permet amagar la complexitat, i proporcionar un interfaç net i uniforme a l'hardware subjacent, lo que facilita el seu us al programador.

En alguns sistemes operatius no existix un núcleu com a tal (alguna cosa comú en sistemes empotrats), degut a que en certes arquitectura no hi ha distints modos d'eixecució.

Tècnica

Quan s'aplica voltage al processador d'un dispositiu electrònic, est eixecuta un reduït còdic en llenguage ensamblador localisat en una direcció concreta en la memòria ROM (direcció de reset) i conegut com reset code, que a la seua volta eixecuta una rutina en la que es inicializa l'hardware que acompanya al processador. També en esta fase sol inicializarse el controlador de les interrupcions. Finalisada esta fase s'eixecuta el còdic d'arrancada (startup code), també còdic en llenguage ensamblador, la tasca del qual més important és eixecutar el programa principal (main()) del software de l'aplicació.[2]

Generalitats

En informàtica, els sistemes operatius són el núcleu de l'ordenador que s'assegura de:

  • La comunicació entre els programes que soliciten recursos i el hardware.
  • Gestió dels distints programes informàtics (tasques) d'una màquina.
  • Gestió del hardware (memòria, processador, perifèric, forma d'almagasenament, etc.)

La majoria de les interfaços d'usuari es construïxen entorn al concepte de núcleu. L'existència d'un núcleu, és dir, d'un únic programa responsable de la comunicació entre el hardware i el programa informàtic, resulta de compromisos complexos referents a qüestions de resultats, seguritat i arquitectura dels processadors. El núcleu té grans poders sobre l'utilisació dels recursos materials (hardware), en particular de la memòria.

Funcions generalment eixercides per un núcleu

Els núcleus tenen com a funcions bàsiques garantisar la càrrega i l'eixecució dels processos, les entrades/eixides i propondre un interfaç entre l'espai núcleu i els programes de l'espai de l'usuari.

Aparte de les funcionalitats bàsiques, el conjunt de les funcions dels punts següents (inclosos els pilots materials, les funcions de rets i sistemes de fichers o els servicis) necessàriament no són proporcionats per un núcleu de sistema d'explotació. Poden establir-se estes funcions del sistema d'explotació tant en l'espai usuari com en el propi núcleu. La seua implantació en el núcleu es fa en l'únic objectiu de millorar els resultats. En efecte, segons la concepció del núcleu, la mateixa funció anomenada des de l'espai usuari o l'espai núcleu té un cost temporal òbviament diferent. Si esta cridada de funcions és freqüent, pot resultar útil integrar estes funcions al núcleu per a millorar els resultats.

Unix

Erro al crear miniatura:
la migració de nivell inferior sense conexió es va realisar correctament. Una entitat que no siga el gestor d'energia del núcleu accelera el processador ' 1: Canvis en l'estat d'alimentació en esta màquina 2: Canvis en l'interfaç de ret o topología de ret

Un núcleu Unix és un programa escrit casi en la seua totalitat en llenguage C, en excepció d'una part del maneig d'interrupcions, expressada en el llenguage ensamblador del processador en el que opera. Les funcions del núcleu són permetre l'existència d'un ambient en el que siga possible atendre a varis usuaris i múltiples tasques en forma concurrent, repartint al processador entre tots ells, i intentant mantindre en grau òptim l'atenció individual.

El núcleu opera com asignador de recursos per a qualsevol procés que necessite utilisar les facilitats de còmput. Les seues funcions principals són:

  • Creació de processos, assignació de temps d'atenció i sincronisació.
  • Assignació de l'atenció del processador als processos que ho requerixen.
  • Administració d'espai en el sistema d'archius, que inclou: accés, protecció i administració d'usuaris; comunicació entre usuaris i entre processos, i manipulació d'I/S i administració de perifèrics.
  • Supervisió de la transmissió de senyes entre la memòria principal i els dispositius perifèrics.

Residix sempre en la memòria principal i té el control sobre la computadora, per lo que cap atre procés pot interrompre-ho; solament poden cridar-ho per a que proporcione algun servici dels ya mencionats. Un procés crida al núcleu per mig de mòduls especials coneguts com a cridades al sistema.

Consta de dos parts principals: la secció de control de processos i la de control de dispositius. La primera assigna recursos, programes, processos i atén els seus requeriments de servici; la segona, supervisa la transferència de senyes entre la memòria principal i els dispositius de l'ordenador. En térmens generals, cada volta que algun usuari oprimix una tecla d'una terminal, o que es deu llegir o escriure informació del disc magnètic, s'interromp al processador central i el núcleu s'encarrega d'efectuar l'operació de transferència.

Quan s'inicia l'operació de la computadora, deu carregar-se en la memòria una còpia del núcleu, que residix en el disc magnètic (operació denominada bootstrap). Per a això, es deuen inicializar alguns interfaços bàsics d'hardware; entre elles, el rellonge que proporciona interrupcions periòdiques. El núcleu també prepara algunes estructures de senyes que comprenen una secció d'almagasenament temporal per a transferència d'informació entre terminals i processos, una secció per a almagasenament de descriptores d'archius i una variable que indica la cantitat de memòria principal.

A continuació, el núcleu inicializa un procés especial, cridat procés 0. En Unix, els processos es creen per mig d'una cridada a una rutina del sistema (fork), que funciona per un mecanisme de duplicació de processos. No obstant, açò no és suficient per a crear el primer d'ells, per lo que el núcleu assigna una estructura de senyes i establix apuntadors a una secció especial de la memòria, cridada taula de processos, que contindrà els descriptores de cada u dels processos existents en el sistema.

Despuix d'haver creat el procés zero, es fa una còpia del mateix, en lo que es crea el procés un; este molt pronte s'encarregarà de donar vida al sistema complet, per mig de l'activació d'atres processos que també formen part del núcleu. És dir, s'inicia una cadena d'activacions de processos, entre els quals destaca el conegut com despachador, o planificador, que és el responsable de decidir quin procés s'eixecutarà i quins van a entrar o eixir de la memòria central. A partir d'eixe moment es coneix el número un com a procés d'inicialisació del sistema, init.

El procés init és el responsable d'establir l'estructura de processos en Unix. Normalment, és capaç de crear a lo manco dos estructures distintes de processos: el modo monousuario i el multiusuario. Comença activant l'intérpret del llenguage de control shell d'Unix en la terminal principal, o consola del sistema, proporcionant-li privilegis de superusuario. En la modalitat d'un sol usuari la consola permet iniciar una primera sessió, en privilegis especials, i impedix que les atres llínees de comunicació accepten iniciar sessions noves. Esta modalitat s'usa en freqüència per a revisar i reparar sistemes d'archius, realisar proves de funcions bàsiques del sistema i per a atres activitats que requerixen us exclusiu de la computadora.

Init crea un atre procés, que espera a que algú entre en sessió en alguna llínea de comunicació. Quan açò succeïx, realisa ajusts en el protocol de la llínea i eixecuta el programa login, que s'encarrega d'atendre inicialment als nous usuaris. Si el nom d'usuari i la contrasenya proporcionades són correctes, llavors entra en operació el programa Shell, que en lo sucesivo s'encarregarà de l'atenció normal de l'usuari que es va donar d'alta en eixa terminal.

A partir d'eixe moment el responsable d'atendre a l'usuari en eixa terminal és l'intérpret Shell. Quan es desija terminar la sessió cal desconectar-se de Shell (i, per lo tant, d'Unix), per mig d'una seqüència especial de tecles (usualment. < CTL > - D). A partir d'eixe moment la terminal queda disponible per a atendre a un nou usuari.

Tipos de sistemes

No necessàriament es necessita un núcleu per a usar una computadora. Els programes poden carregar-se i eixecutar-se directament en una computadora buida, sempre que els seus autors vullguen desenrollar-los sense usar cap abstracció del hardware ni cap ajuda del sistema operatiu. Esta era la forma normal d'usar moltes de les primeres computadores: per a usar distints programes es tenia que reiniciar i reconfigurar la computadora cada volta. En el temps, es va escomençar a deixar en memòria (encara entre distintes eixecucions) chicotets programes auxiliars, com el carregador i el depurador, o es carregaven des de memòria de solament llectura. A mida que es varen ser desenrollant, es varen convertir en els fonaments de lo que aplegarien a ser els primers núcleus de sistema operatiu.

Hi ha quatre grans tipos de núcleus:

  • Els micronúcleus (en anglés microkernel) proporcionen un chicotet conjunt d'abstracció simples del hardware, i usen les aplicacions anomenades servidorés per a oferir major funcionalitat.[3]
  • Els núcleus híbrits (micronúcleus modificats) són molt semblats als micronúcleus purs, llevat perque inclouen còdic adicional en l'espai de núcleu per a que s'eixecute més ràpidament.
  • Els exonúcleos no faciliten cap abstracció, pero permeten l'us de biblioteques que proporcionen major funcionalitat gràcies a l'accés directe o casi directe a l'hardware.

Micronúcleus

Erro al crear miniatura:
Esquema del funcionament d'un micronúcleu.
Artícul principal → Micronúcleu.


L'enfocament micronúcleu consistix en definir una abstracció molt simple sobre l'hardware, en un conjunt de primitives o cridades al sistema que implementen servicis del sistema operatiu mínims, com la gestió de fils, l'espai de direccionament i la comunicació entre processos.

L'objectiu principal és la separació de l'implementació dels servicis bàsics i de la política de funcionament del sistema. Per eixemple, el procés de bloqueig d'I/S es pot implementar en un servidor en espai d'usuari eixecutant-se damunt del micronúcleu. Estos servidors d'usuari, utilisats per a gestionar les parts d'alt nivell del sistema, són molt modular i simplifiquen l'estructura i disseny del núcleu. Si falla un d'estos servidors, no es penjarà el sistema sancer, i es podrà reiniciar este mòdul independentment del restant. No obstant, l'existència de diferents mòduls independents origina retardos en la comunicació per la còpia de variables que es realisa en la comunicació entre mòduls.

Alguns eixemples de micronúcleus:

  • AIX
  • La família de micronúcleus L4

Núcleus monolítics en contraposició a micronúcleus

Artícul principal → Núcleu monolític.


Freqüentment es preferixen els núcleus monolítics front als micronúcleus pel menor nivell de complexitat que comporta el tractar en tot el còdic de control del sistema en un sol espai de direccionament. Per eixemple, XNU, el núcleu de Mac VOS X, està basat en el núcleu Mach 3.0 i en FreeBSD, en el mateix espai de direccionament per a disminuir la latencia que comporta el disseny de micronúcleu convencional.

A principis dels anys 1990, els núcleus monolítics es consideraven obsolets. El disseny de Linux com un núcleu monolític en lloc de com un micronúcleu va ser el tema d'una famosa disputa[4] entre Linus Torvalds i Andrew Tanenbaum. Els arguments d'abdós parts en esta discussió presenten algunes motivacions interessants.

Els núcleus monolítics solen ser més fàcils de dissenyar correctament, i per lo tant poden créixer més ràpidament que un sistema basat en micronúcleu, pero hi ha casos d'èxit en abdós bandos. Els micronúcleus solen usar-se en robòtica embebida o computadores mèdiques, ya que la majoria dels components del sistema operatiu residixen en el seu propi espai de memòria privat i protegit. Açò no seria possible en els núcleus monolítics, ni tan sols en els moderns que permeten carregar mòduls del núcleu.

Encara que Mach és el micronúcleu generaliste més conegut, s'han desenrollat atres micronúcleus en propòsits més específics. L3 va ser creat per a demostrar que els micronúcleus no són necessàriament llents. La família de micronúcleus L4 és la descendent de L3, i una de les seues últimes implementacions, cridada Pistachio, permet eixecutar Linux simultàneament en atres processos, en espais de direccionament separats.

QNX és un sistema operatiu que ha estat disponible des de principis dels anys 80, i té un disseny de micronúcleu molt minimaliste. Este sistema ha conseguit aplegar a les metes del paradigma del micronúcleu en molt més èxit que Mach. S'usa en situacions en que no es pot permetre que hi haja fallos de software, lo que inclou des de braços robòtics en naus espacials, fins a màquines que polixen cristal a on un chicotet error podria costar molts diners.

Molta gent creu que com Mach bàsicament va fallar en l'intent de resoldre el conjunt de problemes que els micronúcleus intentaven subsanar, tota la tecnologia de micronúcleus és inútil. Els partidaris de Mach afirmen que esta és una actitut estreta de mires que ha aplegat a ser lo suficientment popular per a que molta gent l'accepte com a veritat.

Núcleus híbrits (micronúcleus modificats)

Artícul principal → Núcleu híbrit.


Els núcleus híbrits fonamentalment són micronúcleus que tenen una miqueta de còdic «no essencial» en espai de núcleu per a que este s'eixecute més ràpit de lo que ho faria si estiguera en espai d'usuari. Est va ser un compromís que molts desenrolladors dels primers sistemes operatius en arquitectura basada en micronúcleu varen adoptar ans que es demostrara que els micronúcleus poden tindre molt bon rendiment. La majoria de sistemes operatius moderns pertanyen a esta categoria, sent el més popular Microsoft Windows. XNU, el núcleu de Mac VOS X, també és un micronúcleu modificat, per l'inclusió de còdic del núcleu de FreeBSD en el núcleu basat en Mach. DragonFlyBSD és el primer sistema BSD que adopta una arquitectura de núcleu híbrit sense basar-se en Mach.

Alguns eixemples de núcleus híbrits:

Hi ha gent que confon el terme núcleu híbrit en els núcleus monolítics que poden carregar mòduls despuix de l'arrancada, lo que és un error. Híbrit implica que el núcleu en qüestió usa conceptes d'arquitectura o mecanismes tant del disseny monolític com del micronúcleu, específicament el pas de mensages i la migració de còdic no essencial cap a l'espai d'usuari, pero mantenint cert còdic no essencial en el propi núcleu per raons de rendiment.

Exonúcleos

Artícul principal → Exonúcleo.


Erro al crear miniatura:
Esquema bàsic de l'interacció entre un exonúcleo (exokernel) en el software a través de biblioteques.

Els exonúcleos, també coneguts com a sistemes operatius verticalment estructurats, representen una aproximació radicalment nova al disseny de sistemes operatius.

L'idea subjacent és permetre que el desenrollador prenga totes les decisions relatives al rendiment del hardware. Els exonúcleos són extremadament menuts, ya que llimiten expressament la seua funcionalitat a la protecció i el multiplexado dels recursos. Es diuen aixina perque tota la funcionalitat deixa d'estar resident en memòria i passa a estar fòra, en biblioteques dinàmiques.

Els dissenys de núcleus clàssics (tant el monolític com el micronúcleu) abstrauen l'hardware, amagant els recursos baix una capa d'abstracció del hardware, o darrere dels controladors de dispositiu. En els sistemes clàssics, si s'assigna memòria física, ningú pot estar segur de quin és la seua localisació real, per eixemple.

La finalitat d'un exonúcleo és permetre a una aplicació que solicite 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 a ells.

Degut a que l'exonúcleo solament proporciona un interfaç a l'hardware de molt baix nivell, carint de totes les funcionalitats d'alt nivell d'atres sistemes operatius, est és complementat per una biblioteca de sistema operatiu. Esta biblioteca es comunica en l'exonúcleo subjacent, i facilita als programadors d'aplicacions les funcionalitats que són comunes en atres sistemes operatius.

Algunes de les implicacions teòriques d'un sistema exonúcleo són que és possible tindre distints tipos de sistemes operatius (p. i. Windows, Unix) eixecutant-se en un sol exonúcleo, i que els desenrolladors poden elegir prescindir o incrementar funcionalitats per motius de rendiment.

Actualment, els dissenys exonúcleo estan fonamentalment en fase d'estudi i no s'usen en cap sistema popular. Un concepte de sistema operatiu és Nemesis, creat per l'Universitat de Cambridge, l'Universitat de Glasgow, Citrix Systems i l'Institut Suec d'Informàtica. el MIT també ha dissenyat alguns sistemes basats en exonúcleos.

Els exonúcleos es manegen en diferent estructura ya que també complixen funcions distintes.

Referències

  1. ↑ gnu. org (ed.): «What is the GNU Hurd?» (en anglés). Consultat el 18 de febrer de 2010.
  2. ↑ Barr, Michael (1999). «5 Getting to know the hardware», Programming Embedded Systems in C and C++, 1ª edició (en anglés), O'Reilly, pp. 54-55. ISBN 1565923545.
  3. ↑ QNX Software Systems (ed.): «QNX Operating System: Project overview» (en anglés). Consultat el 10 de febrer de 2010.
  4. ↑ un resum de la disputa entre Linus Torvalds i Andrew Tanenbaum (en anglés).

Vore també

Enllaços externs

Commons