Sistemas Operativos Arquitectura de Sistemas: Unix Linux Windows Novel
Naylu Lorena Rinc贸n C.I V-20534435 Aurelys Avila C.I V-20113439
Arquitectura de Sistemas Arquitectura 1 UNIX Arquitectura 2 GNU/Linux Arquitectura 3 de Novell Arquitectura 4 de Windows
En
el nivel más interno o primer nivel, se encuentra el hardware de la computadora cuyos recursos se desean gestionar. En el segundo nivel, directamente en contacto con el hardware, se encuentra elnúcleo del sistema, también llamado únicamente núcleo (kernel). Este núcleo está escrito en lenguaje C en su mayor parte, aunque coexistiendo con lenguaje ensamblador. El núcleo suministra los servicios que utilizan todos los programas de aplicación del sistema UNIX. En el tercer nivel, en contacto con el núcleo, se encuentran los programas estándar de cualquier sistema UNIX (intérpretes de comandos, editores, etc.) y programas ejecutables generados por el usuario. Un programa ubicado en este nivel puede interactuar con el núcleo mediante el uso de las llamadas al sistema, las cuales dan instrucciones al núcleo para que realice (en el nombre del programa que las invoca) diferentes operaciones con el hardware. Además, las llamadas al sistema permiten un intercambio de datos entre el núcleo y el programa.
Arquitectura UNIX
En definitiva, las llamadas al sistema son el mecanismo que los programas utilizan para solicitar el núcleo el uso de los recursos del computador (hardware). Habitualmente las llamadas al sistema se identifican como un conjunto perfectamente definido de funciones. En el cuarto nivel, se sitúan las aplicaciones que se sirven de otros programas ya creados ubicados en el nivel inferior para llevar a cabo su función. Estas aplicaciones no se comunican directamente con el núcleo. Por ejemplo una aplicación situada en este cuarto nivel será el compilador de C cc que invoca de forma secuencial a los programas cpp, comp, as y ld. situados en el tercer nivel. La jerarquía de programas no tiene porqué verse limitada a cuatro niveles. El usuario puede crear tantos niveles como necesite. Además, puede haber también programas que se apoyen en diferentes niveles y que se comuniquen con el núcleo por un lado, y con otros programas ya existentes, por otro. La existencia del núcleo posibilita que los programas de los niveles superiores puedan ser escritos sin realizar ninguna suposición sobre el hardware de la computadora. A su vez esto facilita su portabilidad entre diferentes tipos de computadoras (siempre que tengan instalado UNIX).
Arquitectura GNU/Linux La arquitectura interna de Linux es compleja y se puede resumir las partes importantes de forma breve las cuales son: procesos, usuarios, ficheros y el kernel.
Usuarios:
Los procesos: Linux se organiza en procesos, que son tareas independientes que se ejecutan de forma simultánea mientras el sistema está en funcionamiento. Los procesos cuelgan unos de otros en una dependencia padre/hijo. Inicialmente al arrancar el sistema sólo existe un proceso, llamado init. Init lee los ficheros de configuración de arranque presentes en el directorio /etc y va creando procesos hijos. Estos a su vez tendrán sus propios hijos formando un árbol de descendientes. Los procesos en ejecución se encuentran alojados en la memoria rápida RAM del sistema. Cuando se habla de ejecutar o lanzar o arrancar un proceso, nos estámos refiriendo al proceso de leer un fichero almacenado en el disco duro que contiene las instrucciones del programa, colocando las mismas en la memoria RAM y a continuación empezando a ejecutar las instrucciones del programa ya en RAM.
Linux está diseñado para ser utilizado por varios usuarios simultáneamente. Aun cuando el sistema sólo vaya a ser utilizado por un único usuario, como es el caso corriente hoy en día, en general internamente Linux utilizará varios usuarios 'robots' para organizar mejor y de forma más segura el sistema. Linux siempre tiene un superusuario llamado 'root' ('raíz' traducido) Cada uno de los procesos pertenece a un usuario y en función del usuario asociado, dicho proceso tendrá unos permisos u otros. Un proceso en ejecución puede cambiar su usuario asociado si tiene los permisos suficientes para hacerlo. En general sólo tendrá permisos para cambiar de usuario cuando el usuario actual asociado al proceso sea 'root'. El proceso inicial Init se ejecuta con el usuario asociado 'root' lo cual le confiere permisos totales sobre la máquina. En general cuando Init ejecute sus procesos hijos lo hará asociandolos a usuarios distintos cuyos permisos se reduzcan a los esenciales para ejecutar la tarea para la cual están diseñado.
Ficheros: Los procesos acceden al hardware y a otros recursos como la conexión de red a internet o los datos almacenados en disco a través de un sistema de ficheros. Todas las entradas y salidas de datos desde/hacia procesos se realiza a través de ficheros.
El Kernel: El kernel hace de frontera entre el software y el hardware. Para nuestra CPU, el kernel es un programa de software como cualquier otro (o casi como cualquier otro) pero para el resto de procesos, init incluido, el kernel se comporta como si fuese hardware. Cuando un proceso quiere acceder al hardware no lo hace directamente, sino que se lo pide al kernel. El kernel hace de interlocutor entre procesos y hardware. Si varios procesos quieren acceder al disco duro o a Internet, el kernel asignará un tiempo a cada uno de ellos, copiará los datos que cada proceso quiere enviar y los enviará al disco duro o a la red. También es el kernel el encargado de distribuir el tiempo de CPU asignado a cada proceso Linux es un sistema multiproceso debido a que, aun disponiendo de un único procesador, Linux es capaz de ejecutar simultáneamente varias tareas haciendo rotar el propietario de la CPU cada fracción de segundo. En realidad puede asignar el control de la CPU a un nuevo proceso entre 100 o 1000 veces por segundo, dependiendo de la potencia de la CPU. Para un ser humano da la impresión de que todas las tareas se están ejecutando de forma simultánea. Este sistema de asignación de la CPU es clave y está extremadamente estudiado y optimizado La palabra Linux, estrictamente hablando, en realidad se refiere solamente al kernel. Los procesos normales en realidad no son Linux, son procesos desarrollados por diferentes grupos de trabajo (fundación GNU, Mozilla, empresas,...). Sin embargo es costumbre resumir, por abuso del lenguaje, como Linux a todo y cuanto se ejecuta bajo el kernel (algo que en realidad siempre ha molestado a otros grupos de desarrollo que se ven injustamente ignorados por este hecho).
Arquitectura Novell La arquitectura del sistema ZENworks está formada por componentes como servidores primarios, servidores satélites y dispositivos gestionados. Estos componentes se organizan en dominios de gestión, a los que nos referiremos como zonas de gestión. Una zona de gestión está compuesta por al menos un servidor primario, satélites (si son necesarios) y uno o varios dispositivos gestionados o dispositivos de solo inventario. Los servidores primarios y los satélites trabajan juntos para gestionar los dispositivos. La información de la zona se almacena en una base de datos que reside en uno de los servidores primarios o en una ubicación externa (en otro servidor que no tiene ZENworks instalado).
El servidor primario es el elemento central del sistema ZENworks. Según la cantidad y la ubicación de los dispositivos que desee gestionar con ZENworks, es posible que necesite servidores primarios adicionales. Los servicios de ZENworks se añaden a todos los servidores primarios (físicos o virtuales) durante la instalación y configuración del software de ZENworks. También es posible configurar el servidor primario distribuyendo ZENworks Appliance a la infraestructura virtual admitida. ZENworks Appliance se basa en una versión personalizada de SUSE Linux Enterprise Server 11 JeOS (SLES 11) y viene preinstalado con el servidor de ZENworks.
Un servidor satélite es un dispositivo que puede realizar ciertas funciones que normalmente realiza un servidor primario de ZENworks. Un satélite puede ser cualquier dispositivo Windows o Linux gestionado (servidor o estación de trabajo).
Un dispositivo gestionado Es un dispositivo Windows o Linux que se puede gestionar mediante ZENworks. Para que sea posible gestionar un dispositivo, este debe tener ZENworks Adaptive Agent instalado. El agente de Adaptive se comunica con un servidor primario para habilitar el envío de software, aplicar las directivas de configuración, realizar inventarios de hardware y software y gestionar el dispositivo de forma remota. Cada dispositivo gestionado intenta contactar con su servidor primario inicial. No obstante, si el contenido no está disponible en ese servidor primario, el dispositivo gestionado lo solicita de otro servidor primario o de un servidor satélite con la función de contenido de la zona de gestión y continúa hasta que encuentra un servidor que pueda proporcionar el contenido. Cada dispositivo gestionado solo se puede registrar en una única zona de gestión y, por lo tanto, solo se puede gestionar desde esa zona.
Dispositivo solo de inventario Puede tener dispositivos en los que no sea posible instalar el agente de Adaptive o en los que no desee instalarlo. Para inventariar esos dispositivos, puede instalar el agente de solo inventario o bien ejecutar el recopilador portátil.
Zona de gestión Una zona de gestión consta de uno o varios servidores primarios y uno o varios dispositivos gestionados. Los servidores primarios de la zona trabajan juntos para gestionar los dispositivos. La información de la zona se almacena en una base de datos que reside en uno de los servidores primarios o en una ubicación externa (en otro servidor que no tiene ZENworks instalado). La zona también puede contener satélites.
Arquitectura para Windows 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. 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). 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.
Sistemas Operativos II