lunes, 18 de abril de 2011

Bootstrap

Bootstrap

En informática, el bootstrapping hace referencia al proceso donde un sistema simple activa otro sistema más complejo para servir al mismo propósito. Es una solución al "problema del huevo y la gallina", de comenzar un cierto sistema sin tener el sistema todavía funcionado.


Composición del Master Boot Record (MBR)

Composición del Master Boot Record (MBR)

En la práctica, el MBR casi siempre se refiere al sector de arranque de 512 bytes, o el partition sector de una partición para ordenadores compatibles con IBM PC. Debido a la amplia implementación de ordenadores PC clónicos, este tipo de MBR se usa mucho, hasta el punto de ser incorporado en otros tipos de ordenador y en nuevos estándares multiplataforma para el particionado y el arranque.

Cuando un dispositivo de almacenamiento de datos se ha particionado con un esquema de tabla de particiones del MBR (por ejemplo el esquema convencional de particionado de IBM PC), el MBR contiene las entradas primarias en la tabla de particiones. Las entradas de particiones secundarias se almacenan en registros de particiones extendidas, etiquetas de disco BSD, y particiones de metadatos del Logical Disk Manager que son descritas por esas entradas de particiones primarias.

Por convención, hay exactamente cuatro entradas de particiones primarias en el esquema de la Tabla de Particiones, aunque en algunos sistemas (pocos) se ha extendido ese número a cinco u ocho.3

Cuando un dispositivo de almacenamiento de datos se ha particionado con Tabla de Particiones GUID, el Master Boot Record no contiene la tabla de particiones (aunque contiene modelos de estructuras de datos, una protección del MBR frente a programas que sólo entienden el esquema de la Tabla de Particiones del MBR para que no creen particiones en el disco) y se usa poco debido a lo que puede afectar al particionado de disco.


Primer sector físico del disco (pista cero)
446 bytesCódigo máquina (gestor de arranque)
64 bytesTabla de particiones (4 registros que definen cada una de las particiones primarias)
2 bytesFirma de unidad arrancable ("55h AAh" en hexadecimal)

Master Boot Record (MBR)

Master Boot Record (MBR)

Un master boot record es el primer sector 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 record 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)

ESTADO DE PROCESO

ESTADO DE PROCESO
Ejecución: el proceso está actualmente en ejecución.
Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga.

Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de 
Entrada/Salida.
Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.
Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.


PROCESO

PROCESO.

Un proceso es un programa en ejecución. Los procesos son gestionados por el sistema operativo y están formados por:
  • Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
  • Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
  • Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
  • Otra información que permite al sistema operativo su planificación.

ORGANIZACIÓN DE UN SISTEMA OPERATIVO

ORGANIZACIÓN DE UN SISTEMA OPERATIVO.

Analizaremos la organización interna de un sistema operativo desde el punto de vista del análisis técnico práctico.

El núcleo fundamental de un Sistema Operativo es lo que conocemos como KERNEL. El Kernel de un sistema operativo está formado por conjuntos de programas ejecutivos, servicios funcionales dinámicos, programas comunicacionales y configuraciones que le indican al sistema en todo momento cómo ejecutar estos componentes o partes.

Desde un punto de vista funcional, todos los sistemas operativos contemplan la misma estructura funcional (Windows, Linux, MacOS, ReactOS, FreeDos, etc). Igualmente, comparten esta organización los sistemas operativos de distintos componentes electrónicos (PC's, Notebooks, Palms, Teléfonos celulares, iPODs, iPADs, etc).

El Kernel está constituído integralmente por tres componentes principales:

Drivers: Un conjunto de utilidades que le garantizan al sistema operativo en primer término la comunicación con todos los dispositivos conectados al sistema principal Micro+Chipset+Ram. Esto se logra gracias a la incorporación de un conjunto de Controladores o Drivers. Sin estos programas comunicacionales, el sistema no podría conectar con los componentes del sistema. Justamente para garantizar esta comunicación fluída los drivers son los primeros componentes que se cargan en un sistema operativo.
Programas: Un conjunto de programas que permiten poner en marcha al sistema operativo para atender a las tareas que debe realizar para mantener funcionando correctamente al sistema (administración de la memoria, ejecución de tareas, almacenamiento de datos y configuraciones, etc), un conjunto de funciones que garantizen el flujo continuo y sincronizado de datos desde el corazón del sistema a los periféricos y viceversa.
Servicios: Un conjunto de funcionalizades que le permiten reaccionar ante un evento que suceda en el sistema para dar una respuesta dinámica y eficaz, lo que constituye la máxima potencialidad posible del sistema operativo y le permite la escalabilidad necesaria para poder aceptar diferntes configuraciones. Los servicios sólo pueden ser sostenidos gracias a la existencia de programas que se ponen a funcionar en un sistema operativo en un modo de "escucha" y que esperan la producción del evento que provocará su reacción.Cada uno de estos componentes del Kernel puede ser controlado y visualizado por el técnico gracias a un conjunto de herramientas provistas por los mismos sistemas operativos para controlar la ejecución correcta y coordinada de cada uno.

En el caso de Windows, estas herramientas son

El Administrador de Servicios para ver las funcionalidades disponibles que responden a distintos eventos dentro del sistema
El Administrador de Programas para ver los Procesos cargados en memoria Ram que esperan por los eventos que los activarán. Recuerde el técnico que un programa que se carga en Ram recibe el nombre de PROCESO.
El Administrador de Dispositivos, que permite saber el estado comunicacional del sistema con el exterior, vale decir Micro+Chipser+Ram con Periféricos
El Kernel opera con un lenguaje de programación básico y primitivo, orientado principalmente a mantener contacto fluído con el bajo nivel de hardware. Esto quiere decir que está más relacionado al uso de programas preparados para interpretar señales eléctricas que a comunicarse con el alto nivel o software del usuario. 

Como el Kernel tiene un tipo de comunicación básicamente binaria, por ese motivo requiere para su comunicación con el software de una interface comunicacional, que se conoce como API. La API(Applicattions Programmers Interface) es un conjunto de programas que prestan funcionalidades de "traducción" entre el software que carga el sistema operativo y el Kernel o núcleo. Es una puerta comunicacional que funciona en dos sentidos: cuando un programa necesita enviar mensajes, instrucciones u órdenes al Kernel, se lo envía a la API para que ésta verifique que las ordenes estén correctamente creadas y las traduce para que el Kernel pueda interpretarlas correctamente. Del mismo modo, el Kernel envía mensajes, respuestas y comunicaciones al software mediante la API, siguiendo el camino inverso.

API es un término acuñado por los sistemas operativos de Microsoft (Windows), pero la API existe como conepto bajo diversos nombres en todos los sistemas operativos. La capa de la API no sólo funciona como intérprete comunicacional, sino que coexisten con ella diversos sistemas de control que permanentemente monitorean la funcionalidad del sistema operativo y en casos de errores, intentan proteger la integridad del Kernel para evitar que algún problema se filtre al núcleo y provoque la inestabilidad general del Sistema Operativo.

A este nivel, cualquier error se paga caro y provoca una inestabilidad general en el sistema operativo y puede provocar un crash general que obligue a reinicializar al equipo. Por ese motivo el nivel de protección que se le de al kernel define al estabilidad o fortaleza de un sistema operativo. 

Los núcleos actuales de los sistemas operativos Linux y Windows (este último basado en núcleos NT) son muy estables y fiables. La mayor parte de las veces las inestabilidades generadas en NT dependen de malas configuraciones técnicas y una administración deficiente del personal humano y no de problemas de diseño del sistema operativo.

Así como desdeel punto de vista técnico el sistema PC está compuesto de capas funcionales, un sistema operativo también requiere de la combinación de varios componentes:

CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS

CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS

Sistemas Operativos Paralelos:

Se pretende que cuando existan dos o mas procesos que compitan por algún mismo recurso se puedan realizar o ejecutar al mismo tiempo. Como el ALPHA, PVM, LA SERIE AIX, que es utilizada en los sistemas RS/6000 de IBM.

Sistemas Operativos Por Lotes:

Son los que procesan gran cantidad de trabajo con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo. Como SCAPE del DC6600, EXEXII.


Sistemas Operativos en Tiempo Real:

Son aquellos en los cuales no tiene importancia el usuario; sino los procesos. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos. 

Los campos de acción de los sistemas operativos en tiempo real son: el control de trenes, telecomunicaciones, sistemas de fabricación integrada, control de edificios, sistemas multimedia. Como VXWORS, SOLARIS, LYNS OS Y SPECTRA.


Sistemas Operativos por su Estructura

Estructura monolítica: 

Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra. 

Estructura jerárquica:

Es donde una parte del sistema contiene subpartes y esta organizado en forma de niveles, de tal forma que cada una de ellos este perfectamente definido y con una clara interface con el resto de elementos. En esta estructura se basan prácticamente la mayoría de los sistemas operativos actuales. 

Máquina Virtual: 

Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser varias máquinas diferentes. 

Cliente-servidor ( Microkernel): 

El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas. El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores.

Por el Numero de Usuarios:

Monousuarios: 

Soportan un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el numero de procesos o tareas que pueda ejecutar en un mismo instante de tiempo; como el DOS, WIN95/98, WIN 3.1, WIM MILENIUM, versiones OS/2 (IBM). 

Multiusuarios:

Son capaces de dar servicio a uno más usuarios a la vez, ya que por medio de varias terminales conectadas a la computadora o por medio de secciones remotas es una red de comunicaciones; además no importa el numero de procesadors en la maquina y ni el numero de procesos de cada usuario, este puede ejecutarse simultaneamente. Como el UNÍX, LINUX, NETWARE, WIN NT, 200SERVER, LAN MANAGER(IBM).

Por el Número de Tareas

Monotareas: 

Permiten realizar una sola tarea a la vez por usuario. 

Multitareas:

Soportan la ejecución de dos o más trabajos activos al mismo tiempo. Esto tarea como resultado que la CPU siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización; como el UNÍS, WINDOWS 95/98/NT, MAC –OS, OS/2.

Por el Número de Procesadores
Uniproceso:

es capaz de manejar solo un proceso de la computadora; como el DOS y MAC-OS. 

Multiproceso:

Estos pueden simétricos o asimétricos y se refiere al numero de procesadores del sistema y como es capaz de usarlos todos para distribuir su carga de trabajo; como el LINUX.


Sistemas Operativos por la Forma de Ofrecer sus Servicios


Sistemas Operativos de Red:

Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. Como el NOVELL NETWARE, PERSONAL NETWARE, LAN MANAGE, UNÍS, WIN NT SERVER, LANTASTIC. 

Sistemas Operativos Distribuidos:

Permiten distribuir trabajos, tareas o procesos entre un conjunto de procesadores. Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos ( impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso ) en una sola máquina virtual que el usuario accesa en forma transparente. Como el SPRITE, SOLARIS MC, MACH, SPRING, TOOS, AMOEBA.