jueves, 30 de septiembre de 2010
Sistema operativo
Funciones de un sistema operativo
Las funciones más importantes que debe cumplir un sistema operativo son las siguientes:
- Aceptar los trabajos y conservarlos hasta su finalización.
- Detectar errores y actuar de modo apropiado en caso de que se produzcan.
- Controlar las operaciones de E/S.
- Controlar las interrupciones.
- Planificar la ejecución de tareas.
- Entregar recursos a las tareas.
- Retirar recursos de las tareas.
- Proteger la memoria contra el acceso indebido de los programas.
- Soportar el multiacceso.
- Proporcionar al usuario un sencillo manejo de todo el sistema.
- Aprovechar los tiempos muertos del procesador.
- Compartir los recursos de la máquina entre varios procesos al mismo tiempo.
- Administrar eficientemente el sistema de cómputo como un todo armónico.
- Permitir que los diferentes usuarios se comuniquen entre sí, así como protegerlos unos de otros.
- Permitir a los usuarios almacenar información durante plazos medianos o largos.
- Dar a los usuarios la facilidad de utilizar de manera sencilla todos los recursos, facilidades y lenguajes de que dispone la computadora.
- Administrar y organizar los recursos de que dispone una computadora para la mejor utilización de la misma, en beneficio del mayor número posible de usuarios.
- Controlar el acceso a los recursos de un sistema de computadores
Características básicas del sistema operativo
En computadoras, el sistema operativo comienza a funcionar cuando finaliza el trabajo del BIOS al encenderse o reiniciar el computador
Los sistemas operativos poseen una interfaz que puede ser gráfica (GUI) o de texto (línea de comandos).
Los sistemas operativos forman una plataforma para que otros sistemas o aplicaciones la utilicen. Aquellas aplicaciones que permiten ser ejecutadas en múltiples sistemas operativos son llamadas multiplataforma.
La mayoría de los sistemas operativos actuales son también multiusuario, aunque existen los monousuario (por ejemplo, DOS)
También pueden clasificarse en multitarea o monotarea. Cada programa que se ejecuta en un sistema operativo, ya sea aplicación o servicio de fondo, es llamado proceso.
Los sistemas operativos pueden ser centralizados, si permiten utilizar recursos de una sola computadora, o distribuido si permiten utilizar recursos de más de una computadora al mismo tiempo.
Todos los sistemas operativos deben incluir un soporte para uno o más sistemas de archivos. Por ejemplo, el sistema operativo Windows XP soporta NTFS y FAT32, en tanto Windows Vista sólo soporta NTFS.
También deben tomar medidas de seguridad (Ver Seguridad informática), que antes no existían en los sistemas operativos. El principal peligro proviene de las redes como internet.
Otra característica de los actuales sistemas operativos es que poseen un gran conjunto decontroladores (drivers) para permitir rápida compatibilidad con dispositivos de hardware.
Clasificación de sistemas operativos
Según su interfaz:
* Interfaz de Línea de Comandos: DOS, MS-DOS...
* Interfaz Gráfica del Usuario: Windows, Mac OS X...
Según el número de usuario:
* Sistemas Operativos Monousuario
* Sistemas Operativos Multiusuario
Según el número de tareas:
* Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea)
* Sistemas Operativos Monotareas
Según el número de procesadores:
* Uniproceso
* Multiproceso
Según su localización o forma de ofrecer sus Servicios:
* Sistemas operativos integrados (embedded): Windows CE, Pocket PC OS y Palm OS
* Sistemas operativos de red
* Sistemas operativos distribuidos
* Sistemas operativos stand-alone o que trabajan en una única computadora
* Sistemas Operativos por lotes
* Sistemas Operativos de tiempo real
* Sistemas Operativos de tiempo compartido
* Sistemas Operativos paralelos
Núcleo o kernel
Núcleo o kernel (de la raíz germánica Kern) es un software que actúa de sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware del computador 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.
Las funciones más importantes del mismo, 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.
ARQUITECTURA DEL SISTEMA LINUX
Los servidores ejecutan el sistema operativo Linux (la distribución Debían GNU/Linux 2.1 Slink) y diverso software de comunicaciones y aplicación: todo ello software libre a excepción del Gestor de Base de Datos Multibase y el antivirus KAVKEEPER que filtra el correo entrante y los ficheros depositados en los discos de red.
La intercomunicación de los pcs y los servidores se realiza por medio de los siguientes protocolos:
· Autenticación: Las estaciones de trabajo ejecutan sobre el sistema Win NT el programa NISGINA con lo que consultan la base de datos de usuarios y contraseñas del servidor. Además, en cada consulta se actualiza la base de datos de usuarios local a ese PC. De esta manera cada usuario tiene una palabra de acceso unica en cada servidor que le da acceso desde cualquiera de los pc que quiera conectarse. Además la réplica local actualizada permite a un usuario trabajar en su PC con funcionalidad limitada (sin los recursos que residen en el servidor) si el servidor esta averiado.
· Disco remoto: En el servidor se ejecuta SAMBA, emulador de protocolos SMB. Este programa ampliamente difundido permite que los pc vean una partición del disco del servidor usando protocolos nativos SMB de las redes Microsoft. En la arquitectura IntraMAP además se usa el servidor para almacenar la mayoría de los datos personales y de grupo del usuario (Escritorio, Correo electro electrónico, ficheros de trabajo) que de esa manera son salvaguardados de modo diario y da al usuario independencia frente a fallos que le obliguen a cambiar de PC.
· Correo: Los usuarios acceden a su correo electro electrónico con la herramienta NETSCAPE MESSENGER 4.5. El correo entrante se descarga del spool común del servidor y se vuelve a depositar en el servidor, pero en formato PC en la partición personal de disco de red que posee el usuario.
· Navegadores: Los pc ejecutan directamente los navegadores (en este momento NETSCAPE NAVIGATOR 4.5) pero la configuración se guarda en el disco de red del usuario. Algunos parámetros de la configuración (Proxy, máquinas locales, etc.) son actualizados de modo automático para todos los usuarios evitando errores y dificultando manipulaciones intencionadas.
ARQUITECTURA DE WINDOWS
Windows presenta una arquitectura del tipo cliente-servidor. 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.
Uno de los objetivos fundamentales de 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 (también llamado modo kernel, modo núcleo y modo supervisor). 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. Por eso se dice que Windows NT es un sistema operativo basado en micro-kernel.
Es por ello que en un primer acercamiento a la arquitectura distinguimos un núcleo que se ejecuta en modo privilegiado, y se denomina Executive, y unos módulos que se ejecutan en modo no privilegiado, llamados subsistemas protegidos.
Los programas de usuario (también llamados programas de aplicación) interaccionan con cualquier sistema operativo (SO) a través de un juego de llamadas al sistema, que es particular de cada SO. En el mundo Windows en general, las llamadas al sistema se denominan API (Application Programming Interfaces, interfaces para la programación de aplicaciones). En Windows NT yen Windows 95 se usa una versión del API llamada API Win32. Un programa escrito para Windows NT o Windows 95, y que por consiguiente hace uso del API Win32, se denomina genéricamente "programa Win32", y de hecho esta denominaciones bastante frecuente en artículos y libros al respecto. Desgraciadamente, y conviene dejarlo claro cuanto antes, el término "Win32" tiene tres acepciones (al menos hasta ahora) totalmente distintas. Una es el API, otra es el nombre de uno de los subsistemas protegidos de Windows NT del que hablaremos más adelante, y por último se denomina Win32s a una plataforma desarrollada por Microsoft, similar a Windows 3.1, pero que usa el API Win32 en vez del APIWin16 del Windows 3.1.
Hechas estas aclaraciones, podemos continuar adelante. Algunas de las llamadas al sistema, debido a su naturaleza, son atendidas directamente por el Executive, mientras que otras son desviadas hacia algún subsistema. Esto lo veremos con detalle en breve.
El hecho de disponer de un núcleo rodeado de subsistemas que se ejecutan en modo usuario nos permite además añadir nuevos subsistemas sin producir ningún tipo de confrontación.
En el diseño de Windows han confluido aportaciones de tres modelos: el modelo cliente-servidor, el modelo de objetos.