martes, 19 de abril de 2011

CARGADORES DE ARRANQUE PARA GNU/LINUX

Cuales son los cargadores de arranque para GNU/Linux

R: Los cargadores de arranque (boot loader en inglés) para el sistema operativo GNU/Linux a la hora de instalarlo se debe configurar el sistema que lo haga, si se tiene mas de un sistema operativo saldrá un menú de elección. En el arranque el BIOS lee el sector de arranque del disco y lo ejecuta; por consiguiente GNU/Linux instala un código al sector de arranque que carga el Kernel o núcleo GNU/Linux iniciando el sistema operativo.

Existen dos gestores de arranque cada uno con sus distribuciones, que son:

  •          LILO: Que significa Linux loader (cargador de Linux)
  •          GRUB: (Grand Unified Boot Loader)


Estos dos gestores se pueden utilizar para arrancar desde disquetes o los discos duros, sus archivos de configuración se editan de la siguiente forma; para LILO es /etc/lilo.conf y para GRUB es /boot/grub/menú.lst. En el proceso se instalación de Linux se da la oportunidad de escoger uno de estos dos gestores de arranque.

También existen otros gestores de arranque para GNU/Linux. El programa o la utilidad Loadlin se utiliza para arrancar GNU/Linux desde un prompt del DOS. Una ventaja de Loadlin frente a LILO y GRUB es que el no sobre escribe el sector de boot del disco duro.

Hay otros cargadores como el syslinux que son utilizados en los arranque del disquete.

Otro que llama la atención pero que no es utilizado por ninguna distribución pero que si es bueno con sus GUIs y que también tiene un magnifico soporte para todos los sistemas operativos es el (Extended Operating System Loader) XOSL.

Todos estos gestores de arranque son para equipos de arquitectura basadas en INTEL y sus compatibles. Mientras que otras arquitecturas tiene su propio gestor de arranque. Una vez el núcleo es iniciado el proceso de arranque en las diferentes arquitecturas coinciden.

CONVENCIONES PARA NOMBRAR LOS DISCOS

En Linux cuales son las convenciones para nombrar los discos


  • Los discos del IDE primario se denominan de la siguiente manera:

/dev/hda Master primario IDE (Integrated Drive Electronics)
/dev/hdb IDE esclavo primario

  •          Los discos de la interfaz secundaria se denominan de la siguiente manera:
/dev/hdc IDE master secundario
/dev/hdd IDE esclavo secundario
  • Si posee otras interfaces IDE los dispositivos se denominarán
/dev/hde, /dev/hdf, etc.
  • Los discos SCSI o SATA se denominan
Primer dispositivo: /dev/sda
Segundo dispositivo: /dev/sdb
  • Los CD-ROM SCSI se denominan así:
/dev/scd0
/dev/scd1

Que es KERNEL?

 ¿Que es KERNEL?

 Llamado también como núcleo  es la parte fundamental de los sistemas operativos, en general siendo el corazón del sistema operativo es el que hace que el hardware y el software trabajen juntos; en especial es un software que actúa como sistema operativo responsable de facilitar el acceso seguro de distintos programas al hardware de la computadora o en otras palabras, es el que gestiona recursos, a través de servicios de llamada al sistema. Cuando hay muchos programas y el hardware es solo de acceso limitado, el núcleo o Kernel tendrá o podrá hacer uso de un dispositivo del hardware y durante cuanto tiempo, lo que es conocido en términos como multiplexado.


Acceder al hardware puede ser complejo, por lo cual los núcleos implementan unas abstracciones  lo que permite perder la complejidad y que el acceso a los programas sea limpio y uniforme al hardware subyacente, lo que facilita su uso para el programador.

TIPOS DE NUCLEOS

TIPOS DE NUCLEOS
Los núcleos que puede tener un computador se clasifican en cuatros, los cuales son:
·         MICRO NÚCLEOS

Es un núcleo que se encarga de operaciones simples en el sistema como el manejo de procesos y tareas o las operaciones de E/S de bajo nivel, algunas cosas mínimas con el funcionamiento de la memoria etc.
Todo esto con el fin de hacer a un lado fabricantes específicos o darle la facilidad al usuario de programar sus propios servicios. Las partes de alto nivel del sistema son gestionadas por servidores, es decir que cada servidor es independiente y si llega a tener problemas con su funcionamiento no afectara al resto y se puede reparar individualmente, la desventaja de esta variedad es la congestión que genera en el sistema y por ende el computador se torna mas lento.

Algunos micronucleos:
-          AIX
-          Minix
-          MorphOS
-          Hurd
-          BeOS

·         NUCLEOS HIBRIDOS

 
Estos núcleos en sí, son modificaciones de los micronucleos, pues estos contienen un código adicional en el espacio del núcleo para que se pueda ejecutar mas rápido, recordemos que el micronucleo tenía como desventaja la congestión por la cantidad de servicios en la configuración del sistema. Pero de resto en cuanto a sus funciones y cualidades son iguales a los micronucleos.
Algunos núcleos híbridos:
-          XNU
-          DrafonFlyBSD
-          ReactOS
-          Microsoft Windows NT

·         EXONUCLEOS
 
Son como SO estructurados verticalmente que se enfocan su funcionalidad en la protección y el multiplexado de recursos. Su función no se realiza en la memoria sino en bibliotecas externas dinámicas y de ahí su nombre, básicamente en este tipo de núcleo cada aplicación puede escoger el sitio de la memoria y disco que va a utilizar para su desempeño y aparte de eso supervisa que este o no disponible el espacio que solicito la aplicación para asignárselo o verificar si puede o no hacer uso de el.
Es un núcleo muy complejo por que aunque no puede realizar operaciones de alto nivel en el hardware o SO, lo complementa asignando estas funciones a una biblioteca de sistema operativo, la biblioteca se comunica con el exonucleo subyacente y proporciona a los programadores las funciones de aplicaciones que tienen en común con otros SO, que por cierto otro punto a favor que tiene el exonucleo es que puede ejecutar distintos sistemas operativos en un solo exonucleo.
·         NUCLEOS MONOLITICOS
      Este nuleo se caracteriza por que es grande y complejo, pues avarca todos los servicios del sistema, su programacion es no modular lo que lo hace mas productivo que un micronucleo, pero a diferencia de este, un nucleo monolitico tiene que avarcar todo el sistema cuando tenga un error, y se deve reiniciar todo el sistema para corregir o aplicar los nuevos sistemas. Este sistema concentra todas las funcionalidades posibles en un mismo programa, y deve recopilarse por completo para añadir una nueva funcionalidad.
Algunos nucleos monoliticos:
- unix
- linux
- FreeBSD


NUCLEO

NUCLEO
Es el encargado de la comunicación entre el hardware y el programa informático, la seguridad y arquitectura de los procesadores, los recursos para el usuario también hacen parte del quehacer del núcleo que los gestiona a través de llamadas al sistema. También regula la utilización de dispositivos usados por los programas para guardar o extraer información, en pocas palabras es un software que actúa como sistema operativo.
De las funciones que cumple el núcleo son:
·         Carga y ejecución de procesos
·         Control E/S
·         Generar la interfaz entre él y los programas del usuario
·         Sistema de ficheros
·         Gestión del hardware
·         Gestión de tareas

SECTOR DE ARRANQUE

DISTRIBUSION DEL SECTOR DE ARRANQUE
 

Offset
Naturaleza
Size
+00h
Código ejecutable
446 byte
+1BEh
Primera entrada de tabla de particiones
16 bytes
+1CEh
Segunda entrada de tabla de particiones
16 bytes
+1DEh
Tercera entrada de tabla de particiones
16 bytes
+1EEh
Cuarta entrada de tabla de particiones
16 bytes
+1FEh
Marcador ejecutable (AA55h)
2 bytes


La anterior estructura hace que la BIOS ejecute el código de maquina para que se inicie el sistema operativo según sea su configuración.

BOOTSTRAP

BOOTSTRAP
El BOOTSTRAP es el proceso de arranque del computador, Este proceso se da después del POST de la BIOS  que también se le llama cargador de inicialización. El programa que ejecuta el SO puede ser el LiLo, NTLDR, GRUB.   Después que el computador se inicia el código que se encuentra en la dirección F000:FFF0 es ejecutado desde la memoria ROM, este código realiza un test para supervisar la inicialización, esta función lleva como nombre POST. Terminada la prueba se carga el primer sector en la dirección 000:7C00 y comprueba que el código sea valido para después pasar a esa dirección.
El termino BOOTSTRAP también es utilizado para referirse a:
·         El proceso por el cual se forma un entorno de programación a partir de otros menos productivos
·         La construcción de un sistema completo a partir de sus componentes base