fbpx
Wikipedia

Núcleo (informática)

En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo privilegiado (conocido también como modo núcleo).[1]​ Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá usar un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiprogramación. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporcionar una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.

En algunos sistemas operativos, no existe un núcleo como tal (algo común en sistemas empotrados), debido a que en ciertas arquitecturas no hay distintos modos de ejecución.

Técnica

Cuando se aplica voltaje al procesador de un dispositivo electrónico, este ejecuta un reducido código en lenguaje ensamblador localizado en una dirección concreta en la memoria ROM (dirección de reset) y conocido como reset code, que a su vez ejecuta una rutina con la que se inicializa el hardware que acompaña al procesador. También en esta fase suele inicializarse el controlador de las interrupciones. Finalizada esta fase se ejecuta el código de arranque (startup code), también código en lenguaje ensamblador, cuya tarea más importante es ejecutar el programa principal (main()) del software de la aplicación.[2]

Generalidades

En informática, los sistemas operativos son el núcleo del ordenador que se asegura de:

  • La comunicación entre los programas que solicitan recursos y el hardware.
  • Gestión de los distintos programas informáticos (tareas) de una máquina.
  • Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.)

La mayoría de las interfaces de usuario se construyen en torno al concepto de núcleo. La existencia de un núcleo, es decir, de un único programa responsable de la comunicación entre el hardware y el programa informático, resulta de compromisos complejos referentes a cuestiones de resultados, seguridad y arquitectura de los procesadores. El núcleo tiene grandes poderes sobre la utilización de los recursos materiales (hardware), en particular, de la memoria.

Funciones generalmente ejercidas por un núcleo

Los núcleos tienen como funciones básicas garantizar la carga y la ejecución de los procesos, las entradas/salidas y proponer una interfaz entre el espacio núcleo y los programas del espacio del usuario.

Aparte de las funcionalidades básicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos materiales, las funciones de redes y sistemas de ficheros o los servicios) necesariamente no son proporcionados por un núcleo de sistema de explotación. Pueden establecerse estas funciones del sistema de explotación tanto en el espacio usuario como en el propio núcleo. Su implantación en el núcleo se hace con el único objetivo de mejorar los resultados. En efecto, según la concepción del núcleo, la misma función llamada desde el espacio usuario o el espacio núcleo tiene un coste temporal obviamente diferente. Si esta llamada de funciones es frecuente, puede resultar útil integrar estas funciones al núcleo para mejorar los resultados.

Unix

 
la migración de nivel inferior sin conexión se realizó correctamente. Una entidad que no sea el gestor de energía del núcleo acelera el procesador ' 1: Cambios en el estado de alimentación en esta máquina 2: Cambios en la interfaz de red o topología de red

Un núcleo Unix es un programa escrito casi en su totalidad en lenguaje C, con excepción de una parte del manejo de interrupciones, expresada en el lenguaje ensamblador del procesador en el que opera. Las funciones del núcleo son permitir la existencia de un ambiente en el que sea posible atender a varios usuarios y múltiples tareas en forma concurrente, repartiendo al procesador entre todos ellos, e intentando mantener en grado óptimo la atención individual.

El núcleo opera como asignador de recursos para cualquier proceso que necesite utilizar las facilidades de cómputo. Sus funciones principales son:

  • Creación de procesos, asignación de tiempos de atención y sincronización.
  • Asignación de la atención del procesador a los procesos que lo requieren.
  • Administración de espacio en el sistema de archivos, que incluye: acceso, protección y administración de usuarios; comunicación entre usuarios y entre procesos, y manipulación de E/S y administración de periféricos.
  • Supervisión de la transmisión de datos entre la memoria principal y los dispositivos periféricos.

Reside siempre en la memoria principal y tiene el control sobre la computadora, por lo que ningún otro proceso puede interrumpirlo; solo pueden llamarlo para que proporcione algún servicio de los ya mencionados. Un proceso llama al núcleo mediante módulos especiales conocidos como llamadas al sistema.

Consta de dos partes principales: la sección de control de procesos y la de control de dispositivos. La primera asigna recursos, programas, procesos y atiende sus requerimientos de servicio; la segunda, supervisa la transferencia de datos entre la memoria principal y los dispositivos del ordenador. En términos generales, cada vez que algún usuario oprime una tecla de una terminal, o que se debe leer o escribir información del disco magnético, se interrumpe al procesador central y el núcleo se encarga de efectuar la operación de transferencia.

Cuando se inicia la operación de la computadora, debe cargarse en la memoria una copia del núcleo, que reside en el disco magnético (operación denominada bootstrap). Para ello, se deben inicializar algunas interfaces básicas de hardware; entre ellas, el reloj que proporciona interrupciones periódicas. El núcleo también prepara algunas estructuras de datos que abarcan una sección de almacenamiento temporal para transferencia de información entre terminales y procesos, una sección para almacenamiento de descriptores de archivos y una variable que indica la cantidad de memoria principal.

A continuación, el núcleo inicializa un proceso especial, llamado proceso 0. En Unix, los procesos se crean mediante una llamada a una rutina del sistema (fork), que funciona por un mecanismo de duplicación de procesos. Sin embargo, esto no es suficiente para crear el primero de ellos, por lo que el núcleo asigna una estructura de datos y establece apuntadores a una sección especial de la memoria, llamada tabla de procesos, que contendrá los descriptores de cada uno de los procesos existentes en el sistema.

Después de haber creado el proceso cero, se hace una copia del mismo, con lo que se crea el proceso uno; este muy pronto se encargará de dar vida al sistema completo, mediante la activación de otros procesos que también forman parte del núcleo. Es decir, se inicia una cadena de activaciones de procesos, entre los cuales destaca el conocido como despachador, o planificador, que es el responsable de decidir cuál proceso se ejecutará y cuáles van a entrar o salir de la memoria central. A partir de ese momento se conoce el número uno como proceso de inicialización del sistema, init.

El proceso init es el responsable de establecer la estructura de procesos en Unix. Normalmente, es capaz de crear al menos dos estructuras distintas de procesos: el modo monousuario y el multiusuario. Comienza activando el intérprete del lenguaje de control shell de Unix en la terminal principal, o consola del sistema, proporcionándole privilegios de superusuario. En la modalidad de un solo usuario la consola permite iniciar una primera sesión, con privilegios especiales, e impide que las otras líneas de comunicación acepten iniciar sesiones nuevas. Esta modalidad se usa con frecuencia para revisar y reparar sistemas de archivos, realizar pruebas de funciones básicas del sistema y para otras actividades que requieren uso exclusivo de la computadora.

Init crea otro proceso, que espera a que alguien entre en sesión en alguna línea de comunicación. Cuando esto sucede, realiza ajustes en el protocolo de la línea y ejecuta el programa login, que se encarga de atender inicialmente a los nuevos usuarios. Si el nombre de usuario y la contraseña proporcionadas son correctos, entonces entra en operación el programa Shell, que en lo sucesivo se encargará de la atención normal del usuario que se dio de alta en esa terminal.

A partir de ese momento el responsable de atender al usuario en esa terminal es el intérprete Shell. Cuando se desea terminar la sesión hay que desconectarse de Shell (y, por lo tanto, de Unix), mediante una secuencia especial de teclas (usualmente. < CTL > - D). A partir de ese momento la terminal queda disponible para atender a un nuevo usuario.

Tipos de sistemas

No necesariamente se necesita un núcleo para usar una computadora. Los programas pueden cargarse y ejecutarse directamente en una computadora vacía, siempre que sus autores quieran desarrollarlos sin usar ninguna abstracción del hardware ni ninguna ayuda del sistema operativo. Esta era la forma normal de usar muchas de las primeras computadoras: para usar distintos programas se tenía que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones) pequeños programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de solo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegarían a ser los primeros núcleos de sistema operativo.

Hay cuatro grandes tipos de núcleos:

  • Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente potentes y variadas.
  • Los micronúcleos (en inglés microkernel) proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.[3]
  • Los núcleos híbridos (micronúcleos modificados) son muy parecidos a los micronúcleos puros, excepto porque incluyen código adicional en el espacio de núcleo para que se ejecute más rápidamente.
  • Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.

Micronúcleos

 
Esquema del funcionamiento de un micronúcleo.

El enfoque micronúcleo consiste en definir una abstracción muy simple sobre el hardware, con un conjunto de primitivas o llamadas al sistema que implementan servicios del sistema operativo mínimos, como la gestión de hilos, el espacio de direccionamiento y la comunicación entre procesos.

El objetivo principal es la separación de la implementación de los servicios básicos y de la política de funcionamiento del sistema. Por ejemplo, el proceso de bloqueo de E/S se puede implementar con un servidor en espacio de usuario ejecutándose encima del micronúcleo. Estos servidores de usuario, utilizados para gestionar las partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseño del núcleo. Si falla uno de estos servidores, no se colgará el sistema entero, y se podrá reiniciar este módulo independientemente del resto. Sin embargo, la existencia de diferentes módulos independientes origina retardos en la comunicación debido a la copia de variables que se realiza en la comunicación entre módulos.

Algunos ejemplos de micronúcleos:

Núcleos monolíticos en contraposición a micronúcleos

Frecuentemente se prefieren los núcleos monolíticos frente a los micronúcleos debido al menor nivel de complejidad que comporta el tratar con todo el código de control del sistema en un solo espacio de direccionamiento. Por ejemplo, XNU, el núcleo de Mac OS X, está basado en el núcleo Mach 3.0 y en FreeBSD, en el mismo espacio de direccionamiento para disminuir la latencia que comporta el diseño de micronúcleo convencional.

A principios de los años 1990, los núcleos monolíticos se consideraban obsoletos. El diseño de Linux como un núcleo monolítico en lugar de como un micronúcleo fue el tema de una famosa disputa[4]​ entre Linus Torvalds y Andrew Tanenbaum. Los argumentos de ambas partes en esta discusión presentan algunas motivaciones interesantes.

Los núcleos monolíticos suelen ser más fáciles de diseñar correctamente, y por lo tanto pueden crecer más rápidamente que un sistema basado en micronúcleo, pero hay casos de éxito en ambos bandos. Los micronúcleos suelen usarse en robótica embebida o computadoras médicas, ya que la mayoría de los componentes del sistema operativo residen en su propio espacio de memoria privado y protegido. Esto no sería posible con los núcleos monolíticos, ni siquiera con los modernos que permiten cargar módulos del núcleo.

Aunque Mach es el micronúcleo generalista más conocido, se han desarrollado otros micronúcleos con propósitos más específicos. L3 fue creado para demostrar que los micronúcleos no son necesariamente lentos. La familia de micronúcleos L4 es la descendiente de L3, y una de sus últimas implementaciones, llamada Pistachio, permite ejecutar Linux simultáneamente con otros procesos, en espacios de direccionamiento separados.

QNX es un sistema operativo que ha estado disponible desde principios de los años 80, y tiene un diseño de micronúcleo muy minimalista. Este sistema ha conseguido llegar a las metas del paradigma del micronúcleo con mucho más éxito que Mach. Se usa en situaciones en que no se puede permitir que haya fallos de software, lo que incluye desde brazos robóticos en naves espaciales, hasta máquinas que pulen cristal donde un pequeño error podría costar mucho dinero.

Mucha gente cree que como Mach básicamente falló en el intento de resolver el conjunto de problemas que los micronúcleos intentaban subsanar, toda la tecnología de micronúcleos es inútil. Los partidarios de Mach afirman que ésta es una actitud estrecha de miras que ha llegado a ser lo suficientemente popular para que mucha gente la acepte como verdad.

Núcleos híbridos (micronúcleos modificados)

Los núcleos híbridos fundamentalmente son micronúcleos que tienen algo de código «no esencial» en espacio de núcleo para que este se ejecute más rápido de lo que lo haría si estuviera en espacio de usuario. Este fue un compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en micronúcleo adoptaron antes de que se demostrara que los micronúcleos pueden tener muy buen rendimiento. La mayoría de sistemas operativos modernos pertenecen a esta categoría, siendo el más popular Microsoft Windows. XNU, el núcleo de Mac OS X, también es un micronúcleo modificado, debido a la inclusión de código del núcleo de FreeBSD en el núcleo basado en Mach. DragonFlyBSD es el primer sistema BSD que adopta una arquitectura de núcleo híbrido sin basarse en Mach.

Algunos ejemplos de núcleos híbridos:

Hay gente que confunde el término núcleo híbrido con los núcleos monolíticos que pueden cargar módulos después del arranque, lo que es un error. Híbrido implica que el núcleo en cuestión usa conceptos de arquitectura o mecanismos tanto del diseño monolítico como del micronúcleo, específicamente el paso de mensajes y la migración de código no esencial hacia el espacio de usuario, pero manteniendo cierto código no esencial en el propio núcleo por razones de rendimiento.

Exonúcleos

 
Esquema básico de la interacción entre un exonúcleo (exokernel) con el software a través de bibliotecas.

Los exonúcleos, también conocidos como sistemas operativos verticalmente estructurados, representan una aproximación radicalmente nueva al diseño de sistemas operativos.

La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware. Los exonúcleos son extremadamente pequeños, ya que limitan expresamente su funcionalidad a la protección y el multiplexado de los recursos. Se llaman así porque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera, en bibliotecas dinámicas.

Los diseños de núcleos clásicos (tanto el monolítico como el micronúcleo) abstraen el hardware, escondiendo los recursos bajo una capa de abstracción del hardware, o detrás de los controladores de dispositivo. En los sistemas clásicos, si se asigna memoria física, nadie puede estar seguro de cuál es su localización real, por ejemplo.

La finalidad de un exonúcleo es permitir a una aplicación que solicite una región específica de la memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos están disponibles, y que el programa tiene derecho a acceder a ellos.

Debido a que el exonúcleo solo proporciona una interfaz al hardware de muy bajo nivel, careciendo de todas las funcionalidades de alto nivel de otros sistemas operativos, este es complementado por una biblioteca de sistema operativo. Esta biblioteca se comunica con el exonúcleo subyacente, y facilita a los programadores de aplicaciones las funcionalidades que son comunes en otros sistemas operativos.

Algunas de las implicaciones teóricas de un sistema exonúcleo son que es posible tener distintos tipos de sistemas operativos (p. e. Windows, Unix) ejecutándose en un solo exonúcleo, y que los desarrolladores pueden elegir prescindir o incrementar funcionalidades por motivos de rendimiento.

Actualmente, los diseños exonúcleo están fundamentalmente en fase de estudio y no se usan en ningún sistema popular. Un concepto de sistema operativo es Nemesis, creado por la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systems y el Instituto Sueco de Informática. El MIT también ha diseñado algunos sistemas basados en exonúcleos. Los exonúcleos se manejan en diferente estructura dado que también cumplen funciones distintas.

Referencias

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

Véase también

Enlaces externos

  • kernel-labs.org - Kernel labs (inglés)


  •   Datos: Q9662
  •   Multimedia: Operating system kernels

núcleo, informática, informática, núcleo, kernel, raíz, germánica, kern, núcleo, hueso, software, constituye, parte, fundamental, sistema, operativo, define, como, parte, ejecuta, modo, privilegiado, conocido, también, como, modo, núcleo, principal, responsabl. En informatica un nucleo o kernel de la raiz germanica Kern nucleo hueso es un software que constituye una parte fundamental del sistema operativo y se define como la parte que se ejecuta en modo privilegiado conocido tambien como modo nucleo 1 Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma basica es el encargado de gestionar recursos a traves de servicios de llamada al sistema Como hay muchos programas y el acceso al hardware es limitado tambien se encarga de decidir que programa podra usar un dispositivo de hardware y durante cuanto tiempo lo que se conoce como multiprogramacion Acceder al hardware directamente puede ser realmente complejo por lo que los nucleos suelen implementar una serie de abstracciones del hardware Esto permite esconder la complejidad y proporcionar una interfaz limpia y uniforme al hardware subyacente lo que facilita su uso al programador En algunos sistemas operativos no existe un nucleo como tal algo comun en sistemas empotrados debido a que en ciertas arquitecturas no hay distintos modos de ejecucion Indice 1 Tecnica 2 Generalidades 2 1 Funciones generalmente ejercidas por un nucleo 2 2 Unix 3 Tipos de sistemas 3 1 Micronucleos 3 2 Nucleos monoliticos en contraposicion a micronucleos 3 3 Nucleos hibridos micronucleos modificados 3 4 Exonucleos 4 Referencias 5 Vease tambien 6 Enlaces externosTecnica EditarCuando se aplica voltaje al procesador de un dispositivo electronico este ejecuta un reducido codigo en lenguaje ensamblador localizado en una direccion concreta en la memoria ROM direccion de reset y conocido como reset code que a su vez ejecuta una rutina con la que se inicializa el hardware que acompana al procesador Tambien en esta fase suele inicializarse el controlador de las interrupciones Finalizada esta fase se ejecuta el codigo de arranque startup code tambien codigo en lenguaje ensamblador cuya tarea mas importante es ejecutar el programa principal main del software de la aplicacion 2 Generalidades EditarEn informatica los sistemas operativos son el nucleo del ordenador que se asegura de La comunicacion entre los programas que solicitan recursos y el hardware Gestion de los distintos programas informaticos tareas de una maquina Gestion del hardware memoria procesador periferico forma de almacenamiento etc La mayoria de las interfaces de usuario se construyen en torno al concepto de nucleo La existencia de un nucleo es decir de un unico programa responsable de la comunicacion entre el hardware y el programa informatico resulta de compromisos complejos referentes a cuestiones de resultados seguridad y arquitectura de los procesadores El nucleo tiene grandes poderes sobre la utilizacion de los recursos materiales hardware en particular de la memoria Funciones generalmente ejercidas por un nucleo Editar Los nucleos tienen como funciones basicas garantizar la carga y la ejecucion de los procesos las entradas salidas y proponer una interfaz entre el espacio nucleo y los programas del espacio del usuario Aparte de las funcionalidades basicas el conjunto de las funciones de los puntos siguientes incluidos los pilotos materiales las funciones de redes y sistemas de ficheros o los servicios necesariamente no son proporcionados por un nucleo de sistema de explotacion Pueden establecerse estas funciones del sistema de explotacion tanto en el espacio usuario como en el propio nucleo Su implantacion en el nucleo se hace con el unico objetivo de mejorar los resultados En efecto segun la concepcion del nucleo la misma funcion llamada desde el espacio usuario o el espacio nucleo tiene un coste temporal obviamente diferente Si esta llamada de funciones es frecuente puede resultar util integrar estas funciones al nucleo para mejorar los resultados Unix Editar la migracion de nivel inferior sin conexion se realizo correctamente Una entidad que no sea el gestor de energia del nucleo acelera el procesador 1 Cambios en el estado de alimentacion en esta maquina 2 Cambios en la interfaz de red o topologia de red Un nucleo Unix es un programa escrito casi en su totalidad en lenguaje C con excepcion de una parte del manejo de interrupciones expresada en el lenguaje ensamblador del procesador en el que opera Las funciones del nucleo son permitir la existencia de un ambiente en el que sea posible atender a varios usuarios y multiples tareas en forma concurrente repartiendo al procesador entre todos ellos e intentando mantener en grado optimo la atencion individual El nucleo opera como asignador de recursos para cualquier proceso que necesite utilizar las facilidades de computo Sus funciones principales son Creacion de procesos asignacion de tiempos de atencion y sincronizacion Asignacion de la atencion del procesador a los procesos que lo requieren Administracion de espacio en el sistema de archivos que incluye acceso proteccion y administracion de usuarios comunicacion entre usuarios y entre procesos y manipulacion de E S y administracion de perifericos Supervision de la transmision de datos entre la memoria principal y los dispositivos perifericos Reside siempre en la memoria principal y tiene el control sobre la computadora por lo que ningun otro proceso puede interrumpirlo solo pueden llamarlo para que proporcione algun servicio de los ya mencionados Un proceso llama al nucleo mediante modulos especiales conocidos como llamadas al sistema Consta de dos partes principales la seccion de control de procesos y la de control de dispositivos La primera asigna recursos programas procesos y atiende sus requerimientos de servicio la segunda supervisa la transferencia de datos entre la memoria principal y los dispositivos del ordenador En terminos generales cada vez que algun usuario oprime una tecla de una terminal o que se debe leer o escribir informacion del disco magnetico se interrumpe al procesador central y el nucleo se encarga de efectuar la operacion de transferencia Cuando se inicia la operacion de la computadora debe cargarse en la memoria una copia del nucleo que reside en el disco magnetico operacion denominada bootstrap Para ello se deben inicializar algunas interfaces basicas de hardware entre ellas el reloj que proporciona interrupciones periodicas El nucleo tambien prepara algunas estructuras de datos que abarcan una seccion de almacenamiento temporal para transferencia de informacion entre terminales y procesos una seccion para almacenamiento de descriptores de archivos y una variable que indica la cantidad de memoria principal A continuacion el nucleo inicializa un proceso especial llamado proceso 0 En Unix los procesos se crean mediante una llamada a una rutina del sistema fork que funciona por un mecanismo de duplicacion de procesos Sin embargo esto no es suficiente para crear el primero de ellos por lo que el nucleo asigna una estructura de datos y establece apuntadores a una seccion especial de la memoria llamada tabla de procesos que contendra los descriptores de cada uno de los procesos existentes en el sistema Despues de haber creado el proceso cero se hace una copia del mismo con lo que se crea el proceso uno este muy pronto se encargara de dar vida al sistema completo mediante la activacion de otros procesos que tambien forman parte del nucleo Es decir se inicia una cadena de activaciones de procesos entre los cuales destaca el conocido como despachador o planificador que es el responsable de decidir cual proceso se ejecutara y cuales van a entrar o salir de la memoria central A partir de ese momento se conoce el numero uno como proceso de inicializacion del sistema init El proceso init es el responsable de establecer la estructura de procesos en Unix Normalmente es capaz de crear al menos dos estructuras distintas de procesos el modo monousuario y el multiusuario Comienza activando el interprete del lenguaje de control shell de Unix en la terminal principal o consola del sistema proporcionandole privilegios de superusuario En la modalidad de un solo usuario la consola permite iniciar una primera sesion con privilegios especiales e impide que las otras lineas de comunicacion acepten iniciar sesiones nuevas Esta modalidad se usa con frecuencia para revisar y reparar sistemas de archivos realizar pruebas de funciones basicas del sistema y para otras actividades que requieren uso exclusivo de la computadora Init crea otro proceso que espera a que alguien entre en sesion en alguna linea de comunicacion Cuando esto sucede realiza ajustes en el protocolo de la linea y ejecuta el programa login que se encarga de atender inicialmente a los nuevos usuarios Si el nombre de usuario y la contrasena proporcionadas son correctos entonces entra en operacion el programa Shell que en lo sucesivo se encargara de la atencion normal del usuario que se dio de alta en esa terminal A partir de ese momento el responsable de atender al usuario en esa terminal es el interprete Shell Cuando se desea terminar la sesion hay que desconectarse de Shell y por lo tanto de Unix mediante una secuencia especial de teclas usualmente lt CTL gt D A partir de ese momento la terminal queda disponible para atender a un nuevo usuario Tipos de sistemas EditarNo necesariamente se necesita un nucleo para usar una computadora Los programas pueden cargarse y ejecutarse directamente en una computadora vacia siempre que sus autores quieran desarrollarlos sin usar ninguna abstraccion del hardware ni ninguna ayuda del sistema operativo Esta era la forma normal de usar muchas de las primeras computadoras para usar distintos programas se tenia que reiniciar y reconfigurar la computadora cada vez Con el tiempo se empezo a dejar en memoria aun entre distintas ejecuciones pequenos programas auxiliares como el cargador y el depurador o se cargaban desde memoria de solo lectura A medida que se fueron desarrollando se convirtieron en los fundamentos de lo que llegarian a ser los primeros nucleos de sistema operativo Hay cuatro grandes tipos de nucleos Los nucleos monoliticos facilitan abstracciones del hardware subyacente realmente potentes y variadas Los micronucleos en ingles microkernel proporcionan un pequeno conjunto de abstracciones simples del hardware y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad 3 Los nucleos hibridos micronucleos modificados son muy parecidos a los micronucleos puros excepto porque incluyen codigo adicional en el espacio de nucleo para que se ejecute mas rapidamente Los exonucleos no facilitan ninguna abstraccion pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware Micronucleos Editar Esquema del funcionamiento de un micronucleo Articulo principal Micronucleo El enfoque micronucleo consiste en definir una abstraccion muy simple sobre el hardware con un conjunto de primitivas o llamadas al sistema que implementan servicios del sistema operativo minimos como la gestion de hilos el espacio de direccionamiento y la comunicacion entre procesos El objetivo principal es la separacion de la implementacion de los servicios basicos y de la politica de funcionamiento del sistema Por ejemplo el proceso de bloqueo de E S se puede implementar con un servidor en espacio de usuario ejecutandose encima del micronucleo Estos servidores de usuario utilizados para gestionar las partes de alto nivel del sistema son muy modulares y simplifican la estructura y diseno del nucleo Si falla uno de estos servidores no se colgara el sistema entero y se podra reiniciar este modulo independientemente del resto Sin embargo la existencia de diferentes modulos independientes origina retardos en la comunicacion debido a la copia de variables que se realiza en la comunicacion entre modulos Algunos ejemplos de micronucleos AIX La familia de micronucleos L4 El micronucleo Mach usado en GNU Hurd y en Mac OS X BeOS Minix MorphOS QNX RadiOS VSTa HurdNucleos monoliticos en contraposicion a micronucleos Editar Articulos principales Nucleo monoliticoy Micronucleo Frecuentemente se prefieren los nucleos monoliticos frente a los micronucleos debido al menor nivel de complejidad que comporta el tratar con todo el codigo de control del sistema en un solo espacio de direccionamiento Por ejemplo XNU el nucleo de Mac OS X esta basado en el nucleo Mach 3 0 y en FreeBSD en el mismo espacio de direccionamiento para disminuir la latencia que comporta el diseno de micronucleo convencional A principios de los anos 1990 los nucleos monoliticos se consideraban obsoletos El diseno de Linux como un nucleo monolitico en lugar de como un micronucleo fue el tema de una famosa disputa 4 entre Linus Torvalds y Andrew Tanenbaum Los argumentos de ambas partes en esta discusion presentan algunas motivaciones interesantes Los nucleos monoliticos suelen ser mas faciles de disenar correctamente y por lo tanto pueden crecer mas rapidamente que un sistema basado en micronucleo pero hay casos de exito en ambos bandos Los micronucleos suelen usarse en robotica embebida o computadoras medicas ya que la mayoria de los componentes del sistema operativo residen en su propio espacio de memoria privado y protegido Esto no seria posible con los nucleos monoliticos ni siquiera con los modernos que permiten cargar modulos del nucleo Aunque Mach es el micronucleo generalista mas conocido se han desarrollado otros micronucleos con propositos mas especificos L3 fue creado para demostrar que los micronucleos no son necesariamente lentos La familia de micronucleos L4 es la descendiente de L3 y una de sus ultimas implementaciones llamada Pistachio permite ejecutar Linux simultaneamente con otros procesos en espacios de direccionamiento separados QNX es un sistema operativo que ha estado disponible desde principios de los anos 80 y tiene un diseno de micronucleo muy minimalista Este sistema ha conseguido llegar a las metas del paradigma del micronucleo con mucho mas exito que Mach Se usa en situaciones en que no se puede permitir que haya fallos de software lo que incluye desde brazos roboticos en naves espaciales hasta maquinas que pulen cristal donde un pequeno error podria costar mucho dinero Mucha gente cree que como Mach basicamente fallo en el intento de resolver el conjunto de problemas que los micronucleos intentaban subsanar toda la tecnologia de micronucleos es inutil Los partidarios de Mach afirman que esta es una actitud estrecha de miras que ha llegado a ser lo suficientemente popular para que mucha gente la acepte como verdad Nucleos hibridos micronucleos modificados Editar Articulo principal Nucleo hibrido Los nucleos hibridos fundamentalmente son micronucleos que tienen algo de codigo no esencial en espacio de nucleo para que este se ejecute mas rapido de lo que lo haria si estuviera en espacio de usuario Este fue un compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en micronucleo adoptaron antes de que se demostrara que los micronucleos pueden tener muy buen rendimiento La mayoria de sistemas operativos modernos pertenecen a esta categoria siendo el mas popular Microsoft Windows XNU el nucleo de Mac OS X tambien es un micronucleo modificado debido a la inclusion de codigo del nucleo de FreeBSD en el nucleo basado en Mach DragonFlyBSD es el primer sistema BSD que adopta una arquitectura de nucleo hibrido sin basarse en Mach Algunos ejemplos de nucleos hibridos Microsoft Windows NT usado en todos los sistemas que usan el codigo base de Windows NT XNU usado en Mac OS X DragonFlyBSD ReactOSHay gente que confunde el termino nucleo hibrido con los nucleos monoliticos que pueden cargar modulos despues del arranque lo que es un error Hibrido implica que el nucleo en cuestion usa conceptos de arquitectura o mecanismos tanto del diseno monolitico como del micronucleo especificamente el paso de mensajes y la migracion de codigo no esencial hacia el espacio de usuario pero manteniendo cierto codigo no esencial en el propio nucleo por razones de rendimiento Exonucleos Editar Articulo principal Exonucleo Esquema basico de la interaccion entre un exonucleo exokernel con el software a traves de bibliotecas Los exonucleos tambien conocidos como sistemas operativos verticalmente estructurados representan una aproximacion radicalmente nueva al diseno de sistemas operativos La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware Los exonucleos son extremadamente pequenos ya que limitan expresamente su funcionalidad a la proteccion y el multiplexado de los recursos Se llaman asi porque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera en bibliotecas dinamicas Los disenos de nucleos clasicos tanto el monolitico como el micronucleo abstraen el hardware escondiendo los recursos bajo una capa de abstraccion del hardware o detras de los controladores de dispositivo En los sistemas clasicos si se asigna memoria fisica nadie puede estar seguro de cual es su localizacion real por ejemplo La finalidad de un exonucleo es permitir a una aplicacion que solicite una region especifica de la memoria un bloque de disco concreto etc y simplemente asegurarse que los recursos pedidos estan disponibles y que el programa tiene derecho a acceder a ellos Debido a que el exonucleo solo proporciona una interfaz al hardware de muy bajo nivel careciendo de todas las funcionalidades de alto nivel de otros sistemas operativos este es complementado por una biblioteca de sistema operativo Esta biblioteca se comunica con el exonucleo subyacente y facilita a los programadores de aplicaciones las funcionalidades que son comunes en otros sistemas operativos Algunas de las implicaciones teoricas de un sistema exonucleo son que es posible tener distintos tipos de sistemas operativos p e Windows Unix ejecutandose en un solo exonucleo y que los desarrolladores pueden elegir prescindir o incrementar funcionalidades por motivos de rendimiento Actualmente los disenos exonucleo estan fundamentalmente en fase de estudio y no se usan en ningun sistema popular Un concepto de sistema operativo es Nemesis creado por la Universidad de Cambridge la Universidad de Glasgow Citrix Systems y el Instituto Sueco de Informatica El MIT tambien ha disenado algunos sistemas basados en exonucleos Los exonucleos se manejan en diferente estructura dado que tambien cumplen funciones distintas Referencias Editar gnu org ed 25 de julio What is the GNU Hurd en ingles Consultado el 18 de febrero de 2010 Barr Michael 1999 5 Getting to know the hardware Programming Embedded Systems in C and C en ingles 1ª edicion O Reilly pp 54 55 ISBN 1565923545 requiere registro QNX Software Systems ed 2004 QNX Operating System Project overview en ingles Consultado el 10 de febrero de 2010 un resumen de la disputa entre Linus Torvalds y Andrew Tanenbaum en ingles Vease tambien EditarGNU GRUB Nucleo Linux Shell de UnixEnlaces externos Editar Wikimedia Commons alberga una categoria multimedia sobre Nucleo kernel labs org Kernel labs ingles Datos Q9662 Multimedia Operating system kernels Obtenido de https es wikipedia org w index php title Nucleo informatica amp oldid 136707070, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos