domingo, 17 de abril de 2011

1. ¿Qué es (S.O) Sistema Operativo?

Es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc.
En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un policía de tráfico, se asegura de que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo también es responsable de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema.

2. ¿Cuál es el programa principal del sistema?

El programa principal del sistema es designado como núcleo del sistema o interprete de comando. Este tiene la capacidad de traducir órdenes que ingresan los usuarios, por medio de un conjunto de instrucciones facilitadas por el mismo directamente al núcleo y al conjunto de herramientas que forman el sistema operativo.
Entre las tareas que desempeña se incluye el manejo de las interrupciones, la asignación de trabajo al procesador y proporcionar una vía de comunicación entre los distintos programas. En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su ejecución.

3. Las 4 grandes funciones del Sistema Operativo.

1. Proporcionar una interfaz de línea de comando o una interfz grafica al usuario, para que este ultimo se pueda comunicar con la computadora. 
2. Administrar los dispositivos del hardware en la computadora. Como cuando se corren los programas que necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida. 
3. Administrar y mantenr los sistemas de archivo de disco; los sistemas operativos agrupan la información dentro de departamentos logicos para almacenarlos en el disco. Estos grupos de informacion son llamados archivos.los archivos pueden contener instrucciones de programas o información creada por el usuario. El sistema opertivo mantiene una lista de los archivos en un disco; y proporciona las herramientas necesarias para organizar y manipular estos archivos. 
4. Apoyar o proporcionar servicios a otros programas, como listar archivos, grabarlos a disco, eliminar archivos y revisar el espacio disponible. 

4. Sistemas Operativos existentes.


Estos son algunos de los muchos Sistemas Operativos que hay hoy en dia:


Minix
MS-DOS
PC-DOS
OS/2
QDOS
QNX
ReactOS
Solaris
Symbian
Xenix
MacOS
Windows
Mac
Unix
Linux
MS Dos
Windows 95
Windows 98
Windows Me
Windows NT (Workstation/Server)
Windows 2000(Profesional/Server)
Windows XP
Windows 2003 Server
Windows Vista
Windows 2008 Server
Windows 7
Windows Mobile (para móviles).
Unix
Linux
Mac OS X.
Novel Netware.
Symbian OS (para móviles)
GNU/Linux
GNU Hurd
DragonFly BSD
FreeBSD
Haiku
MenuetOS
Apple                                                                     
Plan 9
rXart
Amiga Os
SkyOS
AtheOS

5. Distintas funciones de los Sistemas Operativos.

Gestión de tareas: Acepta todos los trabajos y los conserva hasta su finalización
Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con el computador.
Control de recursos: Coordina y manipula el hardware del computador, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse.
Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como en discos flexibles, discos duros, discos compactos o memorias extraíbles.
Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos y definir el orden en que estos se ejecutan.
Protección: Evitar que las acciones de un usuario afecten el trabajo que está realizando otro usuario.
Multi - acceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca de ella.

Contabilidad de recursos: Establece y administra el costo que se le cobra a un usuario por utilizar determinados recursos.

6. Clasificación de los S.O (Sistemas Operativos).

Con el paso del tiempo, los Sistemas Operativos fueron clasificándose de diferentes maneras, dependiendo del uso o de la aplicación que se les daba como son:

Sistemas Operativos por lotes
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos 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, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos.
- Algunos sistemas operativos por lotes son: SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.

Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquelos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos.
- Algunos Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra

Sistemas Operativos de multiprogramación (o multitarea)
Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.
- Algunos sistemas operativos que soportan el multitarea son: UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2.

Sistemas Operativos de tiempo compartido
Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.
- Algunos sistemas Operativos de tiempo compartido son: Multics, OS/360 y DEC-10.

Sistemas Operativos distribuidos
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
- Algunos sistemas operativos distribuidos son: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc

Sistemas Operativos de red
Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (fisico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
- Algunos sistemas operativos de red mas usados: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LAN tastic.
Sistemas Operativos paralelos.
Son aquellos sistemas operativos que cuando existen dos o más procesos que compitan por algún recurso este los deja ejecutar o realizar al mismo tiempo.
- Algunos sistemas operativos paralelos son: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.


7. Organización de un Sistema Operativo.

- En el primer nivel se encuentra el núcleo [kernel], que es el que tiene contacto directo con los circuitos electrónicos.
- En el segundo nivel se encuentran las rutinas que implementan los servicios que ofrece el Sistema Operativo, como el manejo de los discos, el monitor, teclado y la gestión de los procesos.
- En el tercer nivel se encuentran el gestor de la memoria y de archivos.
- En el cuarto nivel están los procesos que permiten la comunicación del usuario con el Sistema Operativo: el caparazón  [Shell] y las órdenes propias del Sistema Operativo. La comunicación sólo es posible entre los niveles inmediatamente superior e inferior.

8. ¿Que es un proceso?

Son las instrucciones que ejecuta el microprocesador mientras lee un programa determinado. Esto también implica a la memoria reservada y a sus contenidos, el estado de ejecución en determinado momento, y la información que permite al sistema operativo planificar.

9. Estados de proceso: Ejecución, Listo, Espera, Nuevo y Terminado.

Ejecución: El proceso está actualmente en ejecución.
- Ejemplo: Se esta utilizando.

Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga.
- Ejemplo: Este ordena a la CPU y se encuentra en ejecución.

Espera: el proceso no se puede ejecutar hasta que no se produzca cierto suceso.
- Ejemplo: La terminación de 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.
- Ejemplo: Este compite para ser admitido.

Terminado: El proceso ha sido sacado del grupo de procesos ejecutables por el sistema operativo. Después de que un proceso es marcado como terminado se liberarán los recursos utilizados.
- Ejemplo: La memoria.

10. ¿Que es Master Boot Record (MBR)?

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.

11. ¿De que esta compuesto el MBR?

El Master Boot Record (MBR) es un pequeño programa que es ejecutado en cada Inicio del sistema operativo y se encuentra ubicado en el primer sector absoluto (Track 0, head 0, sector 1) del disco duro en una PC y que busca la Tabla de Particiones para transferirla al Sector de Arranque (Boot). 
El MBR está compuesto por un código ejecutable, las entradas de la Tabla de Particiones y un marcador ejecutable. 

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

12. ¿Que es bootstrap?

Bootstrap: En ingles (bootstrapping), Es generalmente un término más extenso para el arranque, o proceso de inicio de cualquier ordenador. Suele referirse al programa que arranca un sistema operativo como por ejemplo GRUBLilo o NTLDR. Se ejecuta tras el proceso POST de la BIOS. También es llamado "Bootstrap Loader" (cargador de inicialización). Una vez el PC arranca, comienza a ejecutarse el código que se encuentra en la dir. F000:FFF0 el cual pertenece al ROM-BIOS y es el encargado de realizar una serie de tests e inicializaciones. Esta rutina se llama POST (Power On Self-Test). Una vez que la BIOS termina con sus tests e inicializaciones carga el primer sector (cilindro 0, cabeza 0, sector 0) en la dir. 0000:7C00 (7C00 lineal), comprueba que contenga código válido (comprueba que esté firmado con 55H, AAH en los bytes 511 y 512) y salta a esa dirección (CS:IP).

13. distribuicion de los 512 bytes del sector de arranque en un Disco Duro.

Sector de arranque
De todos los sectores de una unidad de disco, el primero de la primera cabeza del primer cilincro (CHS  0,0,1), 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 ("Master boot record") o bloque maestro de carga ("Master boot block").  Sus 512 bytes contienen tres bloques con información sobre la arquitectura física y lógica del disco como son:

Bloque
Información
Nº Bytes

1.
El  Código maestro de carga (gestor de arranque).

446 Bytes

2.
La  Tabla de particiones.
64 Bytes

3.
La firma de unidad arrancable (“55h AAh” en hexadecimal)

2 Bytes

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

El nucleo: 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.

Las funciones más importantes del nucleo aunque no las únicas son:
- Administración de la memoria para todos los programas y procesos en ejecución.
- Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
- Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.

15. Los 4 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.
- 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. Son los que reciben o dan salida a señales analógicas que son procesadas digitalmente. Esto puede realizarse gracias a los conversores analogicos/digitales que, como su nombre indica, convierte señales analógicas a digitales.
- 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. 

16. ¿Que es el kernel?

El Nucleo o Kernel:  se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.

Las funciones más importantes del nucleo aunque no las únicas son:
- Administración de la memoria para todos los programas y procesos en ejecución.
- Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
- Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.

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

Linux usa un método para nombrar las particiones, no tiene en cuenta el tipo de las mismas (a diferencias de otros UNIX) y las nombra de acuerdo al disco en el que están ubicadas.

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


Nombramiento de particiones
Las particiones se nombran en base al disco en el cual se encuentran:
Las particiones primarias o extendidas se denominan desde /dev/hdX1 a  /dev/hdX4 o /dev/sdX1 a  /dev/sdX4 o
Las particiones lógicas, si existen, se denominan /dev/hdX5, /dev/hdX6, etc. o  /dev/sdX5, /dev/sdX6, etc.

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

El proceso de arranque en GNU/Linux es la forma en la cual los sistemas operativos basados en el núcleo Linux se inicializan. Es similar a la forma en que arranca BSD y otros sistemas Unix. 
Todo el proceso de arranque se lleva a cabo en 4 etapas reconocidas por el código que en ese momento tiene control sobre la CPU; al inicio solo el BIOS tiene control, después será el cargador de arranque quien tenga en control, más adelante el control pasa al propio kernel Linux, y en la última etapa será cuando tengamos en memoria los programas de usuario conviviendo junto con el propio sistema operativo y serán ellos quienes tengan el control del CPU. 
La etapa del cargador de arranque no es totalmente necesaria, determinada la BIOS puede cargar y pasar el control a GNU/Linux sin hacer uso del cargador de arranque, usar un cargador de arranque facilita al usuario la forma en que el kernel será cargado. 

19. ¿Qué es un sistema de archivos?

Aunque los discos rígidos pueden ser muy chicos, aún así contienen millones de bits, y por lo tanto necesitan organizarse para poder ubicar la información. Éste es el propósito del sistema de archivos. Recuerde que un disco rígido se conforma de varios discos circulares que giran en torno a un eje. Las pistas (áreas concéntricas escritas a ambos lados del disco) se dividen en piezas llamadas sectores (cada uno de los cuales contiene 512 bytes). El formateado lógico de un disco permite que se cree un sistema de archivos en el disco, lo cual, a su vez, permitirá que un sistema operativo (DOS, Windows 9x, UNIX, ...) use el espacio disponible en disco para almacenar y utilizar archivos. El sistema de archivos se basa en la administración de clústers. 

20. Funciones del núcleo o kernel.

El núcleo tiene como función básica 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 proporcionadas 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 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.

21. Arquitectura de Windows y de Linux.



Windows
Posee una arquitectura modular es decir que modifica los factores armónicos en proceso para obtener distintos resultados. Esta compuesta por una serie de componentes que brindan servicios a otros componentes y es responsable de sus funciones; ya que los programas son asimilados por el sistema operativo como si fueran “clientes a los que se debe servir”.



Linux
Se inspira en dos sistemas operativos:
1. Sistema operativo abierto o libre: creado por Ken Thompson y Denis Richie en los laboratorios de Bell en 1969. En este se toman sus características, especificaciones y funcionamiento.
2. Sistema educativo minix: creado por Andreu S. Tanenbaum en 1987, se este se toma la estructura y código de núcleo.
Este sistema operativo es uno de los ejemplos de código abierto y software libre. Esta desarrollado por colaboradores de todo el mundo y licenciado por GLP v2 (licencia publica general GNU esta orientada a proteger la modificación, libre distribución y uso de software).





22. Comparación entre el núcleo de Linux y el núcleo de Windows.


Linux
Windows
Se basa en los sistemas operativos UNIX y MINIX
Se basa en (Windows NT, 2000, XP, Server 2003 y Vista

En el UNIX del Windows las rutinas del meollo que manejan los pánicos son diseñadas para que produzcan en mensaje de error en la consola, cree una memoria de descarga y se reinicie automáticamente.
En las rutinas del meollo se produce un error a si que no se puede seguir operando en el sistema, entonces se reinicia automáticamente.



23. El núcleo de Windows 7 (MinWin)

Es altamente modular y lo forman dos capas principales:
Modo usuario: estos programas y subsistemas están limitados a los recursos que se tienen del sistema.
Modo núcleo: se tiene un acceso a la memoria del sistema y a los periféricos.
Estos núcleos se llaman núcleos híbridos, este nombre se encuentra en discusión, ya que el núcleo esta estructurado al estilo de un micro núcleo y es esencialmente un núcleo monolítico.
Su arquitectura se compone de:
1. núcleo hibrido
2. Una capa de abstracción de hardware (conexión entre el software y el hardware del sistema).
3. Controladores
4. Executivo (se implementan los servicios de alto nivel)
5. Las librerías dinámicas que sirven para su correcto funcionamiento.

24. Nomenclatura del Kernel en Linux.

El kernel de Linux está escrito en C y es código abierto licenciado bajo licencia GNU/GPL (excepto el planificador de recursos, el cual pertenece a Linux Torvalds y al resto de programadores que se han ocupado de dicha parte), con lo cual tenemos acceso al código para su estudio y/o modificación.

La nomenclatura del Kernel se divide en 3 campos separados por un punto (.) estos son:
- Primer campo: Número de la versión, actualmente a fecha de este documento.
- Segundo campo: Numero de "sub-versión", por llamarlo de algun modo, es la version dentro de la propia versión, si este numero es par, la versión sera estable, si este es impar, ésta sera inestable.
- Tercer campo: Nivel de corrección el en que se encuentra.

25. Vulnerabilidad del Núcleo de Windows Vista.

Según Microsoft tal vulnerabilidad se encuentra en un desbordamiento de buffer, él peligro de esto es que esta parte puede ser explotada para ingresar un código malicioso que puede comprometer la seguridad y privacidad del usuario.