miércoles, 7 de marzo de 2012

Software del servidor

Windows Vs Linux
¿Cuales son las ventajas de Linux frente a Windows?, ¿en qué se diferencian?







    





 La instalación:
  • En Linux a pesar de todos los esfuerzos la instalación no resulta sencilla siempre, pero te permite personalizar totalmente los paquetes que quieras instalar.
  • En Windows la instalación es mínimamente configurarle aunque es muy sencilla.


La compatibilidad: Ninguno de los dos sistemas operativos son totalmente compatibles con el Hardware, a pesar de que Windows se acerca más, los dos están cerca de conseguirlo.
  • Aunque Linux no esta detrás de ninguna casa comercial gracias a su elevada popularidad ofrece una alta compatibilidad ofreciendo, además, actualizaciones frecuentes.
  • Windows al ser parte de Microsoft intenta ofrecer una gran cantidad de drivers ya que su gran poder económico hace que las empresas mismas de hardware creen sus propios drivers.
Software:
  • Linux al tener menos software en algunos campos sufre una menor aceptación por parte de las empresas, aunque gracias a los apoyos de empresas como Sun Microsystems o IBM se ha logrado muchos avances.
  • Windows al ser el más fácil de usar en las empresas, posee una gran cantidad de software.
Robustez:
  • Linux se ha caracterizado siempre por la robustez de su sistema ya que pueden pasar meses e incluso años sin la necesidad de apagar o reiniciar el equipo, también si una aplicación falla simplemente no bloquea totalmente al equipo.
  • En Windows siempre hay que reiniciar cuando se cambia la configuración del sistema, se bloquea fácilmente cuando ejecuta operaciones aparentemente simples por lo que hay que reiniciar el equipo.
Windows
Linux
Windows es mas fácil
Windows en este momento continúa siendo el sistema operativo más comercial lo cual se refleja en la disponibilidad de aplicaciones, facilidad de mantenimiento así como soporte en el desarrollo de nuevas aplicaciones, puntos que pueden ser cruciales en la elección de servidores que corren aplicaciones Web.
Linux es mas seguro
Ya que la gran mayoría de los ataques de hackers son dirigidos a servidores Windows al igual que los virus los cuales se enfocan principalmente a servidores con éste sistema operativo.   La plataforma Linux es más robusta lo cual hace más difícil que algún intruso pueda violar el sistema de seguridad de Linux.
Aplicaciones desarrolladas en menor tiempo
Fruto de la inversión realizada por Microsoft y aunado a una comunidad de programadores cada vez más grande se ha logrado facilitar el desarrollo de aplicaciones y sistemas que corran sobre servidores Windows lo cual se ve reflejado en tiempos de desarrollo menores.  La curva de aprendizaje en el sistema Windows es mucho menor.
Es más rápido
Al tener una plataforma más estable, esto favorece el desempeño de aplicaciones de todo tipo tales como: bases de datos, aplicaciones XML, multimedia, etc.  La eficiencia de su código fuente hace que la velocidad de las aplicaciones Linux sean superiores a las que corren sobre Windows lo cual se traduce en velocidad de su página.
Es más costoso
Windows es más costoso debido a que es necesaria una frecuente atención y monitoreo contra ataques de virus, hackers y errores de código, instalación y actualización de parches y service packs.
Es más económico
Ya que requieren menor mantenimiento. En servidores El software Linux así como también un sin número de aplicaciones son de código abierto (gratuitos).  No requieren supervisión tan estrecha ni pagos de pólizas de mantenimiento.
Razones para cambiar de Windows a Linux:
  • Es software libre, lo que quiere decir que no hay que pagar nada por el sistema en sí.
  • Es un sistema operativo muy fiable ya que hereda la robustez de UNIX.
  • Ideal para las redes ya que fue diseñado en Internet y para Internet
  • No es cierto que tenga pocos programas, solo en algún campo muy especifico.
  • Es 100% configurarle.
  • Es el sistema más seguro, ya que al disponer del código fuente cualquiera puede darse cuanta de algún fallo, se puede decir que decenas de miles de personas velan por tu seguridad.
  • Existe muchísima documentación, también en español gracias a los proyectos como LUCAS.
  • Cuenta con el soporte de muchas grandes empresas como IBM, Corel, Lotus, Siemens, Motorola, Sun, etc.
  • Puedes encontrar ayuda en millones de sitios en Internet como los foros.
  • Es muy portable, si tienes un Mac un Alpha o un Sparc puedes usar Linux sin problemas.
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.

SISTEMA OPERATIVO LINUX

Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento simétrico.
El hecho de que Linux no fuera desarrollado siguiendo el diseño de un micronúcleo (diseño que, en aquella época, era considerado el más apropiado para un núcleo por muchos teóricos informáticos) fue asunto de una famosa y acalorada discusión entre Linus Torvalds y Andrew S. Tanenbaum.

ARQUITECTURA
La arquitectura del sistema operativo LINUX se divide en tres niveles:
1.     El nivel de usuario, donde se ejecutan todos los procesos de usuario, sin capacidad para ejecutar las instrucciones más privilegiadas del procesador.
2.     El nivel del núcleo, es el privilegiado del procesador donde pueden ejecutarse todas sus instrucciones sin restricciones.
3.     El nivel del hardware, correspondiente al hardware especifico conectado en el sistema.
La comunicación entre los procesos de usuario y el núcleo se realiza a través de la librería del sistema, que genera una interrupción software (trap) cada vez que se realiza una llamada al sistema para obtener un servicio del núcleo.
Respecto a la estructura interna del núcleo, LINUX fue desarrollado sobre un sistema basado en un procesador bastante lento como el i386, lo que impuso la utilización de una arquitectura monolítica tradicional.
ESTRUCTURA BASICA DE LAS FUENTES DEL NUCLEO
Los archivos que contienen el código fuente del núcleo de LINUX se puede encontrar a partir del directorio / usr / src / LINUX. Los directorios que los contienen son:
¨  KERNEL: Sección central del núcleo, con la codificación de servicios como fork, exit, etc. Parte de este código es muy dependiente de la máquina donde se este ejecutando LINUX; se ubica en directorios bajo el directorio arch.
¨     NET: Implementación de los protocolos mas usuales en redes (TCP/IP, ARP...), así como el código para los sockets, etc.
¨   FS: Este directorio contiene los archivos del Virtual File System Switch y los que cuelgan de el contienen el soporte para los diferentes sistemas de ficheros soportados ( ext2, MS dos, minix, xiafs, sysv y muchos otros). El mas usado en LINUX actualmente es el ext2. Por ultimo hay que señalar que este directorio es también herencia de minix.
¨  ARCH: Implementación del código dependiente de la maquina. Hay directorios como alpha (para el DEC Alpha), i386 (para el Intel 80386) y otros.
¨  MM: Contiene las fuentes para la administración de la memoria. No es un gestor de la memoria al estilo minix, el directorio queda como una reminiscencia del sistema a partir del cual fue desarrollado.
¨     MODULES: Contiene las fuentes para la carga dinámica de módulos en el sistema (permite modificar el núcleo en tiempo de ejecución).
¨  INIT: Funciones para el arranque e iniciación del kernel a partir de ciertos parámetros que le son pasados.
¨  DRIVERS: Contiene subdirectorios para el manejo de los diferentes dispositivos conectados a la máquina. Es en estos (block, char, net, sound. . . .) donde se ubican los diferentes device drivers. Este directorio es el más voluminoso de todos, y se estima que va a ser el de mayor crecimiento a lo largo del desarrollo de LI NUX, debido al enorme y creciente número de dispositivos existentes en el mercado.
¨  IPC: Fuentes para la intercomunicación de los procesos . Incluye semáforos, colas de mensajes y memoria compartida.
¨  LIB: Implementación de algunas de las funciones estándar del lenguaje de programación C de las que se hace gran uso en la implementación del kernel.
¨  INCLUDE: Directorio donde se almacenan los archivos de cabecera del kernel (header files). Cuelgan de el algunos directorios para las diferentes arquitecturas  soportadas. Para simplificar el acceso a la arquitectura adecuada existe un LINK simbólico llamado include / asm.

No hay comentarios:

Publicar un comentario