Dale un vistazo a nuestro blog…

En este blog encontraras información acerca del mantenimiento de los equipos de cómputo.

sábado, 16 de abril de 2011

13.Cómo se encuentran distribuidos los 512 bytes del sector de arranque en un disco duro

La estructura lógica de un disco duro está formada por:
  • El sector de arranque (Master Boot Record)
  • Espacio particionado
  • Espacio sin particionar
El sector de arranque es el primer sector de todo disco duro (cabeza 0, cilindro 0, sector 1). En él se almacena la tabla de particiones y un pequeño programa master de inicialización, llamado también Máster Boot. Este programa es el encargado de leer la tabla de particiones y ceder el control al sector de arranque de la partición activa. Si no existiese partición activa, mostraría un mensaje de error.

El espacio particionado es el espacio del disco que ha sido asignado a alguna partición. El espacio no particionado, es espacio no accesible del disco ya que todavía no ha sido asignado a ninguna partición. A continuación se muestra un ejemplo de un disco duro con espacio particionado (2 particiones primarias y 2 lógicas) y espacio todavía sin particionar.



El caso más sencillo consiste en un sector de arranque que contenga una tabla de particiones con una sola partición, y que esta partición ocupe la totalidad del espacio restante del disco. En este caso, no existiría espacio sin particionar.



12. ¿Que es bootstrap?

Es el programa que lee el archivo oculto que arranca el sistema operativo.

11. ¿De que esta compuesto el MBR?

El MBR está compuesto por código ejecutable y las entradas de la Tabla de Particiones.

Estructura del Master Boot Record
Offset Naturaleza size
+00h Código ejecutable varía
+1BEh 1a entrada de tabla de particiones 16 bytes
+1CEh 2a entrada de tabla de particiones 16 bytes
+1DEh 3a entrada de tabla de particiones 16 bytes
+1EEh 4a entrada de tabla de particiones 16 bytes
+1FEh Marcador ejecutable (AA55h) 2 bytes

 10. ¿Que es el máster boot record (MBR)?

Un master boot record (MBR) es el primer sector ("sector cero") de un dispositivo de almacenamiento de datos, como un disco duro. A veces, se emplea para el arranque del sistema operativo con bootstrap, otras veces es usado para almacenar una tabla de particiones y, en ocasiones, se usa sólo para identificar un dispositivo de disco individual, aunque en algunas máquinas esto último no se usa y es ignorado.

Almacenamiento de un master boot récord estándar

Dirección
Descripción
0x0000
Área de código
0x01B8
4 bytes; firma del disco (opcional)
0x01BE
Para entradas en la tabla de particiones primarias de 16 bytes (esquema estándar de la tabla de particiones del MBR)
0x01FE
2 bytes; firma del MBR (0xAA55)





15.Explique los cuatro tipos de núcleos

Hay cuatro grandes tipos de núcleos:
§  Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente potentes y variadas.
§  Los micronúcleos proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.
§  Los núcleos híbridos son muy parecidos a los micro nú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:


El enfoque micro nú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 micro núcleo. 


Algunos ejemplos de micronúcleos:
§  AIX
§  La familia de micro núcleos L4
§  El micro núcleo Mach, usado en GNU Hurd y en Mac OS X
§  BeOS
§  Minix
§  MorphOS
§  QNX
§  RadiOS
§  VSTa
§  Hurd

 

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 micro núcleo convencional.

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 micro nú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. Éste fue un compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en micro núcleo adoptaron antes 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 micro nú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
§  XNU (usado en Mac OS X)
§  DragonFlyBSD
§  ReactOS

 

Exonúcleos:



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

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

 

 14. ¿qué es el núcleo y cual es la función?


Es un software que actúa de sistema operativo. 

·        Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más 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á 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. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.


 




17.En Linux cuales son las convenciones para nombrar los discos

Nombramiento de discos:

1.   Los discos del IDE primario se denominan /dev/hda y /dev/hdb (en el orden master y Slave)
2.  Los discos de la interfaz secundaria se denominan /dev/hdc y /dev/hdd (en el orden master y Slave)
3.  Si posee otras interfaces IDE los dispositivos se denominarán /dev/hde, /dev/hdf, etc.
4.  Los discos SCSI o SATA se denominan /dev/sda, /dev/sdb, etc.
5.  Los CD-ROM SCSI se denominan /dev/scd0, /dev/scd1, etc.


16. ¿Que es el kernel?

Kernel es Núcleo. Parte esencial de un sistema operativo que provee los servicios más básicos del sistema. Se encarga de gestionar los recursos como el acceso seguro al hardware de la computadora.
Se encarga también del multiplexado, determinando qué programa accederá a un determinado hardware si dos o más quieren usarlo al mismo tiempo.

El kernel también ofrece una serie de abstracciones del hardware para que los programadores no tengan que acceder directamente al hardware, proceso que puede ser complicado.

19.¿Qué es un sistema de archivos?

19. Sistemas de archivos

Un sistema de archivos es un método para el almacenamiento y organización de archivos de computadora y los datos que estos contienen, para hacer más fácil la tarea encontrarlos y accederlos. Los sistemas de archivos son usados en dispositivos de almacenamiento como discos duros y CD-ROM e involucran el mantenimiento de la localización física de los archivos.

El software del sistema de archivos se encarga de organizar los archivos (que suelen estar segmentados físicamente en pequeños bloques de pocos  Bytes) y directorios, manteniendo un registro de qué bloques pertenecen a qué archivos, qué bloques no se han utilizado y las direcciones físicas de cada bloque.


18.¿Cuales son los cargadores de arranque para GNU/Linux?


Cargador de arranque
 
Un cargador de arranque es un programa diseñado exclusivamente para cargar un sistema operativo en memoria. La etapa del cargador de arranque es diferente de una plataforma a otra. 

Como en la mayoría de arquitecturas, este programa se encuentra en el MBR, el cual es de 512 bytes, no es suficiente para cargar en su totalidad un sistema operativo. Por eso, el cargador de arranque consta de varias etapas. 

Para las plataformas x86, el BIOS carga la primera etapa del cargador de arranque (típicamente una parte de LILO o GRUB). El código de esta primera etapa se encuentra en el sector de arranque (o MBR). La primera etapa del cargador de arranque carga el resto del cargador de arranque. 

Los cargadores de arranque modernos típicamente preguntan al usuario cual sistema operativo (o tipo de sesión) desea inicializar. 

En GNU/Linux, el proceso de arranque (booteo) es un flujo que comienza en el BIOS, sigue al cargador de arranque y luego hacia el kernel. El kernel entonces inicia el planificador (para permitir multitarea) y ejecuta el primer programa de entorno de usuario (es decir, el exterior del kernel space) llamado Init (el cual configura el entorno del usuario y permite la interacción del usuario mismo y loguearnos en el sistema, para lo cual en este punto el kernel se vuelve inactivo, a menos que sea llamado externamente

GRUB
 
GRUB se carga y se ejecuta en 4 etapas: 

1.La primera etapa del cargador la lee el BIOS desde el MBR.
 
2. La primera etapa carga el resto del cargador (segunda etapa). Si la segunda etapa está en un dispositivo grande, se carga una etapa intermedia (llamada etapa 1.5), la cual contiene código extra que permite leer cilindros mayores que 1024 o dispositivos tipo LBA.
 
3. La segunda etapa ejecuta el cargador y muestra el menú de inicio de GRUB. Aquí se permite elegir un sistema operativo junto con parámetros del sistema.
 
4. Cuando se elige un sistema operativo, se carga en memoria y se pasa el control. 
GRUB soporta métodos de arranque directo, arranque chain-loading, LBA, ext2 y hasta "un pre-sistema operativo totalmente basado en comandos". Tiene tres interfaces: un menú de selección, un editor de configuración y una consola de línea de comandos. 

Dado que GRUB entiende los sistemas de archivos ext2 y ext3 y además provee una interfaz de línea de comandos, es más fácil rectificar o modificar cuando se mal configura o se corrompe. La nueva versión 2 de GRUB, soporta sistema de archivos ext4.
 


LILO 

LILO es más antiguo, es casi idéntico a GRUB en su proceso, excepto que no contiene una interfaz de línea de comandos. Por lo tanto todos los cambios en su configuración deben ser escritos en el MBR, y reiniciar el sistema. Un error en la configuración puede arruinar el proceso de arranque a tal grado de que sea necesario usar otro dispositivo que contenga un programa que sea capaz de arreglar ese defecto. 

De forma adicional, LILO no entiende sistema de archivos, por lo tanto no hay archivos y todo se almacena en el MBR directamente. 

Cuando el usuario selecciona una opción del menú de carga de LILO, dependiendo de la respuesta, carga los 512 bytes del MBR para sistemas como Microsoft Windows, o la imagen del kernel Linux. 

Loadlin
 
Otra forma de cargar GNU/Linux es desde DOS o Windows 9x, dado que ambos sistemas permiten ser reemplazados, se puede reemplazar por el kernel Linux sobre el sistema operativo ya cargado. Esto puede ser útil en el caso en que el hardware está solo disponible para DOS y no para GNU/Linux, dado a cuestiones de secretos industriales y código propietario. Sin embargo, esta tediosa forma de arranque ya no es necesaria en la actualidad ya que GNU/Linux tiene drivers para multitud de dispositivos hardware, aun así, esto fue muy útil en el pasado. 

Otro caso es cuando GNU/Linux se encuentra en un dispositivo que el BIOS no lo tiene disponible para el arranque. Entonces, DOS o Windows pueden cargar el driver apropiado para dicho dispositivo superando dicha limitación del BIOS, y a partir de entonces cargar el núcleo Linux. 

Kernel 

El kernel Linux se encarga de lo principal del sistema operativo, como el manejo de memoria, planificador de tareas, entradas y salidas, comunicación interprocesos, y demás sistemas de control. 

El proceso del kernel se lleva en dos etapas; la etapa de carga y la etapa de ejecución. 

El kernel generalmente se almacena en un archivo comprimido con clic. Este archivo comprimido se carga y se descomprime en memoria, también se cargan los drivers necesarios por medio de un disco RAM (initrd). El disco RAM es un sistema de archivos temporal usado en la fase de ejecución del kernel. 

Una vez que el kernel se ha cargado en memoria y está listo, se lleva a cabo su ejecución. Esto se realiza llamando la función startup del kernel (en los procesadores x86, se encuentra en la función startup_32 del archivo /arch/i386/boot/head), esta función establece el manejo de memoria (tablas de paginación y paginación de memoria), detecta el tipo del CPU y funcionalidad adicional como capacidades de punto flotante. Después cambia a funcionalidades que no dependen del hardware por medio de la llamada a la función start_kernel. 

El proceso de arranque en GNU/Linux monta el disco RAM que fue cargado anteriormente como un sistema de archivos temporal. Esto permite que los módulos que contienen drivers puedan ser cargados sin depender de otros drivers de dispositivos físicos, y además mantiene el kernel más pequeño. 

Se inicializan dispositivos virtuales con la intención de ser usados para crear sistemas de archivos, como LVM o software RAID antes de desmontar la imagen initrd. El sistema de archivos es cambiado por medio de la función pivot_root la cual desmonta el sistema de archivos temporal y lo reemplaza con el real, el cual más tarde estará totalmente disponible liberando la memoria que ocupaba el temporal. 

Una vez listo el manejador de excepciones, el planificador de tareas y demás, por fin el sistema se considera totalmente operacional a nivel de procesos, por lo tanto se ejecuta el proceso init (el primer proceso en espacio de usuario), y luego inicia una tarea de inactividad por medio de cpu_idle.


Proceso init
 
El proceso init establece el entorno de usuario. Verifica y monta los sistemas de archivos, inicia servicios de usuario necesarios y cambia a un entorno basado en usuario cuando el proceso de inicio termina. 

Es similar a los procesos init de Unix y BSD del cual deriva, pero en algunos casos tiene diferencias y personalizaciones. En un sistema GNU/Linux estándar, init se ejecuta con un parámetro, conocido como runlevel, que toma un valor de 0 a 6, y que determina cuales subsistemas serán operacionales. 

Cada runlevel tiene sus propios scripts los cuales involucran un conjunto de programas. Estos scripts se guardan en directorios con nombres como "/etc. /rc...". El archivo de configuración de init es /etc./inittab. 

Cuando el sistema se arranca, se verifica si existe un runlevel predeterminado en el archivo /etc./inittab, si no, se debe introducir por medio de la consola del sistema. Después se procede a ejecutar todos los scripts relativos al runlevel especificado.