miércoles, 6 de octubre de 2010

1. Que es un Sistema Operativo


Que es un Sistema Operativo

El sistema operativo (a veces también citado mediante su forma abreviada OS en inglés) se encarga de crear el vínculo entre los recursos materiales, el usuario y las aplicaciones (procesador de texto, videojuegos, etcétera). Cuando un programa desea acceder a un recurso material, no necesita enviar información específica a los dispositivos periféricos; simplemente envía la información al sistema operativo, el cual la transmite a los periféricos correspondientes a través de su driver (controlador). Si no existe ningún driver, cada programa debe reconocer y tener presente la comunicación con cada tipo de periférico.

2. Funciones de un sistema operativo.


-Interfaces del usuario
Es la parte del sistema operativo que permite comunicarse con él de tal manera que se puedan cargar programas.

-Administración de recursos
Sirven para administrar los recursos de hardware y de redes de un sistema informativo.

-Administracion de archivos
Un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas.

- Administracion de tareas
Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales.

-Servicio de soporte
1.Actualización de versiones.
2.Mejoras de seguridad.
3.Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente para administrar alguna determinada función, ...).
4.Controladores para manejar nuevos periféricos (este servicio debe coordinarse a veces con el fabricante del hardware).
5.Corrección de errores de software

3. Características de los sistemas operativos.

· Conveniencia: Un Sistema Operativo hace más conveniente el uso de una computadora.


· Eficiencia: Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.

· Habilidad para evolucionar: Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.

· Encargado de administrar el hardware: El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.

· Relacionar dispositivos (gestionar a través del kernel): El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.

· Organizar datos para acceso rápido y seguro.

· Manejar las comunicaciones en red: El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.

· Procesamiento por bytes de flujo a través del bus de datos.

· Facilitar las entradas y salidas: Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.

4. Tipos de sistemas operativos: Por el número de usuarios, Número de tareas y por el número de procesadores

Por número de usuarios
  • Sistema operativo monousuario: Son aquellos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga el computador o el número de de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo.
  • Sistema operativo multiusuario: Son capaces de dar servicio a la vez, ya sea por medio de varias terminales conectadas al computador o por medio de sesiones remotas en una red de comunicaciones.

Por número de tareas

  • Sistema operativo monotarea: Son aquellos que solo permiten una tarea a la vez por usuario.
  • Sistema operativo multitarea: Es aquel que le permite al usuario estar realizando varias labores al mismo tiempo.

Por número de procesadores

  • Sistema operativo de uniproceso: Es aquel que es capaz de manejar solamente un procesador del computador.
  • Sistema operativo multiproceso: Se refiere al número de procesadores del sistema, que es mas de uno y este es capaz de usarlos todos para distribuir su carga de trabajo.

5. ¿Cuáles son las funciones del núcleo o kernel?


MODO KERNEL


– CAPA DE ABSTRACCIÓN DE HARDWARE (HAL).


Conocido por sus siglas en inglés HAL (Hardware Abstraction Layer) es una interfaz entre el hardware y el resto del Sistema Operativo, está implementada como una biblioteca de enlace dinámico (dll) y es responsable de proteger el resto del sistema de las especificaciones del hardware, tales como controladores de interrupción e interfaces de entrada/salida. Esta abstracción hace al sistema más portable ya que el resto del sistema no tiene que preocuparse sobre que plataforma está corriendo. Cada plataforma en que el sistema corre necesita un HAL específico. El diseño intenta que cuando Windows sea portado a una nueva arquitectura de procesador, el HAL sea reescrito para el nuevo procesador, pero el resto del sistema simplemente debe ser recompilado.
Aunque la meta de Windows es que todas las llamadas relacionas con el hardware sean a través del HAL, la realidad es que un número pequeño de llamadas de los drivers y del Kernel bordean al HAL e interactúan directamente con el hardware.


– MICROKERNEL



Es el responsable de todas las acciones que se realizan sobre le sistema y casi todas las funciones del sistema pasan a través de él.

El diseño de este componente asigna muchas de las funciones normalmente asignadas al Kernel en los Sistemas Operativos tradicionales a un grupo de programas llamado Ejecutor de Windows, del cual el microkernel es parte, corre en el modo privilegiado y ambos (el ejecutor y el microkernel) se comunican a través de primitivas del sistema operativo a bajo nivel.
El microkernel está situado en el corazónde Windows, trabaja muy estrechamente con el HAL (Nivel de Abstracción de Hardware), este planifica la ejecución de hilos y manipula las interrupciones y excepciones de procesos. El papel de este es mantener a los procesadores lo mas ocupado posible. En sentido general este se encarga de las funciones más básicas de todo el SO, como son:
•Ejecución de subprocesos.
•Sincronización multiprocesador.
•Manejo de las interrupciones de hardware.

– EL ADMINISTRADOR DE OBJETOS.

El Administrador de Objetos (Object Manager) es usado para crear, modificar y eliminar objetos ( tipos de datos abstractos que son usados para representar recursos del Sistema Operativo) usados por todos los sistemas que conforman el Ejecutor de Windows. Este también proporciona información sobre el estado de los objetos a todo el Sistema Operativo.

Este también se asegura que los objetos no consuman muchos recursos (por lo regular la memoria), manteniendo cuotas para los diferentes tipos de objetos.
A modo de resumen el Administrador de Objetos se encarga de crear, destruir y gestionar todos los objetos del Ejecutor de Windows.

– EL EJECUTOR DE WINDOWS.

El Ejecutor de Windows se encarga de las tareas importantes, las que son de vital importancia para el sistema completo, ya que el microkernel está casi siempre demasiado ocupado para dirigirse directamente.
Este componente trabaja estrechamente con el Administrador de Objetos. Cada vez que un usuario intenta acceder a un objeto el Administrador de Objetos crea un manipulador para acceder a este y llama al SRM para determinar el nivel de acceso concedido por el manipulador. El SRM usa información contenida en la ficha de acceso del usuario y lo compara con la lista de control de accesos sobre el objeto para ver si al usuario debe concederse el nivel de acceso pedido. De esta forma el SRM tiene el control de la seguridad de acceso de todos los objetos en el sistema. Una definición clara es que el Ejecutor de Windows provee los fundamentos del sistema operativo que serán suministradas a todas las aplicaciones que corren sobre el sistema. Este incluye servicios como la Administración de Objetos, de Memoria virtual, de Entrada-Salida y de Procesos.

– EL ADMINISTRADOR DE PROCESOS.






El Administrador de Procesos (Process Manager) es el responsable de crear, quitar y modificar los estados de todos los procesos e hilos. Este también proporciona información sobre el estado de procesos e hilos al resto del sistema.


– EL ADMINISTRADOR DE MEMORIA VIRTUAL.

El Administrador de Memoria Virtual (Virtual Memory Manager o VMM) proporciona la gestión de memoria virtual del sistema. La memoria virtual es un esquema que permite usar los recursos del disco en lugar de la memoria física del sistema moviendo las páginas al disco cuando estas no están siendo usadas y recuperándolas cuando se les necesitan. Este es un segmento integral de Windows el cual asigna espacios de direcciones de 32 bit a cada proceso sin preocuparse de la cantidad de memoria física del sistema.


– EL MONITOR DE SEGURIDAD.




El Monitor de Seguridad (Security Reference Monitor o SRM) es el lecho de toda la seguridad dentro del sistema WINDOWS y es el responsable de hacer cumplir todas las políticas de seguridad en la computadora local.

Este componente trabaja conjuntamente con los subsistemas de tiempo de corrida, proceso de conexión al sistema (conocido como logon process) y control de la seguridad local (local security authority). Cuando un usuario intenta conectarse al sistema su identidad es verificada, el subsistema de proceso de conexión pide una ficha de acceso de seguridad (conocido por sus siglas en inglés SAT o security access token) del usuario. El SAT contiene una lista de los privilegios de usuarios y grupos. Este se usa como llave para ese usuario durante la sesión de conexión. Siempre que el usuario quiera hacer algo, el SAT es presentado y usado para determinar si el usuario puede realizar las acciones.


– EL ADMINISTRADOR DE ENTRADA-SALIDA.



El Administrador de Entrada-Salida (I/O Manager) es responsable de gestionar la comunicación entre los distintos drivers de dispositivo, para lo cual implementa una interfaz bien definida que permite el tratamiento de todos los drivers de una manera homogénea, sin que intervenga el cómo funciona específicamente cada uno. Tiene una serie de subcomponentes que son:

•Driver del Sistema de Archivos: este se encarga de establecer la comunicacióncon los drivers de los Sistemas de Ficheros, ya que el sistema permite la coexistencia de múltiples Sistemas de Archivos en diferentes particiones lógicas de la misma unidad física.
•El servidor y el redirector de red.
•Los drivers de dispositivo del sistema.
•El administrador de caches (Cache Manager): este se encarga de manipular la cache para todo el Sistema de Entrada y Salida.

6. ¿Cuál es la arquitectura de Windows y de Linux?

ARQUITECTURA DE WINDOWS

La arquitectura micronúcleo asigna solamente unas pocas funcionesesenciales al núcleo, incluyendo espacios de direcciones, comunicación entre procesos (IPC) y planificación básica. Otros servicios del Sistema Operativo los proporciona procesos, algunas veces llamados servidores, que se ejecutan en modo usuario y que el micronúcleo trata como a cualquier otra aplicación. Este enfoque desconecta el núcleo y el desarrollode servidores. Los servidores pueden estar diseñados para aplicaciones específicas o necesidades del entorno. El enfoque del micronúcleo simplifica la implementación, proporciona flexibilidad y se adapta bien para entornos distribuidos. En esencia, un micronúcleo interactúa de la misma forma con procesos servidores locales y remotos, facilitando la construcción de sistemas distribuidos.

Uno de los pasos más importantes que revolucionó los Sistemas Operativos de la Microsoft fue el diseño y creación de un Sistema Operativo extensible, portable, fiable, adaptable, robusto, seguro y compatible con sus versiones anteriores (Windows NT).

Y para ello crearon la siguiente arquitectura modular:


La cual está compuesta por una serie de componentes separados donde cada cual es responsable de sus funciones y brindan servicios a otros componentes. Esta arquitectura es del tipo cliente – servidor ya que los programas de aplicación son contemplados por el sistema operativo como si fueran clientes a los que hay que servir, y para lo cual viene equipado con distintas entidades servidoras.

Ya creado este diseño las demás versiones que le sucedieron a Windows NTfueron tomando esta arquitectura como base y le fueron adicionando nuevos componentes.

Uno de las características que Windows comparte con el resto de los Sistemas Operativos avanzados es la división de tareas del Sistema Operativo en múltiples categorías, las cuales están asociadas a los modos actuales soportados por los microprocesadores. Estos modos proporcionan a los programas que corren dentro de ellos diferentes niveles de privilegios para acceder al hardware o a otros programas que están corriendo en el sistema. Windows usa un modo privilegiado (Kernel) y un modo no privilegiado (Usuario).

Uno de los objetivos fundamentales del diseño fue el tener un núcleo tan pequeño como fuera posible, en el que estuvieran integrados módulos que dieran respuesta a aquellas llamadas al sistema que necesariamente se tuvieran que ejecutar en modo privilegiado (modo kernel). El resto de las llamadas se expulsarían del núcleo hacia otras entidades que se ejecutarían en modo no privilegiado (modo usuario), y de esta manera el núcleo resultaría una base compacta, robusta y estable.

ARQUITECTURA DE LINUX
Linux es un núcleo monolítico híbrido, donde sus controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo, con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario.
A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al sistema operativo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones.
Así mismo, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden detenidos momentáneamente por actividades más importantes bajo ciertas condiciones.
Esta habilidad fue agregada para manejar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento Simétrico.
A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos son fácilmente configurables como Loadable Kernel Modules, y se pueden cargar o descargar mientras se está corriendo el sistema


CARACTERISTICAS

• Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al mismo tiempo. LINUX utiliza la llamada multitarea preventiva, la cual asegura que todos los programas que se están utilizando en un momento dado serán ejecutados, siendo el sistema operativo el encargado de ceder tiempo de microprocesador a cada programa.

• Multiusuario: Muchos usuarios usando la misma maquina al mismo tiempo.

• Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium II,Amiga y Atari, tambien existen versiones para su utilizacion en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.

• Multiprocesador: Soporte para sistemas con mas de un procesadoresta disponible para Intel y SPARC.
Funciona en modo protegido 386.
Protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.
Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de un programa que están siendo usadas actualmente.


7. Realice la comparación entre el núcleo de Linux y Windows


Windows

Un Sistema Operativo serio, capaz de competir en el mercado con otros como Unix que ya tienen una posición privilegiada, en cuanto a resultados,debetener una serie de características que le permitan ganarse ese lugar. Algunas de estas son:

  • Que corra sobre múltiples arquitecturas de hardware y plataformas.
  • Que sea compatible con aplicaciones hechas en plataformas anteriores, es decir que corrieran la mayoría de las aplicaciones existentes hechas sobre versiones anteriores a la actual, nos referimos en este caso particular a las de 16-bit de MS-DOS yMicrosoft Windows 3.1.
  • Reúna los requisitos gubernamentales para POSIX (Portable Operating System Interface for Unix).
  • Reúna los requisitos de la industria y del gobierno para laseguridad del Sistema Operativo.
  • Sea fácilmente adaptable al mercado global soportando códigoUnicode.
  • Sea un sistema que corra y balancee los procesos de forma paralela en varios procesadores a la vez.

Linux

Actualmente Linux es un núcleo monolítico híbrido. Loscontroladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido comoanillo 0(ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente comomódulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones.

8. Explique el núcleo de Windows 7 (MinWin)

¿qué es MinWin? Podría decirse que consiste en coger el núcleo de Windows e ir quitando cosas y parar sólo justo antes de que deje de funcionar. Su objetivo era consolidar el diseño del núcleo del sistema operativo. Por lo visto los ingenieros de Microsoft descubrieron que los sistemas de bajo nivel del núcleo de Windows realizaban llamadas a procesos de alto nivel.

Para mejorar el diseño “cortaron” estas llamadas de alto nivel para convertir el núcleo de Windows en un sistema escalable. De esta manera se realizó un mapa de dependencias para poder limpiar las llamadas que se realizaban fuera del núcleo. Se re-organizaron estas llamadas y las API. El experimento acabó con un sistema operativo que funcionaba perfectamente sin necesidad de librerías de alto nivel: el MinWin. El sistema ocupa de 25 a 40 Megabytes, frente a los 4 Gigabytes de Vista, y se compone de apenas 100 ficheros, cuando Windows necesita 5.000 para funcionar.

De esta forma se creó un “corazón” de Windows nuevo autocontenido y escalable, pero que contiene el núcleo (el kernel) del Windows de toda la vida, sólo que con las llamadas de alto nivel y las API reorganizadas.



9. ¿Por qué a la nueva versión de Windows lo va a llamar Windows 7?

En caso de que se hayan perdido la noticia, el nombre oficial para la siguiente versión de Microsoft es Windows Seven. Tal parece que en Redmond ya simplemente se rindieron tratando de mejorar la imagen de Vista y su nueva estrategia es lanzar una actualización lo más pronto posible como si se tratar de un producto completamente nuevo.
Dicen que se llama Windows Seven por que es la séptima gran versión de Windows, pero esperen, si hacemos un poco de historia no llevamos como 15 versiones? incluso si descontamos a los hijos no reconocidos que tienen escondidos en el sótano como Millenium Edition, los números no salen.
  • 1.- Windows 1.0
  • 2.- Windows 2.0
  • 3.- Windows 3.0
  • 4.- Windows 95
  • 5.- Windows 98
  • 6.- Windows 2000
  • 7.- Windows XP
  • 8.- Windows Vista
  • 9.- ¿Windows Seven?
Al final creo que lo que menos importa es el nombre. Creo que esta será la última oportunidad de Microsoft para corregir el rumbo de Windows antes de que se empiece a colapsar seriamente en el mercado. Aunque no han dado fechas oficialmente, se habla de que están trabajando a marchas forzadas para tenerlo listo el próximo año

10. Explique la nomenclatura del kernel en Linux

El kernel de Linux (Linux) está escrito en C y es código abierto licenciado bajo licencia GNU/GPL (excepto el planificador de recursos, el cual pertenece a Linus 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.
Lo podemos encontrar en diferentes versiones, ahora explicaremos la nomenclatura de éste.

El kernel o núcleo de Linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware del computador puedan trabajen juntos. Las funciones del Kernel se simplifican en:

Administración de la memoria, para todos los programas en ejecución.
Administración del tiempo de procesador, que estos programas en ejecución utilizan.
Acceder a los periféricos/elementos y hardware de entrada y salida de una forma practica y cómoda.
El usuario de Linux puede adaptar el Kernel a sus necesidades configurando y compilando un nuevo Kernel o simplemente parchando y compilando el Kernel existente.

Funciones del Nucleo o Kernel

  • Facilita el acceso al hardware
  • Se encarga de decidir que programa puede hacer uso de un dispositivo y durante cuanto tiempo.
  • Garantiza la carga y la ejecución de los procesos, las entradas/salidas y propone una interfaz entre el espacio núcleo y los programas del espacio del usuario.
  • Asigna recursos para el proceso que lo necesite.
  • El núcleo reside siempre en la memoria principal.
  • 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 ejecución utilizan.

11.Cuál es la vulnerabilidad del núcleo de Windows vista


Una falla en la creación de redes de Vista se ha encontrado que el sistema de choque, pero no se espera fijar hasta el próximo Service Pack
Un error ha sido encontrado en Windows Vista que podría permitir que se rootkits ocultos o de denegación de servicio ataques a ser ejecutado en equipos que utilizan el sistema operativo.
La vulnerabilidad fue encontrada por Thomas Unterleitner de Austria phion empresa de seguridad
Según Unterleitner la divulgación de la falla, la cuestión radica en la red de entrada y salida del subsistema de Vista. Algunas solicitudes enviadas a la iphlpapi.dll API puede causar un desbordamiento de búfer que corrompe la memoria kernel de Vista, lo que resulta en una pantalla azul de la muerte accidente.
"Este desbordamiento de búfer que podría (también) ser explotada para inyectar código, por lo tanto, comprometer la seguridad del cliente", Unterleitner dijo.
Unterleitner dijo a ZDNet Reino Unido a través de e-mail que el "explotar puede ser utilizado para apagar la computadora usando un (denegación de servicio) de ataque". También sugirió que, debido a que la explotación se produce en el componente de Netio.sys Vista, que pueden hacer posible rootkits para ocultar.





Uso de un programa de ejemplo, Unterleitner y sus colegas determinó que Vista Enterprise y Vista Ultimate definitivamente afectados por la falla, con otras versiones de Microsoft del sistema operativo "muy probable" que se vieron afectados como así. Ambos 32-bit y 64-bit versiones son vulnerables. Windows XP no se ve afectado.
Pregunta acerca de la gravedad de la falla, Unterleitner señaló que los derechos administrativos se necesitan para ejecutar un programa llamando a la función que podría causar el desbordamiento de búfer. Sin embargo, también dijo que era posible - pero todavía no confirmado - de que alguien podría utilizar un mal DCHP paquete a "aprovechar las ventajas de la explotación sin derechos de administrador."
"Hemos trabajado junto con Microsoft Security Response Center en Redmond desde octubre de 2008, para ubicar, clasificar y arreglar este error," escribió Unterleitner. "Microsoft se enviarán una solución para explotar este con el próximo Service Pack de Vista".
Microsoft le dijo a ZDNet Reino Unido el viernes que había investigado la cuestión, sino que se "desconoce la actualidad de cualquier ataque tratando de utilizar la vulnerabilidad o el impacto de los clientes". No puede, sin embargo, confirmar la inclusión de una solución para el problema en el próximo-como-aún inédito del Service Pack para Vista, ni dar la fecha para que el Service Pack.

12. ¿Cuál es la diferencia entre software libre, software gratuito y software de dominio público?

SOFTWARE LIBRE


El software libre (en inglés free software, esta denominación también se confunde a veces con gratis por el doble sentido del inglés free en castellano) es la denominación del software que respeta la libertad de los usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede ser usado, copiado, estudiado, cambiado y redistribuido libremente. Según la Free Software Foundation, el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, modificar el software y distribuirlo modificado.

El Software Libre es un tipo particular de software que le permite al usuario el ejercicio de cuatro libertades básicas:
0.Ejecutarlo con cualquier propósito
1.Estudiar como funciona y adaptarlo a sus necesidades
2.Distribuir copias
3.Mejorarlo, y liberar esas mejoras al publico


SOFWARE GRATUITO
Se de no mi na soft wa re gra tui to a aquel que po de mos ac ce der gra tui ta­men te, sin pre vio pago.
"software gratuito" (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente ("software comercial"). Análogamente, el "software gratis" o "gratuito" incluye en ocasiones el codigo fuente; no obstante, este tipo de software no es libreen el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.

SOFTWARE DE DOMINIO PUBLICO
Aquel software que no requiere de licencia, pues sus derechos de explotación son para toda la humanidad, porque pertenece a todos por igual. Cualquiera puede hacer uso de él, siempre con fines legales y consignando su autoría original. Este software sería aquel cuyo autor lo dona a la humanidad o cuyos derechos de autor han expirado, tras un plazo contado desde la muerte de este, habitualmente 70 años. Si un autor condiciona su uso bajo una licencia, por muy débil que sea, ya no es del dominio público