Wednesday, November 01, 2006

SISTEMAS DE OPERATIVOS

INTEGRANES:
Ojeda Huayta Roy Frans
Tamayo Rojas Yasunka Nilda
Ccosio Villena Walter
Nataly Raquel


INTRODUCCION

La finalidad del presente trabajo es de dar conocimiento apropiado para saber las diferencias que existen entre sistema operativo Unix y Windows.

Para facilitar el estudio de los sistemas operativos hemos tratado en lo posible de facilitar lo mas esencial de la información recopilada de los diferentes textos encontrados. Dando a conocer en diagramas resúmenes etc.

Así esperando que este modesto trabajo sea un aporte que contribuya a enriquecer el conocimiento de dichos lectores para así poder incentivar la búsqueda de más información acerca de los sistemas operativos existentes.

RESUMEN DEL TRABAJO
Desde una perspectiva práctica, el costo es un factor de diferenciación obvio, como también lo son el acceso al código y la habilidad de ejecutar en procesadores no compatibles con la arquitectura x86. Pero es discutible si esas diferencias son realmente importantes. Por ejemplo, el costo suele ser importante en el área de los negocios sólo cuando los productos en comparación son similares en todas las demás áreas. En el siguiente artículo intentaremos analizar en forma objetiva, técnica y profunda cuáles son laS verdaderas diferencias fundamentales entre los sistemas operativos Windows y los que se basan en Unix.Articulo obtenido de IT SItioPara dejar de lado todo análisis superficial, debemos mirar las funciones fundamentales de un sistema operativo de negocios moderno y preguntar cómo están implementadas por ambos grupos: Microsoft y la comunidad Unix. Conceptualmente, todos estos sistemas, incluyendo Linux y Windows 2003/XP son muy similares porque usan hardware similar para cumplir objetivos similares.Específicamente, todos ellos actúan como interfaces entre el hardware y las aplicaciones del usuario. La mayoría de ellos tienen cuatro “capas”: la capa del usuario se comunica con la de los servicios del SO, que utiliza los servicios del kernel (núcleo) para acceder a los controladores del hardware. El planificador (scheduler) controla los recursos del CPU y el administrador de memoria hace lo mismo con la memoria. El sistema virtual de archivos abstrae el hardware hacia una interface de administración de archivos común para todas las aplicaciones. La interfase de red administra los procesos de entrada/salida y el modulo de comunicación entre procesos controla la mensajería entre las tareas en ejecución.Mirando a las implementacionesMirando como estas ideas están implementadas, nos encontramos con que las filosofías de diseño infuyen como los desarrolladores toman cientos de pequeñas decisiones. Debido a que estas filosofías son diametralmente opuestas, esas “microdecisiones” tienden a ir en direcciones opuestas y esa es lo que diferencia a los sistemas Unix de los fabricados por Microsoft.Por ejemplo, en lo que se refiere a administración de memoria, Windows NT 5.0 y sus sucesores utilizan una técnica de paginación segmentada (clustered paging) y un liberador de memoria que se activa una vez por segundo. Unix, en cambio, utiliza un algoritmo de paginación adaptable LRU (Leas Recently Used, menos utilizado frecuentemente) y el liberador de memoria se ejecuta cuando es necesario.Otra de las formas en que Windows favorece la ejecución de un pequeño conjunto de procesos básicos se evidencia en el hecho de que, internamente, su núcleo no soporta múltiples hilos de ejecución. Esto impide que haya bloqueos entre los hilos y favorece la eficiencia y el control de los procesos claves. Similarmente, la administración de memoria multiprocesador y el módulo de comunicación entre procesos están muy integrados con el módulo de control para optimizar el uso del limitado hardware de administración de memoria propio de los procesadores con la arquitectura x86.En contraste, el “approach” de Unix ha sido generalmente a favor de la creación de procesos y el cambio de contexto entre tareas, lo que le hace perder eficiencia a la hora de ejecutar procesos largos. Se ha favorecido la administración de memoria en los sistemas multiprocesador con el costo de una mayor complejidad en el hardware y también la independencia entre los hilos de ejecución, lo que hace más difícil la comunicación entre ellos.Consecuencia de la diferenciaciónEste tipo de decisiones tiene consecuencias que afectan la seguridad, escalabilidad y adaptabilidad de estos sistemas.En Windows NT 5.X, por ejemplo, el intervalo fijo de un segundo en el que se ejecuta la rutina de balance de carga del sistema permite que un atacante con acceso a nivel de aplicaciones pueda inutilizar el kernel a voluntad. En forma similar, la división fija “50:50” de espacio de memoria de 32 bits en NT 5.2 pueden provocar serias incompatibilidades cuando algún futuro Service Pack agregue el soporte para aplicaciones de 64 bits.Unix, por supuesto, tiene sus propios problemas. Pero las comunidades de estos sistemas (sobre todo las de Solaris y BSD) están investigando para solucionarlos y a la vez acercar el núcleo del SO más y más a las ideas originales de diseño, algo que es comercialmente y prácticamente imposible de hacer para Microsoft.Por ejemplo, si bien no sabemos como es el código del módulo de comunicación entre procesos de Windows, es seguro apostar que es un orden de magnitud más extenso y complejo que el utilizado en un típico kernel BSD. Y esto es sin tener en cuenta que el enfoque de BSD al respecto es mucho más general y conceptualmente más complejo.OBJETIVOS

¿QUÉ LOGRA?

Windows
Logra la facilidad del manejo del sistema operativo
Unix
Logra el desarrollo de seudo código
¿PARA QUE SIRVE?
Windows
Microsoft es el gigante informático que produce y comercializa Windows, el sistema operativo que usa el 90% de los ordenadores personales de todo el mundo (su última versión es Windows XP). Su precio ronda los 120 euros y muchas veces se incluye en el precio del propio ordenador (que ronda los 1.200 euros).
Al igual que un turismo sirve para moverse por casi todo tipo de carreteras, Windows es el estándar de facto que cubre la gran mayoría de necesidades del usuario medio. Ya sea para escribir documentos, navegar por Internet, escuchar música, ver películas, retocar fotografías digitales o disfrutar de los últimos juegos, Windows es fácil de usar y configurar, sin necesidad de poseer conocimientos informáticos avanzados. Además, la práctica totalidad de los programas que se comercializan disponen de una versión para Windows. Sin embargo, Windows tiene fama de ser inestable, ya que los bloqueos y cuelgues son frecuentes (sobre todo en versiones anteriores a XP). Su seguridad también deja mucho que desear, pues existen multitud de virus que aprovechan fallos del sistema para infectar el PC, como, por ejemplo, el virus Passer o el más dañino Chernobyl.
Linux
Es el sistema preferido por muchos de los profesionales de la informática y de Internet. Como si de un 4x4 se tratase, ofrece potencia, estabilidad, seguridad contra virus y sirve para realizar cualquier trabajo. Por contra, al igual que un todo terreno, peca de falta de comodidad, no es tan fácil de usar como los otros dos y se necesitan conocimientos técnicos para realizar algunas tareas. Aún así, sus últimas versiones son bastante más amigables, por lo que ha empezado a calar entre algunos usuarios domésticos y ofimáticas (uso del ordenador en ambientes de oficina).
La colección de programas disponibles en algunas áreas (como los juegos o las aplicaciones multimedia) es aún escasa o de poca calidad, aunque mejora día a día. A la hora de instalar nuevos periféricos, el proceso también se complica: mientras que en Windows y Mac OS es casi automático, en Linux suele ser necesario realizar alguna configuración manual.
Linux es un sistema un tanto 'romántico', pues ha sido desarrollado voluntariamente por programadores de todo el mundo. De ahí que sea libre (libertad total para ver y modificar las 'entrañas' del sistema) y gratuito (puede descargarse de Internet, copiárselo a un amigo o adquirirse en formato CD por unos 30 euros).
DESARROLLO

CONTENIDOS

Ø Sistema operativo Windows
Ø Sistemas operativo Unix
Ø Diferencias entre Windows y unix
Ø Conclusiones
Ø Bibliografía

DESCRIPCIÓN

SISTEMA OPERATIVO WINDOWS

Introducción
Con el paso de los años se ha producido una
evolución gradual de la estructura y capacidades de los Sistemas Operativos. Sin embargo, recientemente se ha introducido un cierto número de nuevos elementos de diseño en los nuevos Sistemas Operativos y en las nuevas versiones de los Sistemas Operativos existentes. Estos Sistemas Operativos modernos responden a nuevos desarrollos del hardware y nuevas aplicaciones. Entre estos dispositivos de hardware están las máquinas multiprocesador, incrementos enormes de la velocidad de la máquina, alta velocidad en los enlaces de las redes de comunicación e incremento en el tamaño y variedad de los dispositivos de almacenamiento de memoria. En los campos de aplicación que han influido en el diseño de los Sistema Operativos están las aplicaciones multimedia, el acceso a Internet y páginas Web y la ejecución cliente/servidor.
El porcentaje de cambios en las demandas de los Sistemas Operativos, requiere no solamente las modificaciones y mejoras en las arquitecturas ya existentes, sino nuevas formas de
organización del Sistema Operativo. Muchos de los diferentes enfoques y elementos de diseño se han probado tanto en Sistemas Operativos experimentales como comerciales, y muchos de ellos encajan dentro de las siguientes categorías
Arquitectura Micronúcleo.
Multihilos.
Multiproceso Simétrico.
Sistemas Operativos Distribuidos.
Diseño Orientado a Objeto.
La mayor parte de los Sistemas Operativos hasta hace poco
tiempo se caracterizaban por un gran núcleo monolítico. Gran parte de la funcionalidad que se pensaba debía tener un Sistema Operativo la proporcionaba este gran núcleo, incluyendo planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria y muchas cosas más. Normalmente un núcleo monolítico está implementado como un único proceso, con todos sus componentes compartiendo el mismo espacio de direcciones.
La
arquitectura micronúcleo asigna solamente unas pocas funciones esenciales 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 desarrollo de 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.
Este trabajo intenta abordar la arquitectura del Sistema Operativo
Windows y los servicios que cada uno de sus componentes brinda para llevar a cabo cada una de las categorías antes expuestas.
Visión General de la Arquitectura de 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, debe tener 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 y Microsoft 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 la seguridad del Sistema Operativo.
Sea fácilmente adaptable al mercado global soportando
código Unicode.
Sea un sistema que corra y balancee los procesos de forma paralela en varios
procesadores a la vez.
Sea un Sistema Operativo de
memoria virtual.
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 NT fueron 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.
El Modo Usuario es un modo menos privilegiado de funcionamiento, sin el acceso directo al hardware. El código que corre en este modo sólo actúa en su propio espacio de
dirección. Este usa las APIs (System Application Program Interfaces) para pedir los servicios del sistema.
El Modo Kernel es un modo muy privilegiado de funcionamiento, donde el código tiene el acceso directo a todo el hardware y toda
la memoria, incluso a los espacios de dirección de todos los procesos del modo usuario. La parte de WINDOWS que corre en el modo Kernel se llama Ejecutor de Windows, que no es más que un conjunto de servicios disponibles a todos los componentes del Sistema Operativo, donde cada grupo de servicios es manipulado por componentes que son totalmente independientes (entre ellos el Núcleo) entre sí y se comunican a través de interfaces bien definidas.
Todos los programas que no corren en Modo Kernel corren en Modo Usuario. La mayoría del código del Sistema Operativo corre en Modo Usuario, así como los subsistemas de
ambiente (Win32 y POSIX que serán explicados en capítulos posteriores) y aplicaciones de usuario. Estos programas solamente acceden a su propio espacio de direcciones e interactúan con el resto del sistema a través de mensajes Cliente/Servidor.
Modo Kernel
1.1 – 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.
Este también suministra la interfaz para el multiprocesamiento simétrico (conocido por sus siglas en inglés SMP). Las versiones Server contienen dos HALs para arquitectura de procesador (Intel, MIPS, PowerPC y and Alpha), el primero es usado para soportar un solo procesador, mientras que el segundo soporta hasta cuatro procesadores.
Para cada procesador físico que existe en
la computadora el HAL representa un procesador virtualizado al microkernel. La idea es que el procesador virtualizado esconda las características especiales del propio procesador al sistema operativo, quiere esto decir que si por ejemplo se tiene dos sistemas multiprocesadores, uno corriendo sobre un procesador Intel y otro corriendo con un Alpha, los HALs en cada sistema serían diferentes, pero los procesadores virtualizados que este presenta al microkernel en ambos casos pudieran ser idénticos. Sobre un sistema SMP (Multiprocesamiento Simétrico) para cada procesador físico en el sistema el HAL representa un procesador virtualizado al microkernel.
A este componente solo pueden acceder componentes del Ejecutor de Windows y nunca se llama por los programas del Modo Usuario. El HAL también intenta ser la única pieza de
software dentro del sistema que se comunique con el hardware, la ventaja de esto es que otros programas no pueden escribir información en el hardware ni accidentalmente, ni intencionalmente y causar una caída del sistema, también impidiendo que programas lean información directamente del hardware.
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.
La capa de Abstracción de Hardware conocida por sus siglas en inglés (HAL) es una biblioteca de manipulación de hardware con rutinas suministradas por Microsoft o por el fabricante del hardware. Esta capa queda en el nivel más bajo del Ejecutor de Windows (entre el hardware y el resto del Sistema Operativo), esta esconde las características de la plataforma para que todas las plataformas y arquitecturas parezcan igual al Sistema Operativo, esto permite al SO correr sobre diferentes plataformas con uno o varios procesadores, facilitando además a los drivers de dispositivos adaptarse a distintas arquitecturas de E/S sin tener que ser modificados en gran medida.
1.2 – 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.
La principal tarea de este componente es la planificación de ejecución de hilos (segmento de código perteneciente a un proceso particular). A cada hilo es asignada una prioridad de 0 a 31, este entonces envía hilos a correr en dependencia de su número de prioridad y los permite ejecutarse un tiempo determinado antes de apropiarse de ellos y permitir que otro proceso corra.
Aquí es importante aclarar que el microkernel no planifica la ejecución de procesos, sino que planifica la ejecución de hilos en el entorno de un proceso, este
procedimiento es el que hace posible la multitarea con preferencia al ser el microkernel el que planifica la ejecución de todo el código que corre en el sistema.
En un sistema multiprocesador, una copia del microkernel corre en cada procesador. Estos segmentos del microkernel son usados para mantener la coherencia de los
recursos del sistema que son compartidos ya que son accedidos por los hilos que corren en todos los procesadores.
Este también es responsable de la manipulación de interrupciones del sistema desde dispositivos físicos. Normalmente cuando el sistema es interrumpido, el microkernel se apropia del hilo que este corriendo en ese momento para procesar la interrupción.
El microkernel también manipula las excepciones del procesador, donde estas excepciones ocurren cuando el procesador intenta hacer alguna operación que no se le está permitida, como el intento de escribir en una porción de memoria a la cual no tiene acceso o cuando se divide por cero.
El uso final del microkernel es suministrar un soporte para la recuperación del sistema de una caída de energía. Si el sistema esta equipado con un suministrador de energía ininterrumpible (más conocido por sus siglas inglés UPS) el microkernel es advertido cuando la caída de energía es detectada, entonces este coordina un cierre ordenado del sistema, el cual incluye la advertencia a los
dispositivos de Entrada/Salida de la caída de la energía y permitir entonces restaurarse consecuentemente.
Puesto que el Microkernel está involucrado en la mayoría de las acciones asumidas por el Sistema Operativo, las porciones críticas de este son escritas en
lenguaje ensamblador para garantizar que este pueda correr lo más rápido y eficientemente posible, lo que trae consigo que su optimización sea un factor crítico de funcionamiento cuando el sistema es portado a diferentes arquitecturas.
El microkernel está situado en el
corazón de 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.
1.3 – 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.
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 Ejecutor de Windows corre exclusivamente en Modo Kernel y es llamado por los subsistemas de ambiente protegido cuando estos necesitan de sus servicios. Debido a la jerarquía de Windows las aplicaciones que corren en Modo Usuario no pueden llamar segmentos del Ejecutor de Windows directamente, sino servicios de
demanda de los subsistemas de ambiente (explicado en capítulos posteriores), como Win32 y POSIX los que a su vez se encargan de llamar los componentes del Ejecutor de Windows.
1.4 – 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.
Los objetos pueden ser cosas concretas, tales como puertos de dispositivos, o pueden ser más abstractos como hilos. Cuando un objeto es creado a este se le da un nombre por el cual otros programas pueden accederle. Cuando un proceso necesita acceder al objeto este solicita un tratamiento de objeto al administrador de objetos. El manipulador de objetos suministra un puntero que es usado para localizar al objeto, así como una información de
control de acceso que dice como se puede acceder a el. Esta información de control de acceso es suministrada por el subsistema de seguridad (tema que se abordará en próximos temas).
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.
Además el Administrador de Objetos se encarga de limpiar objetos huérfanos (objetos que parecen no tener dueño), esto es conocido como recolección de
basura. La carencia de esta facilidad en Windows 3.x era la causa de muchos problemas, ya que cuando un programa colapsaba o manipulaba incorrectamente los recursos del sistema, los recursos consumidos por este no eran devueltos al sistema para que volvieran a estar disponibles produciendo un error por falta de recursos del sistema. De hecho esto era un escape de memoria.
A modo de resumen el Administrador de Objetos se encarga de crear, destruir y gestionar todos los objetos del Ejecutor de Windows.
1.5 – 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.
Un proceso, por la definición, incluye un espacio de dirección virtual, uno o más hilos, un segmento de código del programa ejecutable, y un conjunto de recursos del sistema. Un hilo es un objeto ejecutable que pertenece a un solo proceso y contiene a un contador del programa que apunta a su posición actual en el segmento de código ejecutable del proceso, dos
pilas, y un conjunto de valores del registro.
El Administrador de Procesos, como todos los miembros del Ejecutor de Windows, juega un papel vital en el funcionamiento del sistema entero. Cuando una aplicación comienza su ejecución, se crea como un proceso lo que requiere una llamada al Administrador de Procesos. Como todo proceso debe tener por lo menos un hilo, el Administrador de Procesos es invocado de nuevo para crear el hilo.
El Administrador de Procesos se usa para manejar los hilos, pero no tiene su propio conjunto de
políticas sobre cómo planificar la ejecución de procesos e hilos. Estas políticas son determinadas por el propio microkernel.
El administrador de Procesos (Process Manager) es el responsable de crear, quitar y modificar los estados de todos los procesos e hilos, así como de proporcionar información sobre el estado de procesos e hilos al resto del sistema.
1.6 – 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.
A cada proceso se asigna un espacio de memoria virtual de 4GB. De este espacio, los dos giga bites superiores son reservados para el uso del sistema, mientras que los otros dos giga bites restantes son para el uso del proceso. El Administrador de Memoria Virtual es el responsable de traducir las direcciones de memoria del proceso a las direcciones de memoria reales del sistema. Si la dirección de memoria del proceso hace referencia a un segmento de memoria que ha sido paginada hacia el disco, el Administrador de Memoria Virtual recupera la página del disco.
El Administrador de Memoria Virtual se encarga de todo lo relacionado con la
política de gestión de la memoria, determina los conjuntos de trabajo de cada proceso, mantiene un conjunto de páginas libres, elige páginas que se van a pasar a la memoria real, sube y baja páginas entre la memoria RAM y el archivo de intercambio en disco.
1.7 – Servicios de Llamadas a
Procedimientos Locales.
El
Servicio de Llamadas a Procedimientos Locales (Local Procedure Call Facility o LPC) se integran al diseño cliente/servidor de Windows. Este es la interfaz entre todos los procesos clientes y servidores que corren localmente en el sistema.
La estructura del Servicio de Llamadas a Procedimientos Locales es muy similar a la de las llamadas a Procedimientos Remotos (RPC), excepto que esta está optimizada y solamente soporta comunicación entre procesos clientes y servidores localmente. Más específicamente, el LPC es un mecanismo que permite a dos hilos en procesos diferentes intercambiar información.
Recuerde que nosotros dijimos que el subsistema de Win32 es una aplicación que corre en el Modo Usuario y correrá en su propio espacio de memoria. Cuando un programa se quiere comunicar con el subsistema Win32 para solicitar servicios, llama una
función desde la DLL apropiada, esta función entonces usa la LPC para pasar la petición al subsistema de procesos Win32, la que procesa la demanda y realiza la acción pedida y devuelve un mensaje de realización a través de la LPC.
El Servicio de Llamadas a Procedimientos Locales es el módulo que se encarga de recibir y enviar las llamadas de procedimiento locales entre las aplicaciones cliente y los subsistemas servidores.
1.8 – 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.
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.
1.9 – 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ón con 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. Este es un
método que utilizan los sistemas de archivos para mejorar su rendimiento, donde en lugar de leer y escribir en disco un fichero usado frecuentemente este se almacena en una cache de memoria y la lectura y escritura de estos ficheros se realiza desde memoria. Este componente se encarga de la magia negra que es a menudo necesaria para hacer que varios dispositivos se comuniquen entre si y convivan juntos en un segmento. El Administrador de Entrada-Salida (I/O Manager) es responsable de gestionar la comunicación entre los distintos drivers de dispositivo.
Modo Usuario
2.1 – Subsistemas de Ambiente Protegido
Dos de los
objetivos de WINDOWS son personalidad y compatibilidad. Esto ha sido logrado a través de los subsistemas de ambiente protegido.
La personalidad esencialmente significa que WINDOWS expone múltiples conjuntos de interfaces de programas de aplicación (APIs) y puede actuar eficazmente como si fuera un sistema operativo diferente. WINDOWS viene con una personalidad POSIX y OS/2 además de sus personalidades Win32, Win16 y DOS.
En WINDOWS, hay tres subsistemas de ambiente protegido:
· El subsistema de Win32
· El subsistema de POSIX
· El subsistema de OS/2
Aunque algunas veces se muestran las personalidades Win16 y DOS incluidas en una lista de subsistemas de ambiente protegido, ellas realmente son parte del subsistema Win32.
Los subsistemas de ambiente protegido actúan como los mediadores entre las aplicaciones del Modo Usuario y el Ejecutor de Windows.
Recuerde que el Ejecutor de Windows y todos sus componentes viven en el Modo Privilegiado o Modo Kernel, mientras que todos los demás viven en el Modo Usuario, esto incluye todos los subsistemas de ambiente. Cuando una aplicación hace una llamada a un subsistema de ambiente, este es pasado a través de una capa de servicios del Ejecutor de Windows.
Cada subsistema de ambiente guarda huella de sus propios procesos y trabaja independientemente de los otros subsistemas. Cada aplicación sólo puede correr en el subsistema para el cual fue diseñado. Cuando usted inicia una aplicación en WINDOWS, mira el encabezamiento representado por el archivo y determina en cuál subsistema ejecutar la aplicación.
2.2 – El Subsistema Win32
Win32 es el subsistema nativo y primario de WINDOWS. Las bases para este subsistema es el conjunto de APIs de Win32. Muchos de estas API son extensiones directas de sus homólogas Win16.
Este subsistema actúa como un servidor para todos los otros subsistemas de ambiente soportados en WINDOWS, los que actúan como clientes y traducen sus llamadas API hacia las API apropiadas de Win32.
El subsistema Win32 es responsable de toda la entrada y salida. Este posee el control de la pantalla, el
teclado, y el ratón. Cuando otros subsistemas, como OS/2 o POSIX, necesitan beneficiarse de estos dispositivos, ellos piden los servicios al subsistema de Win32.
Algunos de los objetivos que se trazaron para mantener la compatibilidad con las aplicaciones hechas en versiones anteriores fueron:
Permitir que los programas hechos sobre DOS pudieran correr sin modificación.
Suministrar la capacidad para ejecutar la mayoría de las aplicaciones Windows de 16 bits sin modificación
Proteger al sistema y otras aplicaciones de 32 bits de la interferencia de las aplicaciones de 16 bits y DOS.
Permitir a las plataformas RISC (Reduced Instruction set Computer,
microprocesador cuyo número de instrucciones es reducido para lograr una frecuencia más alta de trabajo) ejecutar aplicaciones Windows de 16 bits y DOS.
Suministrar un mecanismo para compartir
datos entre aplicaciones Windows de 32 y 16 bits.
Muchas personas piensan en Windows 3.x como un Sistema Operativo. Técnicamente, no es un verdadero Sistema Operativo, sino una interfaz de usuario que es miembro del DOS, el verdadero Sistema Operativo.
Así que, el primer paso en proporcionar compatibilidad fue crear un ambiente de DOS. El ambiente de DOS en WINDOWS se llama la máquina virtual de DOS (Machine DOS Virtual o VDM). El VDM es una aplicación de modo usuario de 32 bits el cual solicita los servicios del subsistema de Win32 y en ocasiones directamente a la capa de servicios del sistema. Es basado en DOS 5.0.
WINDOWS permite ejecutar tantas aplicaciones de DOS como uno desee, donde cada aplicación corre en su propio VDM. Puesto que los VDMs son nada más que procesos normales bajo WINDOWS, ellos también son multitarea preventiva al igual que otros procesos en el sistema. Por consiguiente, puede decirse que WINDOWS permite la multitarea preventiva de programas de DOS.
Uno de los rasgos adicionales del VDM es que le da 620 KB de memoria "convencional" libre al usuario. Lo milagroso sobre esto es que también da a las aplicaciones de DOS soporte de ratón, red, y
CD-ROM.
El Subsistema Win32 es el más importante, ya que atiende no sólo a las aplicaciones nativas de Windows, sino que para aquellos programas no Win32, reconoce su tipo y los lanza hacia el subsistema correspondiente. En el caso de que la aplicación sea MS-DOS o Windows de 16 bits (Windows 3.11 e inferiores), lo que hace es crear un nuevo subsistema protegido. Así, la aplicación DOS o Win16 se ejecutaría en el contexto de un proceso llamado VDM (Virtual DOS Machine, máquina virtual DOS), que no es más que un simulador de un ordenador funcionando bajo MS-DOS. El subsistema soporta una buena parte del API Win32. Así, se encarga de todo lo relacionado con la interfaz gráfica con el usuario (GUI), controlando las entradas del usuario y salidas de la aplicación.
2.3 – El Subsistema POSIX.
Microsoft prestó mucha
atención a los diferentes estándares de sistemas abiertos cuando Windows NT estaba en vía de desarrollo. Ellos reconocieron el valor de soportar sistemas abiertos como un método para ganar aceptación de su nuevo sistema operativo avanzado dentro del mercado.
Uno de los estándares más frecuentemente citados soportados por Windows es el POSIX (Interfaz de Sistema operativo Portable Basado en Unix), el cual representa la interfaz del Sistema Operativo portable y fue desarrollado por el IEEE (Instituto de Ingenieros en
Electricidad y Electrónica) como un método de proporcionar portabilidad a las aplicaciones hechas sobre plataformas UNIX. No obstante, POSIX se ha integrado en muchos sistemas no UNIX.
Existen muchos niveles de obediencia con POSIX. Estos niveles representan un conjunto de evoluciones de propuestas, aunque no todas han sido aprobadas como estándares.
El subsistema de POSIX requiere un mínimo de servicios que son proporcionados por WINDOWS. Cuando una aplicación de POSIX corre en WINDOWS, el subsistema es cargado y traduce las llamadas API del
lenguaje C, requeridas para soportarlo en llamadas a APIs de Win32 las que son servidas por el subsistema Win32.
Debido a la
naturaleza limitada, el subsistema de POSIX en WINDOWS no suministra soporte para gestión de redes o sistema de seguridad.
El Subsistema POSIX interacciona con el Ejecutor de Windows. Se encarga de definir aspectos específicos del Sistema Operativo UNIX, como pueden ser las relaciones jerárquicas entre procesos padres e hijos (las cuales no existen en el subsistema Win32, por ejemplo, y que por consiguiente no aparecen implementadas directamente en el Ejecutor de Windows).
2.4 – El Subsistema OS/2.
El subsistema de OS/2 está implementado como un subsistema de ambiente protegido, parecido al subsistema POSIX. Este traduce las llamadas API de OS/2 en llamadas a APIs de Win32 que son servidas por el subsistema de Win32.
El subsistema y sus aplicaciones corren en su propio espacio de memoria protegido de 32 bits y constituyen multitarea preventiva unas respecto a otras y respecto a otras aplicaciones que corren en el sistema.
Además de un conjunto de
motores APIs de OS/2, el subsistema implementa muchos APIs gestores de LAN (Red de Área Local), incluyendo tuberías, NETBIOS y mailslots. De esta manera difiere del subsistema POSIX ya que este no posee soporte para gestión de redes.
El Subsistema OS/2 igual que el subsistema POSIX proporciona un entorno para aplicaciones UNIX, este subsistema da soporte a las aplicaciones OS/2. Proporciona la
interfaz gráfica y las llamadas al sistema; las llamadas son servidas con ayuda del Ejecutor de Windows.

SISTEMA OPERATIVO UNIX
Introducción
Unix se trata de un sistema operativo de los mas utilizados y con mas futuro debido a que son muchos organismos oficiales y particulares los que defienden su utilización, así como muchas firmas de fabricación y comercialización de computadoras que lo incorporan en sus productos. Podemos citar el ejemplo de la Comunidad Económica Europea, que impone el sistema operativo UNIX en todas las aplicaciones que se desarrollan bajo sus auspicios.
Unix es un sistema operativo de
tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de periféricos conectados a la máquina. Además es un sistema multiusuario, en el que existe la portabilidad para la implementación de distintas computadoras.
Esta formado por una serie de elementos que pueden representarse en forma de capas concéntricas donde, en primer lugar, alrededor del
hardware, aislando a este de los usuarios, además de adaptar el resto del sistema operativo a la maquina debido a la portabilidad que existe en el mismo.
Características Generales:
Es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus
programas. Controla los dispositivos de periféricos conectados a la máquina.
Posee las siguientes características:
· Es un sistema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo.
· Está escrito en un
lenguaje de alto nivel: C.
· Dispone de un lenguaje de
control programable llamado SHELL.
· Ofrece facilidades para la creación de programas y
sistemas y el ambiente adecuado para las tareas de diseños de software.
· Emplea manejo dinámico de
memoria por intercambio o paginación.
· Tiene capacidad de interconexión de
procesos.
· Permite
comunicación entre procesos.
· Emplea un sistema jerárquico de
archivos, con facilidades de protección de archivos, cuentas y procesos.
· Tiene facilidad para redireccionamiento de Entradas/Salidas.
· Garantiza un alto grado de portabilidad.
· El sistema se basa en un Núcleo llamado Kernel, que reside permanentemente en
la memoria, y que atiende a todas las llamadas del sistema, administra el acceso a los archivos y el inicio o la suspensión de las tareas de los usuarios.
·
La comunicación con el sistema UNIX se da mediante un programa de control llamado SHELL. Este es un lenguaje de control, un intérprete, y un lenguaje de programación, cuyas características lo hacen sumamente flexible para las tareas de un centro de cómputo.
· Como lenguaje de
programación abarca los siguientes aspectos:
· Ofrece las
estructuras de control normales: secuenciación, iteración condicional, selección y otras.
· Paso de parámetros.
· Sustitución textual de
variables y Cadenas.
· Comunicación bidireccional entre órdenes de shell.
· El shell permite modificar en forma
dinámica las características con que se ejecutan los programas en UNIX:
· Las entradas y salidas pueden ser redireccionadas o redirigidas hacia archivos, procesos y dispositivos;
· Es posible interconectar procesos entre sí.
Unix es uno de los sistemas operativos más ampliamente usados en computadoras que varían desde las personales hasta las macro. Existen versiones para máquinas uniprocesador hasta multiprocesadores.
Debido a su
historia, que evoluciona en los Laboratorios Bell de AT&T con un simulador de un viaje espacial en el sistema solar, pasando por su expansión en universidades y la creación de las versiones más importantes que son la de la Universidad de Berkeley y el Sistema V de la misma AT&T.
Estandarización de UNIX
Debido a las múltiples versiones en el mercado de UNIX, se comenzaron a publicar estándares para que todas las s versiones fuesen 'compatibles'. La primera de ellas la lanzó AT&T llamada SVID (System V Interface Definition) que definiría cómo deberían ser las llamadas al sistema, el formato de los archivos y muchas cosas más, pero la otra versión importante, la de Bekeley (Berkeley Software Distribution o BSD) simplemente la ignoró.
Después la IEEE usó un algoritmo consistente en revisar las llamadas al sistema de ambas versiones (System V y BSD) y aquellas que eran iguales las definió como estándares surgiendo así la definición 'Portable Operating System for UNIX' o POSIX, que tuvo buen éxito y que varios fabricantes adoptaron rápidamente.
El estándar de POSIX se llama 1003.1 Posteriormente los institutos ANSI e ISO se interesaron en estandarizar el lenguaje 'C' y conjuntamente se publicaron definiciones estándares para otras áreas del sistema operativo como la interconectividad, el intérprete de comandos y otras. En la tabla 8.1 se muestran las definiciones de POSIX.
Estándar Descripción
1003.0 Introducción y repaso.
1003.1 Llamadas al sistema.
1003.2 Intérprete y comandos.
1003.3 Métodos de prueba.
1003.4 Extensiones para tiempo real.
1003.5 Lenguaje Ada.
1003.6 Extensiones para la seguridad
1003.7 Administración del Sistema.
1003.8 Acceso transparente a archivos.
1003.9 Lenguaje Fortran.
1003.10 Supercómputo.
Los Estándares de POSIX
Al momento del auge de los estándares de POSIX desgraciadamente se formó un grupo de fabricantes de computadoras (IBM, DEC y Hewlett-Packard) que lanzaron su propia versión de UNIX llamada OSF/1 (de
Open Software Fundation).
Lo bueno fue que su versión tenía como objetivo cumplir con todas los estándares del IEEE, además de un sistema de ventanas (el X11), una interfaz amigable para los usuar
ios (MOTIF) y las definiciones para cómputo distribuido (DCE) y administración distribuida (DME).
La idea de ofrecer una interfaz amigable en UNIX no fue original de OSF, ya en la versión 3.5 de SunOS de Sun Microsystems se ofrecía una interfaz amigable y un conjunto de librerías para crear aplicaciones con interfaz gráfica técnicamente eficiente y poderosa llamada SunWindows o SunVIEW.
Esta interfaz junto con sus librerías estaban evolucionando desde la versión para máquinas aisladas hacia una versión en red, donde las aplicaciones podían estarse ejecutando en un nodo de la red y los resultados gráficos verlos en otro nodo de la red, pero Sun tardó tanto en liberarlo que le dio tiempo al MIT de lanzar el X11 y ganarle en popularidad.
AT&T formó, junto con Sun Microsystems y otras compañías UNIX International y su versión de UNIX, provocando así que ahora se manejen esas dos corrientes principales en UNIX.
Filosofía de UNIX
Las ideas principales de UNIX fueron derivadas del proyecto MULTICS (Multiplexed Information and Computing Service) del MIT y de General Electric. Estas ideas son:
Todo se maneja como cadena de bytes: Los dispositivos periféricos, los archivos y los comandos pueden verse como secuencias de bytes o como entes que las producen. Por ejemplo, para usar una terminal en UNIX se hace a través de un archivo (generalmente en el directorio /dev y con nombre ttyX).
Manejo de tres descriptores estándares: Todo comando posee tres descriptores por omisión llamados 'stdin', 'stdout' y 'stderr', los cuales son los lugares de donde se leen los datos de trabajo, donde se envían los resultados y en donde se envían los errores, respectivamente. El 'stdin' es el teclado, el 'stdout' y el 'stderr' son la pantalla por omisión (default).
Capacidades de 'entubar' y 'redireccionar': El 'stdin', 'stdout' y el 'stderr' pueden usarse para cambiar el lugar de donde se leen los datos, donde se envían los resultados y donde se envían los errores, respectivamente. A nivel comandos, el símbolo de 'mayor que' (>) sirve para enviar los resultados de un comando a un archivo. Por ejemplo, en UNIX el comando 'ls' lista los archivos del directorio actual (es lo mismo que 'dir' en DOS). Si en vez de ver los nombres de archivos en la pantalla se quieren guardar en el archivo 'listado', el redireccionamiento es útil y el comando para hacer la tarea anterior es 'ls > listado'. Si lo que se desea es enviar a imprimir esos nombres, el 'entubamiento' es útil y el comando sería 'ls lpr', donde el símbolo "" ( pipe) es el entubamiento y 'lpr' es el comando para imprimir en UNIX BSD.
Crear sistemas grandes a partir de módulos: Cada instrucción en UNIX está diseñada para poderse usar con 'pipes' o 'redireccionamiento', de manera que se pueden crear sistemas complejos a través del uso de comandos simples y elegantes. Un ejemplo sencillo de esto es el siguiente. Suponga que se tienen cuatro comandos separados A,B,C y D cuyas funcionalidades son:
A: lee matrices checando tipos de datos y formato.
B: recibe matrices, las invierte y arroja el resultado en forma matricial.
C: recibe una matriz y le pone encabezados 'bonitos'
D: manda a la impresora una matriz cuidando el salto de página, etc.
Como se ve, cada módulo hace una actividad específica, si lo que se quiere es un pequeño sistema que lea un sistema de ecuaciones y como resultado se tenga un listado 'bonito', simplemente se usa el entubamiento para leer con el módulo A la matriz, que su resultado lo reciba el B para obtener la solución, luego esa solución la reciba el módulo C para que le ponga los encabezados 'bonitos' y finalmente eso lo tome el módulo D y lo imprima, el comando completo sería ' A B C D '.
Sistema de Archivos en UNIX
El sistema de archivos de UNIX, desde el punto de vista del usuario, tiene una organización jerárquica o de árbol invertido que parte de una raíz conocida como "/" (diagonal).
Es una diagonal al revés que la usada en DOS. Internamente se usa un sistema de direccionamiento de archivos de varios niveles, cuya estructura más primitiva se le llama 'information node' (i-node) cuya explicación va más allá de este trabajo.
El sistema de archivos de UNIX ofreceun poderoso conjunto de comandos y llamadas al sistema. En la tabla 8.2 se muestran los comandos más útiles para el manejo de archivos en UNIX vs. VMS.
Manejo de Archivos en UNIX y VMS
La protección de archivos en UNIX se maneja por medio de una cadena de permisos de nueve caracteres. Los nueve caracteres se dividen en tres grupos de tres caracteres cada uno.
El primer grupo (1) especifica los permisos del dueño del archivo. El segundo grupo especifica los permisos para aquellos usuarios que pertenecen al mismo grupo de trabajo que el dueño y finalmente el tercer grupo indica los permisos para el resto del mundo.
En cada grupo de tres caracteres pueden aparecer las letras RWX en ese orden indicando permiso de leer (READ), escribir (WRITE) y ejecutar (EXECUTE). Por ejemplo, la cadena completa RWXR-XR-- indica que el dueño tiene los tres permisos (READ,,WRITE,EXECUTE), los miembros de su grupo de trabajo tienen permisos de leer y ejecutar (READ,EXECUTE) y el resto del mundo sólo tienen permiso de leer (READ).
Las llamadas al sistema más útiles en UNIX son 'open', 'close' e 'ioctl'. Sirven para abrir, cerrar archivos; y establecer las características de trabajo.
Por ejemplo, ya que en UNIX las terminales se accesan a través de archivos especiales, el 'ioctl' (input output control) sirve para establecer la velocidad, paridad, etc; de la terminal.
El núcleo de UNIX
El núcleo de UNIX (kernel) se clasifica como de tipo monolítico, pero en él se pueden encontrar dos partes principales [Tan92] el núcleo dependiente de la máquina y el núcleo independiente.
El núcleo dependiente se encarga de las interrupciones, los manejadores de dispositivos de bajo nivel (lower half) y parte del manejo de la memoria.
El núcleo independiente es igual en todas las plataformas e incluye el manejo de llamadas del sistema, la planificación de procesos, el entubamiento, el manejo de centinelas, la paginación e intercambio, el manejo de discos y del sistema de archivos.
Los procesos en UNIX
El manejo de procesos en UNIX es por prioridad y round robin. En algunas versiones se maneja también un ajuste dinámico de la prioridad de acuerdo al tiempo que los procesos han esperado y al tiempo que ya han usado el CPU.
El sistema provee facilidades para crear 'pipes' entre procesos, contabilizar el uso de CPU por proceso y una pila común para todos los procesos cuando necesitan estarse ejecutando en modo privilegiado (cuando hicieron una llamada al sistema). UNIX permite que un proceso haga una copia de sí mismo por medio de la llamada 'fork', lo cual es muy útil cuando se realizan trabajos paralelos o concurrentes; también se proveen facilidades para el envío de mensajes entre procesos.
Recientemente Sun Microsystems, AT&T, IBM, Hewlett Packard y otros fabricantes de computadoras llegaron a un acuerdo para usar un paquete llamado ToolTalk para crear aplicaciones que usen un mismo método de intercambio de mensajes.
El manejo de memoria en UNIX
Los primeros sistema con UNIX nacieron en máquinas cuyo espacio de direcciones era muy pequeño (por ejemplo 64 kilobytes) y tenían un manejo de memoria real algo complejo. Actualmente todos los sistemas UNIX utilizan el manejo de memoria virtual siendo el esquema más usado la paginación por demanda y combinación de segmentos paginados, en ambos casos con páginas de tamaño fijo.
En todos los sistemas UNIX se usa una partición de disco duro para el área de intercambio. Esa área se reserva al tiempo de instalación del sistema operativo. Una regla muy difundida entre administradores de sistemas es asignar una partición de disco duro que sea al menos el doble de la cantidad de memoria real de la computadora.
Con esta regla se permite que se puedan intercambiar flexiblemente todos los procesos que estén en memoria RAM en un momento dado por otros que estén en el disco. Todos los procesos que forman parte del kernel no pueden ser intercambiados a disco. Algunos sistemas operativos (como SunOS) permiten incrementar el espacio de intercambio incluso mientras el sistema está en uso (en el caso de SunOS con el comando 'swapon').
También es muy importante que al momento de decidirse por un sistema operativo se pregunte por esa facilidad de incrementar el espacio de intercambio, así como la facilidad de añadir módulos de memoria RAM a la computadora sin necesidad de reconfigurar el núcleo.
El manejo de entrada/salida en UNIX
Derivado de la filosofía de manejar todo como flujo de bytes, los dispositivos son considerados como archivos que se accesan mediante descriptores de archivos cuyos nombres se encuentran generalmente en el directorio '/dev'. Cada proceso en UNIX mantiene una tabla de archivos abiertos (donde el archivo puede ser cualquier dispositivo de entrada/salida).
Esa tabla tiene entradas que corresponden a los descriptores, los cuales son números enteros [Deitel93] obtenidos por medio de la llamada a la llamada del sistema 'open'.
Llamadas al sistema de entrada/salida
En UNIX es posible ejecutar llamadas al sistema de entrada/salida de dos formas: sincronía y asíncrona. El modo síncrono es el modo normal de trabajo y consiste en hacer peticiones de lectura o escritura que hacen que el originador tenga que esperar a que el sistema le responda, es decir, que le de los datos deseados.
A veces se requiere que un mismo proceso sea capaz de supervisar el estado de varios dispositivos y tomar ciertas decisiones dependiendo de si existen datos o no. En este caso se requiere una forma de trabajo asíncrona. Para este tipo de situaciones existen las llamadas a las rutinas 'select' y 'poll' que permiten saber el estado de un conjunto de descriptores.
DIFERENCIAS ENTRE WINDOWS Y LINUX
Vamos a intentar ver la interoperatividad del mundo Windows y del mundo Unix, y ver que en una red corporativa, ambos pueden coexistir sin ningún problema. Veremos igualmente la conectividad y los sistemas de archivos.Empezaremos con uno de los aspectos más importantes en toda red: los permisos y seguridad. Comenzamos con ellos porque a los largo de los sucesivos puntos que iremos viendo, se utilizan los conceptos anteriores como ideas básicas. Posteriormente veremos la conectividad y los sistemas de archivos así como el nuevo paquete de Microsoft para Windows NT / 2000 para UNIX (SFU), y al final se examinarán las diferencias entre las interfaces de comandos de Windows 2000 y de Unix.PERMISOS Y CONCEPTOS DE SEGURIDADUna de las mayores diferencias entre los sistemas operativos, y el mundo Windows y Unix no es una excepción, es el modo en que se tratan los permisos y la seguridad. Estas diferencias, a veces, son sutiles y suelen llevar al usuario incauto a realizar suposiciones falsas.* Veamos como muestra Unix las características de un archivo:-rwxr-x-x 2 usuario1 dba 15234 Apr 10 18:43 pruebasAquí se indica prácticamente todo lo que hace falta saber sobre un archivo con respecto a la seguridad y a los permisos. Empecemos a analizar desde la parte izquierda y veamos qué significa y su comparación con Windows 2000.El primer guión (-) indica que ese archivo NO es un directorio (o carpeta). Si lo fuera, aparecería una "d" en su lugar. Unix trata los directorios meramente como otro archivo, aunque especial, y los permisos tienen un significado ligeramente diferente cuando hacen referencia a un directorio y a un archivo.Los tres caracteres siguientes, corresponden a los permisos del propietario, que puede ser distinto de su creador original, ya que Unix, permite a los usuarios "dar" archivos a otros usuarios. La "r" indica que el propietario tiene derecho a leer (read) el archivo, la "w" significa que puede escribir (write) en él, y la "x" permite al propietario del archivo ejecutarlo, si fuese un programa.* En Windows, el sistema operativo decide si un programa es ejecutable basándose en el nombre del archivo. Si el nombre del archivo tiene una extensión .COM, .EXE, .BAT o .CMD, puede ejecutarse siempre que el usuario tenga los permisos correspondientes. En Unix, no hay ninguna asociación entre la extensión y la ejecutabilidad del archivo, de hecho, la mayor parte de los archivos Unix no tienen ninguna extensión. Lo único que determina que el archivo es un ejecutable, es su permiso. Por tanto, aunque la convención en un sistema dado pueda ser denominar siempre a las secuencias de comandos de la interfaz de comandos (el equivalente Unix de los archivos por lotes o archivos .BAT) con un nombre que acabe en .sh o .ksh, esto no tiene significado real. El archivo debe recibir el permiso de ejecución para poder ejecutarlo.Los caracteres quinto, sexto y septimo corresponden a los permisos de los miembros del mismo grupo del propietario del archivo. La "r" significa que los miembros del grupo pueden leer, el "-" significa que no tienen èrmiso de escribir en él, borrarlo o modificarlo de cualquier manera, y la "x" les concede la capacidad de ejecutarlo.Finalmente los últimos tres caracteres del primer grupo corresponden a los permisos del resto del mundo (al resto de usuarios).** Tal y como vemos, en el mundo real, UNIX únicamente posee tres permisos básicos: lectura, escritura y ejecución.El siguiente caracter, el número "2". indica que hay dos vínculos duros contra el archivo. Un "vínculo duro" concede otro nombre al mismo archivo. Sigue habiendo un único archivo real guardado en el disco duro, pero hay dos entradas de directorio que apuntan a ese archivo. No hay límites prácticos al número de vínculos duros que puede haber con un mismo archivo, pero no todos los vínculos con el archivo deben estar en el mismo sistema de archivos.Los dos grupos siguientes del nombre, son el "propietario": usuario1, y el grupo del archivo "dba". Aunque suelen ser los nombres del usuario y grupo, también podrían ser un número si el usuario y grupo del archivo no tuvieran una cuenta en el sistema.A continuación aparece el tamaño del archivo, la fecha y hora en que se creó el archivo o se modificó y el nombre del archivo "pruebas": realmente la entrada del directorio del archivo que se corresponde con este vínculo duro con el archivo. Observemos que ningún vínculo tiene preferencia sobre los demás. No hay nada significativo en cuanto al nombre que aparezca primero: todos se tratan por igual. Y el borrado de un vínculo no borra el archivo, sólo esa referencia al mismo.Vínculos simbólicosUnix soporta tanto vínculos duros como vínculos simbólicos. Los vínculos simbólicos son similares a los accesos directos de Windows, pero con algunas diferencias. La diferencia más importante, es que en Unix, cuando se tiene acceso al vínculo simbólico, en realidad se tiene acceso al archivo al que apunta, no al propio vínculo. Por ejemplo, si se edita un vínculo simbólico con un archivo de texto, en realidad se está editando el archivo de texto original. Con los accesos directos de Windows, sólo se puede utilizar un vínculo para iniciar un archivo ejecutable o para abrir una carpeta.Los vínculos simbólicos se diferencian de los vínculos duros en que el archivo real tiene preferencia sobre sus vínculos simbólicos. Veamos este otro:lrwxrwxwx 1 usuario1 dba 15234 Apr 10 18:43 pruebas -> /u/pru/pruebasComo puede verse, ahora no sólo comienza con la letra "l" sino que además, muestra realmente el lugar a donde apunta el vínculo.En este caso, el nombre del archivo y el que apunta el vínculo son los mismos. Aunque esto no es imprescindible, se trata del uso más frecuente de los vínculos simbólicos: hacer que aparezca que un archivo está en un lugar, cuando realmente se halla en otro.Otra característica de los vínculos simbólicos que los distingue de los vínculos duros es que puede apuntar a otros sistemas de archivos e incluso máquinas. Se puede tener un vínculo simbólico que apunte a un archivo que resida en otra máquina completamente diferente.NOTA: Si se copia un archivo sobre un vínculo simbólico, se romperá el vínculo. El nuevo archivo sustituirá al vínculo con el archivo. No obstante, el archivo original seguirá existiendo, lo que, como mínimo, hace que la duplicación de archivos resulte confusa.Niveles de privilegiosTradicionalmente Unix divide al mundo únicamente en tres tipos de usuarios: el propietario del archivo, los miembros del grupo y el resto del mundo. Estos tres niveles de privilegios se conocen como: propietario, grupo y otros. Hasta ahora todo va bien. Se parece mucho a Windows 2000 ¿verdad?. Bueno: no tanto. La mayor diferencia estriba en el segundo nivel de privilegios: el grupo.En los sistemas Unix con seguridad tradicional, cada usuario sólo está activo simultaneamente en un grupo. Cuando ese usuario crea un archivo, este se crea con permisos para grupo basados estrictamente en el grupo actual del creador del archivo. Esta situación puede suponer complicaciones interesantes y sutiles al compararla con la metodología de Windows 2000. Si el inicio de sesión principal de un usuario es con uno de los grupos estándar, las cosas suelen transcurrir como se espera. Sin embargo, cuando un usuario pertenece a un grupo especializado con pertenencia restringida y crea archivos mientras ese grupo es el grupo activo, la capacidad de los usuarios ajenos al grupo para tener acceso al archivo puede quedar restringida.Los usuarios que no son miembros activos del grupo que posee el archivo y que no son su propietario se hallan en el otro nivel de privilegios. Esta disposición es esencialmente igual que el grupo de Windows 2000 denominado "Todos". Un usuario en la otra categoria no tiene más permiso para el acceso al archivo que el que tienen el resto de los usuarios.* En los estudios sobre seguridad de Unix, hay que recordar un principio supremo: el usuario "root" (a veces denominado superusuario) tiene acceso a todo. En el mundo de Windows 2000 se puede definir fácilmente un archivo o un directorio de modo que ni siquiera los usuarios con privilegios administrativos tengan acceso a él sin cambiar su propiedad, pero en el mundo Unix, esta restricción no existe. No sólo eso, sino que el superusuario puede incluso cambiar su identidad para tener la misma que un usuario dado.En cualquier caso, el uso de palabras como seguridad y privacidad en este ámbito, carece de sentido.
CONECTIVIDAD BÁSICAAhora que hemos introducido las diferencias entre los modelos de seguridad de Windows 2000 y de Unix, vamos a ver la manera en que son compatibles. Por un motivo, sin complementos adicionales, Windows 2000 coexiste razonablemente bien con los servidores Unix. El protocolo de red predeterminado para ambos sistemas operativos es ahora el mismo -TCP/IP-. Pueden compartir facilmente DNS, DHCP y otros servicios. Y la mera conectividad entre Windows 2000 y Unix puede tratarse mediante los clientes FTP y Telnet en las máquinas de Windows 2000.
Protocolo para transferencias de archivosTodas las versiones de Windows 2000 incluyen un cliente FTP sencillo de línea de comandos y pueden tratar FTP desde el explorador de Windows hasta cierto límite. El cliente en modo texto, no proporciona ningún extra, pero resulta bastante cómodo para los usuarios de Unix y funciona sin complicaciones. Quienes deseen un cliente FTP más gráfico y amistoso tienen una amplia variedad en la que elegir, incluidos algunos que son puro software gratuitos o software de libre distribución. El preferido por mi parte, es el WS_FTP Pro de Ipswitch (
www.ipswitch.com).Windows 2000 también incluye un servidor FTP completo como parte de la familia del IIS. Con un cliente y un servidor FTP disponibles de origen resulta sencillo copiar archivos entre máquinas Unix y Windows 2000 en una red.
TelnetTodas las versiones de Windows 2000 vienen con el nuevo cliente Telnet de modo texto que se estrenó en el SFU. El cliente de Telnet semigráfico, totalmente horrible, que se había proporcionado desde WIndows 3.x desaparece por fin. El nuevo cliente es más rapido, tiene mejores emulaciones de terminales y se puede considerar bastante bueno para la mayor parte de sus fines., Soporta ANSI, incluído color, VT52, VT100 y VTNT.W2000 tiene incorporado un demonio de Telnet, o servidor. Este servidor es el mismo que se proporciona en el SFU, pero está limitado a dos conexiones simultáneamente.Sistemas de archivosEl modo de compartir archivos de red de Windows 2000 se basa en el mecanismo tradicional de Microsoft de los bloques de mensajes de servidor (Server Messages Blocks, SMB). Los sistemas UNIX por su parte, utilizan el sistema de archivos de red (Network File System, NFS) -desarrollado originalmente por SUN Microsystems- para compartir los sistemas de archivos en la red.Hasta la publicación de SFU sólo se disponía de soluciones NFS de otros fabricantes para los sistemas Windows que necesitaban compartir recursos de archivos con los sistemas Unix. La mayor parte de estas soluciones de otros fabricantes resultaban caras y problemáticas. El principal problema era su incapacidad para mantener al nivel de los Service Packs de Windows NT, que casi siempre parecían descomponer estas soluciones NFS. Además estas soluciones tenían frecuentemente problemas significativos de rendimiento.No obstante, varias soluciones Unix potentes basadas en SMB abordan el problema del modo de compartir recursos de archivos entre Windows NT y Unix. Estas soluciones SMB varían en coste desde la gratuidad hasta las más caras y soportan las redes nativas de Windows al nivel del Grupo de Trabajo o Dominio. Con la publicación de Windows 2000, sólo el tiempo podrá decir el modo en que estas soluciones logran mantener al nivel de los cambios en el modelo de seguridad de Windows 2000 respecto del modelo de Windows NT.Sistema de archivos de RedCuando se creó, NFS se diseñó para ejecutarse como protocolo de difusión mediante el protocolo de datagramas de usuario (User Datagram Protocol, UDP). Este protocolo creaba problemas importantes de rendimiento y tráfico de red para quienes pretendían implementar grandes cantidades de red NFS y hacía dificil compartir sistemas de archivos más allá de los limites de los enrutadores (routers). Finalmente, el estándar del NFS se modificó para que soportara TCP para la red NFS y muchos clientes y servidores actuales soportan este mecanismo. No obstante, muchas implementaciones antiguas de NFS todavía en funcionamiento no soportan TCP, por lo que el mecanismo predeterminado para SFU y otras implementaciones de NFS en Windows 2000 es UDP.En conjunto, el rendimiento de las transferencias de archivos NFS hacia y desde el servidor de Windows 2000 es sustancialmente más baja que la mayor parte de las implementaciones SMB. Para entornos en los que se debe copiar habitualmente archivos grandes entre sistemas Windows 2000 y Unix, es probable que NFS no sea una solución satisfactoria. No obstante, si las necesidades son principalmente de acceso transparente a los recursos Unix residentes en servidores Unix, NFS es la mejor opción. Proporciona un entorno completamente integrado para los usuarios de Windows 2000. (Si se instala SFU como se indica más adelante, hay que tener en cuenta estas recomendaciones).Bloque de mensajes del servidor -SMB-El principal problema con el que tienen que lidiar los usuarios de SMB sobre Unix es el modelo cambiante de seguridad de WIndows 2000. Se utilizan dos mecanismos para tratar la seguridad con las soluciones SMB sobre Unix: la seguridad a nivel de grupo de trabajo y la seguridad a nivel de dominio de Windows NT4.La seguridad de grupo de trabajo sufre los mismos problemas que los grupos de trabajo en el entorno empresarial: resulta más dificil gestionar a medida que aumenta el numero de usuarios y de máquinas, y tiene opciones limitadas para una verdadera gestión de la seguridad. No obstante, la seguridad de grupo de trabajo tiene realmente sentido en entornos más reducidos, donde resulta fácil de comprender y sencilla de configurar. Además hay una buen ventaja de costes: en casi todas las plataformas de Unix se dispone de un servidor SMB de software gratuito fácil de encontrar y bien implementado, denominado Samba. Tambien se dispone de otros servidores SMB para grupos de trabajo que se pueden ejecutar en gran variedad de plataformas. Tienden a ser más parecidos a Windows y más sencillos de configurar y de administrar que Samba, que muestra su procedencia de código abierto.También se pueden obtener servidores SMB de dominios Windows NT 4 de varios fabricantes de Unix. Todos ellos se basan en el puerto inicial de AT&T para Unix de la tecnología de servidores avanzados de Microsoft. Cada uno de ellos está limitado a ejecutarse en la plataforma para la que fue diseñado, y todos tienen pequeñas diferencias debido a que el puerto de AT&T necesitaba configurarse en la mayor parte de los casos. Todos los servidores SMB pueden ser tanto controladores de Dominio Principal como controladores de Dominio de reserva en los dominios de Windows NT, pero todos ellos tienen problemas al trabajar con el nuevo modelo de seguridad de Windows 2000. Estos servidores, basados en los modelos de seguridad de Windows NT 4, por desgracia, obligan a permanecer en el modo mixto.Los servidores de dominio SMB presentan una ventaja importante respecto de los servidores SMB de grupos de trabajo: para los usuarios y para los administradores de la red de Windows, todos tienen el mismo aspecto y comportamiento que los servidores auténticos de Windows NT 4. Para gestionarlos se utilizan las herramientas de administración usuales de Windows NT Server, y los servidores y las unidades compartidas tienen el mismo aspecto para los usuarios que los servidores de Windows NT, lo que elimina problemas de formación y de interfaces de usuario. Además todos los servidores SMB tienen una ventaja respecto de las soluciones NFS: suelen ser significativamente más rapidos en las transferencias de archivos, especialmenta al tratar archivos grandes.
Unix y Windows parten de paradigmas completamente diferentes para la carga de código en tiempo de ejecución. Antes de intentar construir un módulo con carga dinámica, se debe comprender cómo funciona el sistema final del usuario.
En Unix, un fichero objeto compartido (shared object, .so) contiene código que será utilizado por el programa junto con los nombres de las funciones y datos que espera encontrar en el programa. Cuando el fichero se une al programa, se cambian todas las referencias a dichas funciones y datos para que apunten a sus direcciones de memoria reales en el programa. A grandes rasgos, se realiza una operación de enlace.
En Windows, un fichero de biblioteca de enlace dinámico, (dynamic-link library, .dll) no tiene referencias pendientes. En lugar de ello, todo acceso a funciones y datos pasa por una tabla de consulta. Por ello, no hay que arreglar el código de la DLL para que haga referencia a la memoria del programa. El programa ya utiliza la tabla de búsquedas, lo que cambia en tiempo de ejecución es la tabla de búsquedas para apuntar a las funciones y datos finales.
En Unix, sólo hay un tipo de fichero de biblioteca (.a) que contiene código de varios ficheros objeto (.o). En el paso de enlace para crear un fichero objeto compartido (.so), el enlazador puede encontrarse que desconoce dónde se define un identificador. El enlazador lo buscará en los ficheros objeto y en las bibliotecas. Si lo encuentra, incluirá todo el código del fichero objeto.
En Windows, existen dos tipos de biblioteca, una biblioteca estática y una biblioteca de importación (ambas llamadas .lib). Una biblioteca estática es como un fichero .a de Unix: contiene código que se incluirá si es necesario. Una biblioteca de importación se usas sólo para asegurar al enlazador que un identificador concreto es legal y estará presente en el programa cuando se cargue la DLL. Por ello, el enlazador utiliza la información de la biblioteca de importación para construir la tabla de consulta para usar los identificadores no incluidos en la DLL. Cuando se enlaza una aplicación o DLL, puede generarse una biblioteca de importación, que tendrá que usarse para futuras DLLs que dependan de los símbolos de la aplicación o DLL.
Supóngase que se están construyendo dos módulos de carga dinámica, B y C, que han de compartir otro bloque de código A. En Unix, no se pasaría A.a al enlazador para B.so y C.so; eso causaría que se incluyera dos veces y tanto B como C tendrían su propio ejemplar. En Windows, al construir A.dll se construiría A.lib. Sí se pasaría A.lib al enlazador tanto en B como en C. A.lib no contiene código, sólo información que se usará en tiempo de ejecución para acceder al código de A.
En Windows, usar una biblioteca de importación es análogo a usar "import spam"; proporciona acceso a los nombres de spam, pero no genera una copia aparte. En Unix, enlazar con una biblioteca es más como "from spam import *"; sí genera una copia aparte.

CONCLUSIONES

¿Cuáles son las conclusiones?
UNIX
Unix es un sistema operativo apropiado para muchas aplicaciones, ya que ofrece muchas facilidades para proceso de textos (en un marco atractivo para programadores) y facilidades de comunicación entre usuarios y máquinas.
Unix es popular debido a que:
Es portátil, y por lo tanto, todo el software desarrollado en él es portátil también.
Se puede cambiar de máquina sin cambiar de sistema operativo ni de aplicaciones.
Es fácil de adaptar según los requerimientos del usuario.
Es muy fiable.
Es fácil de usar.
Tiene una amplia gama de utilidades.
Desde el punto de vista técnico, UNIX se refiere a una familia de sistemas operativos que comparten unos criterios de diseño e interoperabilidad en común. Esta familia incluye más de 100 sistemas operativos desarrollados a lo largo de 20 años. No obstante, es importante señalar que esta definición no implica necesariamente que dichos sistemas operativos compartan código o cualquier propiedad intelectual.
WINDOWS
Windows es un sistema que aprovecha la
potencia de los procesadores, ha sido diseñado para adaptarse a las nuevas tecnologías, ofrece compatibilidad con varias plataformas (OS/2, Unix y versiones anteriores a el mismo), soporta el multiprocesamiento simétrico, buen rendimiento y conectividad, seguridad y al no estar encasillado en ningún modelo estandar de Sistema Operativo tiene la capacidad de combinar las ventajas del modelo cliente/servidor, puede correr además sobre múltiples arquitecturas con un mínimo de cambios, permite que varios procesos sean ejecutados simultáneamente en varios procesadores y estos no se apropien de recursos del sistema por tiempo indefinido, sino por tratamiento del sistema.

CONCLUSIÓN GENERAL:
Una conclusión según el
diccionario es: "Una consecuencia sacada de un razonamiento" o "Resolución que se ha tomado sobre una materia después de haberla analizado", teniendo en consideración estos significados, también se puede decir que una conclusión es la opinión de una investigación o análisis realizado con anterioridad.
Esta investigación o análisis puede tener errores que se trasladan a la conclusión por lo tanto una conclusión no tiene la verdad absoluta.
Para enunciar la conclusión general de este trabajo "Análisis de desempeño y rendimiento de Windows y Linux", se tendrá en cuenta la
teoría de sistema con respecto a la evaluación, que se dividen en seis categorías.
Ellas son:
Efectividad en el desempeño;
Eficiencia en el desempeño;
Facilidad de uso;
Flexibilidad;
Facilidad de la documentación;
Soporte del fabricante.

Efectividad en el desempeño: La efectividad se refiere al cumplimiento de los objetivos para los cuales fue creado el sistema sin importar la forma o método utilizado. En este punto tanto Windows como Linux cumplen los objetivos de sus desarrolladores, ellos aseguran que sus sistemas son:
Capaces de manejar múltiples usuarios;
Capaces de ejecutar múltiples aplicaciones;
Ampliamente compatible con el manejo de redes;
Capaces de manejar archivos multimedia;
Capaces de mantener una interfaz de usuario en forma grafica;
Capaces de permitir el desarrollo de aplicaciones.
Eficiencia en el desempeño: La eficiencia habla de la mejor forma o método para cumplir con el
objetivo fijado.
Hasta hace algunos años, Linux mantenía una seria diferencia en este aspecto, el lanzamiento del Windows 2000 y mas con el Windows XP acorto esta diferencia pero igualmente por sus orígenes mismos, Linux, sobreasa en eficiencia a Windows, algunas de las características que marcan la diferencia son:
Mayores capacidades a través de la utilización de Memoria Virtual Swap;
Menos posibilidades de bloqueos de sistema por la ejecución de sentencias de comprobación de errores entre procesos de distintas aplicaciones;
Optimización de la memoria RAM, mediante el uso de Librerías con enlace dinámico;
Sistema de archivos con baja propensión en lo que se refiere a la fragmentación de archivos en el disco rígido.
Facilidad de uso: Un sistema será fácil de utilizar cuando el desarrollo de las actividades normales, requiere de la mínima cantidad de conocimientos previos.
Bajo condiciones de uso no muy avanzadas, los dos sistemas tienen un nivel de dificultad equiparable.
En un pasado no muy lejano Linux tenia un nivel de dificultad un tanto elevado y Windows un nivel bajo, esa dificultad era proporcionalmente directa a sus capacidades.
Con el paso del tiempo Linux Bajo su nivel y Windows lo aumento.
Algunas diferencias son, en Linux, se conoce a los dispositivos de acuerdo con la
tecnología relacionada o nombres técnicos, un ejemplo claro es el de los discos rígidos, los dispositivos de norma IDE se los conoce como, "hda", y a los de norma SCSI se los llama "sda", en Windows se les asignan nombres específicos por lo que adopta una nomenclatura especial para cada dispositivo del sistema.
El Windows XP elimina prácticamente la necesidad de usar comandos específicos, pero presenta grandes capacidades de configuración. En Linux si lo que se quiere es mayor capacidad se aconseja usar el entorno de Shell. Allí es necesario un conocimiento elevado de los comandos que se utilizaran.
En general puede decirse que, si, se hará un uso normal no hace falta conocimientos avanzados pero cundo se quiere mas capacidad Linux requiere de mayores conocimientos.
Flexibilidad: La flexibilidad representa la facilidad del sistema de poder variar sobre una temática sin necesidad de grandes modificaciones. La flexibilidad esta estrechamente ligada a la división de partes componentes en un sistema y estos puedan ser adaptados de acuerdo a las necesidades de los usuarios.
La flexibilidad es la cualidad que permitió a Linux lograr el nivel de desarrollo actual, las posibilidades que tiene de acuerdo con las opciones son innumerables, ya sea, en el entorno grafico o en la consola, presenta muchas posibilidades de cambiar, actualizar o eliminar componentes sin afectar el correcto funcionamiento de las demás partes del sistema, también permite adaptar el sistema por completo al Hardware y a las necesidades del usuario.
Windows es, en cambio, un sistema un tanto rígido cuando se habla de estructura, no permite una completa adaptación a tareas especificas, ya que si esa es la intención se tendrá que optar por dejar instalado partes no se usaran y que utilizaran recursos inútilmente.
Por estas razones Linux gana ampliamente en flexibilidad lo que le permite con pocas modificaciones variar su enfoque en las actividades y perdurar en el tiempo, sin perder utilidad y capacidad.
Facilidad de la documentación: Todos los sistemas operativos tienen gran cantidad de funciones de cara al usuario, para que este haga uso de esas funciones y saque el mayor provecho del sistema debe existir información que indique la forma de ejecutar todas las funciones. Es importante que la información que incluyen los sistemas sobre si mismos sea sencilla y clara al utilizar, con un leguaje no técnico para que pueda ser entendido por personas sin mucha preparación.
En este aspecto la empresa Microsoft pone mucho énfasis, no solo en Windows sino en todos sus productos, en cualquiera de ellos se pueden ver los complejos métodos y programas que brindan información precisa al usuario.
Linux también incluye gran cantidad de información y varias formas de acceder a ella pero aun existe una marcada diferencia con los métodos utilizados en Windows. Talvez incluyan la misma cantidad de información pero en Windows la facilidad es muy notable.
Soporte de fabricante: Cuando se trata de un producto comercial lo importante no solo es ofrecer una buena calidad de
venta, otro factor importante y mas en la industria de Software es ofrecer buenos servicios de post-venta a como se lo llama comúnmente "Soporte del fabricante".
Alguno de los servicios de post-venta referidos a los sistemas operativos son:
Soluciones a errores conocidos como parches;
Actualización de la lista de controladores de Hardware nuevos;
Actualización de programas que vienen incluidos con el sistema;
Informes periódicos de productos nuevos.
Estos y otros servicios son ofrecidos en muchos casos en forma transparente al usuario a través de Internet.
Microsoft a mediados de este año 2004, dejo de dar soporte a su sistema operativo Windows edición 98 pero continua dando a las demás ediciones posteriores.
Por parte de Linux se debe hablar de muchas empresas e
instituciones ya que cada una brinda servicios diferentes. La empresa Mandrake Software por ejemplo solo brinda soporte a usuarios registrados, también existen distribuciones que no tienen soporte alguno.
Como una opinión final, se puede decir que Windows y Linux van por distintos caminos, hacia el mismo lugar, a medida que pasa el tiempo los dos sistemas se hacen mas potentes y requieren mas recursos de Hardware. Características de uno aparecen reflejados en el otro y viceversa, esto hace que cada vez se parezcan mas. Los dos pretenden ser usados en cualquier ámbito y por cualquier persona sin perder capacidad y facilidad.
WINDOWS
La tecnología confiable, aplicada a las necesidades estratégicas de la organización, mejorará en gran medida su rendimiento a través de cualquier tipo de medición. El valor de negocios de implementar Windows XP Professional es el punto en cuestión que se analiza.
Actualizar las PCs de escritorios y notebooks de una organización al sistema operativo Windows XP Professional incrementará la productividad y generará oportunidades de ingresos adicionales, reduciendo también los costos operativos. Como lo muestra este informe, el retorno sobre la informática y el retorno sobre la gente es substancial.
Los retornos son especialmente significativos para las organizaciones con un modelo de negocios que necesita una fuerza laboral móvil que utiliza computadoras notebook vinculadas de manera inalámbrica a la red. Las organizaciones con un enfoque emprendedor para fomentar el cómputo móvil obtendrán ganancias sustanciales al actualizar a Windows XP Professional
Debido a los datos y a la respuesta de los adaptadores tempranos, los ejecutivos en las organizaciones que cambian a una fuerza laboral más móvil, o que piensan en ese cambio, deberían considerar inmediatamente una actualización a Windows XP Professional. Las ganancias financieras de una conectividad de notebook virtualmente inalámbrica a las aplicaciones empresariales sobrepasan ampliamente los costos de implementación.
Incluso las organizaciones que utilizan Windows 2000 Professional en sus notebooks deben considerar una actualización inmediata a Windows XP Professional si ya tienen, o planean adoptar, una infraestructura inalámbrica. La función Cero configuración inalámbrica de Windows XP Professional resulta en retornos muy atractivos.
Para las organizaciones que utilizan una mezcla de sistemas operativos Windows 9x, Windows NT Workstation y Windows 2000 Professional (donde los problemas de compatibilidad con la aplicación evitan la creación de un escritorio estándar) una actualización a Windows XP Professional y a su modo de Compatibilidad con las aplicaciones facilitará la estandarización y pagará significativos dividendos en menores costos de administración y de soporte.
Futuros informes que presentarán el valor de negocios de las tecnologías de Microsoft, incluyendo un escritorio compuesto de Windows XP Professional y Office XP, se centrarán en los retornos sobre la gente, enfoque en el cliente y proceso de negocios mejorado.
UNIX
Si después de aproximadamente 500 hojas de trabajo, con más de 300 referencias bibliográficas citadas, aún hay alguien que considere a Unix un sistema inseguro existen dos opciones: o se equivoca él o me equivoco yo. Seguramente que me equivoque yo no sería difícil; lo realmente extraño es que se hayan equivocado todos los expertos que durante años - algunos desde antes de que muchos de nosotros hubiéramos nacido - han venido aportando su tiempo, su talento y sus conocimientos al mundo de la seguridad informática (por supuesto, hablo de expertos de verdad, no de hackers, crackers, o como ahora se quiera llamar a los piratas), una materia que día a día va demostrando su importancia en todo tipo de organizaciones. Como es bastante difícil que toda esta gente se haya equivocado, sería conveniente que el que aún a estas alturas dude de las posibilidades de Unix (en cuanto a seguridad se refiere, aunque podríamos hablar de posibilidades en general) con respecto a otros sistemas se replantee sus ideas. En este proyecto se han revisado las bases más importantes de la seguridad en Unix y redes; evidentemente, muchas cosas se han quedado en el tintero, y otras muchas no han sido comentadas con la profundidad que sin duda merecen. Se han intentado ofrecer ejemplos aplicados a entornos que no precisan de una alta seguridad, pero sí de una seguridad mínima, como es el caso de las redes de I+D, las de medianas empresas, y las de ISPs. El trabajo se ha dividido en seis grandes partes; en la primera (seguridad del entorno de operaciones) se habla de las implicaciones de seguridad (e inseguridad) relacionadas con la simple existencia de un sistema, Unix o no, en un entorno de trabajo: su ubicación física, las personas que le rodean...Una segunda parte es la relacionada con la seguridad de la máquina en sí, sin conexión a red, y todos los problemas que nos podemos encontrar en esta situación, y la tercera habla de peculiaridades también a nivel de host de diferentes clones de Unix; como los sistemas aislados son cada día más extraños, la cuarta parte (seguridad de la subred) introduce algunos de los peligros (y sus soluciones) que no existían en máquinas sin conectar a una red. A continuación, una quinta parte habla de otros aspectos relacionados con la seguridad de un equipo, algunos de los cuales son las bases para comprender muchas de las cosas que se explican en el trabajo (por ejemplo, la criptología). Para terminar, en la sexta parte del proyecto, ya como apéndices, se presenta un escueto resumen de normas de seguridad a modo de `receta de cocina' para administradores, algunas normativas vigentes en España relacionadas con los sistemas informáticos y su (in)seguridad, una referencia de recursos relacionados con esta materia en Internet, y finalmente un pequeño glosario de términos anglosajones utilizados con frecuencia en el mundo de la seguridad en Unix. A pesar del elevado nivel de seguridad que Unix puede ofrecer (al menos espero que haya quedado patente que Unix es el sistema operativo de propósito general más seguro hoy en día) cualquiera que se diera una vuelta, física o virtual, por la mayoría de entornos `normales' en España podría comprobar que su seguridad es en la mayor parte de los casos pobre, cuando no inexistente. Si Unix es teóricamente tan seguro, >por qué en la práctica cualquier aprendiz de pirata es capaz de `colarse' en servidores de todo tipo?, >dónde está el problema? El problema no radica en Unix: radica en las personas que están detrás del sistema operativo, generalmente administradores y usuarios de cualquier categoría. Unix ofrece los mecanismos suficientes como para conseguir un nivel de seguridad más que aceptable, pero somos nosotros los que en muchos casos no sabemos aprovecharlos. Para solucionar el problema, como ya hemos comentado a lo largo del proyecto, existen dos soluciones que todos deberíamos intentar aplicar: en primer lugar la concienciación de los problemas que nos pueden acarrear los fallos de seguridad (a muchos aún les parece que el tema no va con ellos, que los piratas informáticos sólo existen en el cine, y que en su máquina nada malo puede ocurrir). Tras la concienciación, es necesaria una formación adecuada a cada tipo de persona (evidentemente no podemos exigir los mismos conocimientos a un administrador responsable de varias máquinas que a un usuario que sólo conecta al sistema para lanzar simulaciones); no es necesario convertirse en un experto, simplemente hay que leer un poco y conocer unas normas básicas (por ejemplo, las presentadas en el apéndice A...si alguien argumenta que no tiene tiempo para leer quince hojas, seguramente está mintiendo). Con estos dos pasos seguramente no pararemos a todos los piratas que nos intenten atacar, pero sí a la gran mayoría de ellos, que es lo que realmente interesa en el mundo de la seguridad. Aparte del lógico incremento en el nivel de seguridad que se conseguiría mediante una mínima concienciación y formación de los usuarios de Unix, existe un escollo que estas dos medidas difícilmente nos van a permitir superar: la simpatía que socialmente despiertan muchos piratas informáticos; por desgracia, mucha gente aún considera a estos personajes una especie de héroes. Si nadie aplaude al que roba un bolso en la calle, >por qué aún existen defensores de los que roban contraseñas de un sistema? Mientras sigamos sin darnos cuenta de lo que realmente son los piratas (simplemente delincuentes) será difícil que la seguridad informática sea tomada en serio. No me gustaría acabar este trabajo sin una pequeña reflexión sobre el panorama de la seguridad en Unix y redes que existe actualmente en España; sólo cabe una definición: lamentable. Lo único que por suerte se toma en serio es la criptografía, que cuenta con grupos de estudio y docencia en algunas universidades del país. Del resto, casi es mejor no hablar: no existe ningún grupo importante de investigación en ninguna universidad española, el número de artículos publicados en revistas serias se reduce a cero, y la docencia universitaria a unas pocas asignaturas genéricas - y que ni siquiera son obligatorias -; por supuesto, no existe ningún programa de doctorado relacionado con la materia (excepto, una vez más, y afortunadamente, con la criptografía). De esta forma, si la mayor parte de los informáticos salen de las facultades sin conocer conceptos tan básicos como sniffer o caballo de Troya (ya no hablamos de cosas como esteganografía o seguridad multinivel), no es de extrañar que la seguridad se encuentre actualmente (en la mayor parte de los casos) en manos de aficionados a la informática con ciertos conocimientos prácticos pero con una importante falta de bases teóricas sobre la materia. Si lo que queremos son sistemas inseguros y reportajes sensacionalistas sobre quinceañeros que violan la seguridad de La Moncloa, lo estamos consiguiendo...pero quizás deberíamos plantearnos qué ha de pasar para que esto cambie.

BIBLIOGRAFIA

· www.monografias. com/trabajos/manualdos/manualdos.shtml
· www.matuk.com/
teclado/1993/enero/ene_111993.html
· www.todoexpertos.com/
herramientas/leernsgpublico.asp?idproceso=409936
· www.matuk.com/
teclado/1994/enero/ene_101994.html
· www.atlas-iap.es/"pepcardo/index.shtml
· www.experts.exchange.com/Operating-Systems
· URL:
http://www.monografias.com/trabajos7/arso/arso2.shtml
· URL:
http://www.windowstimag.com/
· URL:
http://usuarios.lycos.es/betzweb/
· Unix (2005) [Documento en Línea]. Disponible: http://es.wikipedia.org/wiki/Unix [Consulta: 2006, Junio 15]
· Introducción a Unix [Documento en Linea]. Disponible: http://www.unav.es/cti/manuales/Intro_UNIX/indice.html. [Consulta: 2006, Junio 15]
· Sistema Operativo Unix [Documento en Línea]. Disponible: http://www.monografias.com/trabajos32/gestion-sistemas/gestion-sistemas.shtml [Consulta: 2006, Junio 15.