martes, 19 de abril de 2011

BOOTSTRAP

 Bootstrap es un término utilizado para describir el arranque, o proceso de inicio de cualquier ordenador. Suele referirse al programa que arranca un sistama operativo , Una vez el PC arranca, comienza a ejecutarse el código que se encuentra en la dirección F000:FFF0, que pertenece al ROM-BIOS y es el encargado de realizar una serie de inicializaciones y pruebas. Esta rutina es llamado POST.  Una vez que el BIOS termina con sus tests e inicializaciones carga el primer sector (cilindro 0, cabeza 0, sector 1) en la dir. 0000:7C00 (7C00 lineal), comprueba que contenga código válido (comprueba que esté firmado con 0x55 y 0xAA en los bytes 511 y 512 respectivamente) y salta a esa dirección (CS:IP apuntan a esa dirección).

DISTRIBUICIÓN DE LOS 512 Bytes DEL SECTOR DE ARRANQUE DE UN DISCO DURO


De  los sectores de una unidad de disco, el primero de la primera cabeza del primer cilindro, tiene una importancia y significado especial.  Es el sitio al que se dirige la BIOS cuando busca si existe en el sistema un dispositivo cargable.  Por esta razón se denomina sector de arranque MBR.

Los 512 Bytes estan distribuidos de la siguiente manera

446 Bytes van para la Información primaria del boot loader.
64 Bytes van distribuidos para la Información de la tabla de partición en los siguientes. 
Y los 2 Bytes restantes estan dictaminados para la Revisión de validación del MBR.


tribucion de los 512 Bytes del sector de arranque en un disco duro


De todos los sectores de una unidad de disco, el primero de la primera cabeza del primer cilindro, tiene una importancia y significado especial.  Es el sitio al que se dirige la BIOS cuando busca si existe en el sistema un dispositivo cargable.  Por esta razón se denomina sector de arranque MBR.

Los 512 Bytes estan distribuidos de la siguiente manera

446 Bytes van para la Información primaria del boot loader.
64 Bytes van distribuidos para la Información de la tabla de partición en los siguientes.
Y los 2 Bytes restantes estan dictaminados para la Revisión de validación del MBR.

NÚCLEO.

 Un núcleo es un software que actúa de sistema operativo. Es el principal responsable de facilitar a los distintos programas de acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a trvés de servicios de llamada al sistema.Tambien se encarga de decidir  qué programa podrá hacer uso de un dispositivode hardware y durante cuánto tiempo, lo que es conocido como muliplexado. Los Núcleos suelen una serie de abstracciones del hardware. Lo que permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.

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

Además  de las funciones básicas, el conjunto de las funciones de los puntos siguientes  necesariamente no son suministrados por un núcleo de sistema de explotación. Pueden establecerse estas funciones del sistema de explotación tanto en la zona de usuario como en el propio núcleo. Su implantación en el núcleo se hace en 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 función es frecuente, puede resultar útil integrar estas funciones al núcleo para mejorar los resultados.

TIPOS DE NÚCLEO

No necesariamente se necesita un núcleo para usar una computadora. Los programas pueden cargarse y ejecutarse directamente en una computadora, siempre que sus autores quieran desarrollarlos sin usar ninguna abstracción del hardware ni ninguna ayuda del sistema operativo. Hay cuatro grandes tipos de núcleos:


Micronúcleos:

 

http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Kernel-microkernel.svg/250px-Kernel-microkernel.svg.png
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:
§  BeOS
§  Minix
§  MorphOS
§  QNX
§  RadiOS


 

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.
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.


 

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 éste se ejecute más rápido de lo que lo haría si estuviera en espacio de usuario. 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:
§  Microsoft Windows NT, usado en todos los sistemas que usan el código base de Windows NT
§  DragonFlyBSD
§  ReacOS


 

Exonúcleos

http://upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Kernel-exo.svg/200px-Kernel-exo.svg.png
http://bits.wikimedia.org/skins-1.17/common/images/magnify-clip.png
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.
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 sólo proporciona una interfaz al hardware de muy bajo nivel, careciendo de todas las funcionalidades de alto nivel de otros sistemas operativos, éste 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.

KERNEL



Es un software que opera en el sistema operativo. Responsable de facilitar a los diferentes programas de acceso seguro al hardware del computador a la vez es el encargado de gestionar recursos, a través de servicios de llamada al sistema. El acceso al hardware es limitado, también decide qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware.

CONVENCIONES PARA NOMBRAR LOS DISCOS LINUX



Se usan métodos para nombrar las particiones, y eso es de acuerdo al disco en el que están ubicadas:
·         Los discos IDE primario se denominan /dev/hda y /dev/hdb. Eso es Master y Slave.
·         Los Discos de la Interfaz secundaria se denominan /dev/hdc y /dev/hdd. Eso es Master y Slave.
·         Si posee Otras Interfaces IDE se denominan /dev/hde, /dev/hdf, etc..
·         Los discos SCSI o SATA se denominan /dev/sda, /dev/sdb, etc..
·         Los CD-ROM SCSI se denominan /dev/scd, /dev/scd1, etc…

CARGADORES DE ARRANQUE GNU/Linux


GRUB
Tiene tres etapas:
·         El cargador lee la BIOS desde el MBR y carga el resto del gestor de arranque..
·         Carga una fase intermedia de 1.5 y contiene un código y este  permite que los cilindros por encima de 1024 LBA pueda leerse y guardarse en la partición de arranque.
·         El gestor de arranque ejecuta y muestra el menú de inicio del GRUB, permite al cliente modificar y examinar los parámetros y seleccionar un sistema operativo.

LOADING
La forma de cargar LINUX es con DOS o WINDOWS, donde el núcleo de Linux reemplaza completamente la copia de funcionamiento de los SO. Este puede ser útil en el Hardware, que necesita ser conectado a través del software y la configuración de estos programas solo esta disponible para DOS y para Linux.





LILO
Es un gestor de inicio de Linux, no depende de un sistema de archivos especifico y puede ejecutar un SO desde los discos duras o D. Flexibles. Este es el más antiguo, ha sido remplazado por el GRUB, y son muy parecidos en su proceso, excepto que no tiene el interfaz de línea de comandos. Entonces los cambios en su configuración deben ser escritos en MBR y después reiniciar el sistema. Si se produce un error en la configuración podría quedar el Disco inservible para el arranque hasta el grado, que sea indispensable usar otros mecanismos que tengan un programa para corregir el error.