lunes, 12 de marzo de 2012

Comparacion Windows VS Linux


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.
Conclusión:
Tanto Windows como Linux tienen su ventajas y inconvenientes, aunque desde un punto de vista más técnico Linux sale ganando.




Notas
Acción estimada de Uso de Escritorio
En Febrero de 2008 se estimó un uso de 91.58% deWindows.
En Febrero de 2008 se estimó un uso de 0.65% de Linux.
Según la Cuota de datos del mercado de Net Applications.
Pre-instalación
Preinstalado de manera predeterminada en casi todos los nuevos PC.
Preinstalado de manera predeterminada en muy pocos nuevos PC de escritorio.
Sin embargo, Ubuntu está ahora disponible en todas computadoras System76, en algunas computadoras de Vallecito, y en Escritorio de Empresa de SUSE Linux en algún Lenovo ThinkPads. Recientemente muchos más ordenadores basados en Linux portátiles de consumo bajo-finales les ha sido introducido.
El acuerdo de Microsoft con vendedores para vender sólo el sistema operativo de Windows es desafiado en el tribunal por grupos franceses de derechos del consumidor.
Directores/Desktop de ventanas de ambientes
Un WM disponible por la liberación, las partes de que pueden ser modificadas; el archivo de sistema que remienda (uxtheme.dll) o software de terceros comoWindowBlinds son requeridos para alguna modificación.
WM es requerido críticamente para operar el sistema (el fracaso de sistema de gráfica rendirá el sistema inutilizable) el mando a distancia; no parte de la arquitectura original.
Puede ser aumentado con Beryl o Compiz o con la más nueva Fusión de Compiz (Compiz/Beryl). WM no crítico para la operación de sistema (vuelve ordenar la operación de la línea en caso de fracaso) el mando a distancia;implícito en el diseño y protocolo.
Los directores diferentes de Windows proporcionan información a usuarios con un método extraordinariamente diferente de interactuar con la computadora, aunque a veces a costa de compatibilidad.
Símbolo de sistema/Sistema
El Aviso de la Orden existe para usuarios de poder.
La línea de comandos puede ser utilizada para recuperar el sistema si el subsistema de gráficos falla. Un ambiente de la línea de la orden de RED-BASO llamadoWindows PowerShell ha sido desarrollado. Su funcionalidad es semejante a la que se ha proporcionado en sistemas operativos de Tipo-Unix. Cygwin proporciona una terminal de TIPO-UNIX para Windows.

Instalación
Notas
Facilidad de instalación.
En Windows Server 2003 y Anteriores (winXP,2000,NT 3.1-4.0), la instalación es dividida en dos etapas; la primera en modo-texto, pasando en algunos minutos a la segunda de tipo gráfico. En la de Windows Vista o Seven, la instalación es una sola etapa: gráfica.
Algunas versiones más viejas requieren drivers de terceros (por ejemplo, si vamos a utilizar drivers de disco o los drivers de slipstreaming necesitamos crear una nueva instalación CD) y si estamos utilizando mucho tecnologías como SATA o SATA2.
Varía mucho por distribución.
Las distribuciones de propósito general ofrecen un live CD o un instalador conGUI (SuSE,Debian,PardusPCLinuxOSMandrivaUbuntuFedora etc.), Otros ofrecen a un instalador guiado por menú (Vector LinuxSlackwareDebian) mientras otros, concentrando en grupos más especializados, requieren los archivos fuente para ser copiados y para ser compilados (Gentoo). El sistema también puede ser construido completamente desde cero, directamente de código fuente como (Linux From Scratch).
Tiempo deinstalación.
Varía basado en la versión instalada, configuración de hardware, si es un actualización o limpia la instalación. Recorre típicamente cerca de 20 minutos a cerca de una hora. El tiempo adicional puede ser requerido para instalar el Sistema operativo y losdrivers.
Las gamas son de 6 minutos a una hora, dependiendo de la distribución. Es generalmente alrededor de 5-30 minutos para distribuciones de uso general como Ubuntu. El tiempo adicional puede ser requerido para instalar el Sistema operativo y los drivers. Sin embargo, las distribuciones tipo Ubuntu, Fedora y muchos otras, una vez ya instalados, ya tienen la mayor parte del software básico (como Office, GALON) ya incluido por defecto.
Vea las notas a pie de página para lacomodidad de instalación de su preferencia.
El "tiempo de la instalación" puede ser medido dependiendo de en que forma distinta ocurran las acciones que son incluidas: instalando el sistema operativo, Drivers adicionales, Sistema operativo actualizado, y/o las aplicaciones.
A menudo los drivers deben ser instalados separadamente, si no se instalan correctamente se instalan los medios que el fabricante proporciona. La mayoría de los drivers comunes están disponibles en Windows Updateo después de que Internet Explorer se actualize rápidamente. El proceso de instalación de los drivers es sumamente largo con la ventaja de ser un proceso automático.
La mayoría de los drivers libres disponibles son incluidos en la mayoría de las distribuciones o pueden ser encontrados en archivos en línea. Algunos dispositivos (por ejemplo tarjetas de gráfica, los adaptadores radiofónicos) no tienen los driver de Código: Fuente abierta disponibles debido a la licencia y a los asuntos, pero los drivers propietarios están disponibles para la descarga de fabricantes o archivos especiales. Algunos dispositivos permiten conductores deWindows que utilizan. Para algunos dispositivos no drivers utilizables están disponibles. La mayoría de los conductores especiales de propósito deben ser compiladas por el usuario manualmente. El tiempo ha sido invertido a centralizar y automatizar para alguna instalación de driver por un director de paquete.
Instalación Vía Live
Puede ser instalado por WinPE yBartPE. Sin embargo, sólo el anterior es aprobado por Microsoft.
Casi todas distribuciones de Linux ahora tienen un CD que puede ser utilizado para instalarse.
Software Pre-instalado
Algún multimedia y utiliza en casa software (IE, Windows Media Player, el Bloc, WordpadPaint…) paquete de software positivo de fabricante de origen. Windows Vista Incluye Internet Explorer 7Windows Live Messenger,Windows Media Center, etc.Dependiendo de cuál edición es comprada. No incluye las series deMicrosoft Office ni software multimedia avanzado.
Todas las principales distribuciones contienen numerosos programas:multimediagráficos,internet, las series de la oficina, los juegos, las utilidades de sistema y ambientes alternativos de escritorio. Algunas distribuciones se especializan en la educación, en los juegos, o en la seguridad. La mayoría de las distribuciones les dan a usuarios la elección de que programas desean instalar.
Los métodos deMicrosoft de negociar su software fue creído ilegal en el casoEstados Unidos12
Software No- Preinstalado
Existe una gran cantidad de software propietario (inclusive el shareware y elfreeware) y software libre. Los programas vienen generalmente con las bibliotecas necesarias y son instalados normalmente fácilmente. La mayoría de los programas deben ser instalados individualmente.
La desinstalación es igualmente fácil, Pero las entradas de componentes y registro pueden ser dejadas atrás si un programa ha sido equipado con un uninstaller más viejo.
Una piscina grande de software libre y algún software propietario. Los puertos de software propietario de Windows también existen. Utilizando capas libres de compatibilidad de Windows como Wine, Mucho software de Windows también puede ser corrido en Linux. Los programas de distribución incluyen algunas cosas que pueden ser instalados fácilmente en series grandes con dependencias a bibliotecas compartidas para ser cuidado. El envase sistemas permiten la instalación fácil de programas común/sostenidos. Otros programas pueden ser instalados, pero requieren a usuarios a conocer el esqueleto UNIX.
Dividiendo
Las divisiones expansivas de NTFS son posibles sin problemas, y en Windows Vista es posible encogerse a las divisiones también. Los Discos Dinámicos proporcionan dividir dinámicas. Los instrumentos de terceros están disponibles ya que tienen más características que los instrumentos incorporados que dividen.
Algún apoyo de filesystem que recalibra las divisiones sin perder los datos.LVM y EVMSzzz proporcionan dividir dinámico. Todas las distribuciones de Linux han liado software que divide como fdisk o gparted.
Inicializando el cargador
Puede inicializar a múltiples sistemas operativos por el Windows Boot Manager (El de Windows Vista y el más nuevo) /lMicrosoft Boot Loader (NTLDR, Servidor de Windows 2003 y previo).
Puede inicializar a múltiples sistemas operativos por GRUB o LILO. También tiene las características de la seguridad, como la protección de la contraseña, eso no es encontrado en la Windows Boot Loader.
Para un Windows y un Sistema de doble-boot de Linux, es más fácil de instalar Windows primero y entonces Linux. Numerosos directores de boot de terceros están disponibles para Windows.
Accesibilidad y uso
Un estudio realizado por Revelative AG indica que El valor práctico de Linux como un sistema de escritorio fue juzgado para ser de casi igualar a Windows XP.
Notas
Foco de usuario
En su mayor parte coherente. Contradicciones aparecen principalmente por backports - Potados en los softwares de los más nuevos a los más viejos de los sistemas operativos. Por ejemplo, lo que porta el software de la Vista a XP, o de XP a Windows 2000/98, debe seguir las pautas del más nuevo sistema (IE7 y Windows Media Player 11 son ejemplos de esto)14 sin embargo, Microsoft empuja continuamente para la consistencia entre liberaciones con pautas para comunica el diseño. El último es las pautas de la Experiencia de Usuario de Vista de Windows15 Su foco está en la consistencia y el valor práctico, pero con aumentado concierne para la seguridad en nuevas versiones. las aplicaciones terceras del partido pueden o no pueden seguir estas pautas, pueden tener sus propias pautas, O no puede seguir ninguna regla para comunica el diseño.
La calidad del diseño gráfico varía entre ambientes de escritorio y distribuciones. Los dos ambientes más grandes del escritorio (GNOME yKDE) ha definido claramente que comunica las pautas, la cual tiende a ser seguido coherentemente y claramente16 17 Estos proporcionan la consistencia y un grado alto de customizability para adaptar a las necesidades del usuario. Las distribuciones como UbuntuSuSE, el Sombrero o Mandriva toman éste da un paso aún más, combinando valor práctico de bien-funcionando y seguridad. Sin embargo, contradicciones pueden parecer, desde que los programas de GNOMO-BASO, siguientes pautas diferentes, Mire algo diferente de programas de KDE. Hay otros directores de ambientes/ventana, concentrando generalmente en profesionales o usuarios minimalistas, representando algunos programas muy poderosos con rudimentario, Minimalista gráfico inicial, enfocando mucho más en el desempeño, pequeño tamaño y la seguridad. Windows Movie Maker y el Fluxbox/Openbox/los ambientes de Blackbox son tales ejemplos. Algunos otros ambientes quedan entre los dos modelos, dando ambos poder, dulces de ojo y sencillez (Enlightenment/E17, Xfce). Algunos ambientes gráficos son concentrados en a usuarios de ratón sólo (Fluxbox), Otros a usuarios de teclado sólo (Ratpoison), otros a cualquiera.
Consistencia entre Versiones
La interacción del usuario con el software es generalmente coherente entre versiones, las liberaciones, y las ediciones.
La consistencia puede ser pobre entre distribuciones, las versiones, los ambientes de directores/escritorio de ventana, y los programas. El software es sumamente usuario-capaz de ser personalizado, sin embargo, el usuario no puede tener las personalizaciones entre todas las versiones.
Consistencia entre aplicaciones
Todo software de Microsoft sigue las mismas pautas para GUI, aunque no todo software desarrollado para Windows por terceros partidos siga estas pautas de GUI. Backports tiende a seguir las pautas del más nuevosistema operativo.
Sumamente coherente dentro de KDE y GNOME. Sin embargo la cantidad vasta de software adicional que viene con una distribución es sourced de en otra parte; No puede seguir las mismas pautas de GUI ni puede causar contradicciones (la mirada por ejemplo diferente y el sentirse entre programas construidos con juegos de herramientas diferentes de chisme).
Aunque Windows'GDI y la mayoría de los juegos de herramientas de chisme en Linux tienen en cuenta las aplicaciones para ser creadas con una mirada de la costumbre y se sienten, la mayoría de las aplicaciones en ambas plataformas utilizan simplemente la mirada predefinida y se sienten. Sin embargo, hay las excepciones comoFL Studio paraWindows, y paraLMMS para Linux.
Personalización
El código fuente puede ser comprado para la modificación en algunas circunstancias (restrictivo), o los instrumentos de terceros pueden crear las modificaciones.
Todo el código fuente del kernel es fácil de conseguir para la modificación. La mayoría del otro software es software libre, también.
Accesibilidad
Tanto Windows como las opciones de la accesibilidad de la oferta de Linux, como el contraste alto demuestran el tamaño más grande de texto/icono, el texto al discurso y lupas.18
Estabilidad
Notas
Estabilidad general
Variantes sistemas operativos de Windows se basaron en NT de Windows(Windows NT2000,Windows XPWindows Server 2003 y Windows Vista) son técnicamente mucho más estable que las versiones más tempranas (95, 98, 98 se,Me). Instalar sin firmar o conductores de beta pueden llevar a la estabilidad disminuida de sistema. Los mecanismos para terminar comportándose mal las aplicaciones existen en múltiples niveles.
El kernel hereda la estabilidad de UNIX debido a su arquitectura modular (reconoció para ser establo). Linux emuladores terminales y estabilidades de "Directores de Windows" de frontend varían extensamente, Pero son generalmente fijos. Los mecanismos para terminar comportándose mal las aplicaciones existen en múltiples niveles. Porque Linux puede utilizar un texto sistema basado si el sistema de la gráfica falla, El sistema de la gráfica puede ser reiniciado fácilmente siguiendo un choque sin un sistema entero reinicia.
La inestabilidad puede ser causada por programas mal escritos, aparte de la estabilidad intrínseca del sistema operativo. El software choca, sin embargo, puede ser recuperado generalmente sin reiniciar el sistema operativo entero, y sin perder los datos de otras aplicaciones.
Estabilidad del dispositivoDriver
Los Driver de los dispositivos los ofrece Microsoft, pero a veces el fabricante suele dar los Driver con sus nombres en la PC.
Los Driver del dispositivo son a veces inversos dirigidos para trabajar en Linux. Algunos vendedores contribuyen a libertar conductores (Intel, etc. de HP) o proporcionar a conductores propietarios (Nvidia, etc. de ATI). Las líneas específicamente diseñadas del camarero existen. Algunos conductores de Windows también pueden ser utilizados (conductores en su mayor parte radiofónicos que utilizan la armazón de ndiswrapper).
Los choques pueden ser causados por problemas de hardware o conductores mal escritos del dispositivo.
Tiempo de inactividad
Reiniciar es requerido obligatoriamente después de que se actualiza, o se instala algún driver, como el del teclado. Son necesitados ocasionalmente para instalaciones de software si el instalador desea escribir para reemplazar un archivo que es utilizado por correr crítico el programa. Microsoft tiene suhotpatching la tecnología, Diseñado para reducir tiempos de inactividad.
Linux sólo necesita reiniciar para actualizar su Kernel.19Sin embargo, una utilidad especial puede ser utilizada para cargar el nuevo kernel y ejecutarlo sin un hardware reponedor (Kexec) y de ahí no puede dormirse durante años sin reiniciar. N.B. "Ksplice" y también una opción permite actualizar el Kernel sin reiniciar.
Recuperación
En moderno, las versiones de NT-BASO deWindows, los programas que chocan pueden ser terminados forzosamente por el director de la tarea apretando CTRL el CAMBIO ESC o CTRL ALT DEL o por la línea de la orden en SKUs profesional. Reiniciar a menudo es requerido en versiones de pre-NT (Windows 9x).
Todos procesos menos init y procesos en D o el estado Z pueden ser terminados de la línea de la orden. En aplicaciones de KDE puede ser cerrado utilizando CTRL ALT ESC o por KSystemGuard apretando CTRL ESC. SysRQ permite la manipulación de bajo nivel del sistema y recuperación de choque sin configurarlo. El subsistema gráfico entero puede ser parado con CTRL ALT espacío hacia atrás sin la necesidad para un cierre entero del sistema. Reiniciar cada vez es requerido.20 21
Adicionalmente, Viene en CDS de Linux, viene con los instrumentos correctos para reparar un sistema operativo que está roto.22
Errores Irrecuperables
Si el Kernel o un conductor que corren en el modo del meollo se encuentran con un error bajo por circunstancias por lo cual Windows no puede continuar operando sin peligro, Un "cheque del bicho" (coloquialmente conocido como un "error de parada" o "Pantalla Azul de la Muerte") es tirado. Una memoria descarga es creada y, dependiendo de la configuración, la computadora entonces puede reiniciar automáticamente. Adicionalmente, automáticamente reinicia servicios iniciados.
El equivalente Unix del Windows, la pantalla azul conocida como el Kernel del pánico. Las rutinas del meollo que manejan los pánicos son diseñadas generalmente para producir un mensaje de error a la consola, crea una memoria descarga, Y entonces o espera para el sistema para ser reiniciada o reinicia automáticamente.

Desempeño
Proceso de planificación
Versiones de Windows basados en NT usan un planificador de CPU basado en la Planificación mediante colas multinivel, con 32 niveles de prioridad predefinidos. El kernel puede cambiar el nivel de prioridad de un hilo dependiendo de su uso de E/S y CPU y si es interactivo (Ejemplo: acepta y responde las entradas del usuario), aumentando la prioridad de los interactivos y limita las operaciones de E/S y reduce los procesos de la CPU, para elevar la capacidad de respuesta de las aplicaciones interactivas[108].
La planificación en Linux es posible gracias a la función schedule del fichero kernel/sched.c.
Linux implementa el esquema de planificación definido en las extensiones de tiempo real de POSIX (SCHED_FIFO y SCHED_RR son las políticas orientadas a procesos de tiempo real).
Gestión dememoria/Disco de Llama
La familia de Windos NT (incluyendo 2000, XP, Vista, Win7) utilizan comunmente un archivo de paginación dinámico para la asignación de memoria. Un archivo de paginación está ubicado en el disco, y esta hecho para almacenar los objetos que se usan con menor frequencia en la memoria, dejando más RAM disponible para los objetos que son usados activamente. Este esquema sufre de relentizaciones debido a la fragmentación del disco, lo que dificulta la velocidad con los que estos objetos pueden ser devueltos a la memoria cuando se los nesecita. Windows XP y posteriores pueden desfragmentar el archivo de paginación, y en sistemas de archivos NTFS, asignan bloques inteligentemente para evitar estos problemas. Windows puede ser configurado para colocar el archivo de paginación en una partición separada o en un disco aparte, como se suele hacer en Linux, para eliminar el problema de la fragmentación. En todo caso, esta no es la opcion seleccionada por defecto, por que si el archivo de paginación esta en una partición separada, Windows no podra crear un volcado de memoria si el euipo llega a detenerse por un error.
La solución ideal en cuanto al desempeño es tener el archivo de paginación en diferentes discos duros donde en uno esta instalado Windows, y el otro este el archivo en cuestión. Esto reduce la fragmentación de los dos discos y los problemas de E/S.
La familia Windows 3.1x no tiene memoria virtual de verdad y utiliza un esquema más simple intercambio fácil que lleva a más de intercambio en el disco y más fragmentación por lo tanto. El soporte de la memoria virtual y la protección de la memoria objetiva es limitada en la familia Windows 9x para los procesos de 32 bits
Escritura especulativa
Windows SuperFetch (basada en Prefetcher - que está protegida por la patente de EE.UU. 6.633.968 [117]) intenta cargar las bibliotecas de uso general y componentes de aplicación en la memoria antes de que se requieren. Lo hace de forma continua el análisis de comportamiento de las aplicaciones y patrones de uso, por ejemplo, las aplicaciones que se utilizan normalmente en la mañana después de inicio de sesión [118]. La memoria caché está marcado con prioridad baja, lo que significa que si otro proceso necesita la memoria, que será entregado.
Linux no cuenta con un built-in caché predictivo o especulativo, [cita requerida], aunque las soluciones de terceros, tales como la precarga, no existen. Linux tampoco es compatible con las prioridades de la memoria que podría asegurar que ese caché no pasara inadvertidamente la memoria a otro proceso para ser intercambiado, con impacto negativo en el rendimiento general.





 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.

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.
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.






Arquitectura 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 demultiprocesamiento 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.


Jerarquía de directorios


En Linux existe un sistema de archivos que carga y contiene todos los directoriosredesprogramasparticiones,dispositivos, etc. que el sistema sabe reconocer, o por lo menos, identificar. Este sistema de ficheros y directorios, tiene como base al carácter (/); ese mismo carácter sirve también para demarcar los directorios, como por ejemplo: "/home/usuario/imagen.jpg". El directorio especificado por una ruta consistente sólo por este carácter contiene toda la jerarquía de los directorios que constituyen todo el sistema. A este directorio suele llamárselo directorio raíz. En Linux, a los discos no se les asigna una letra como en Windows (p.e. "C:"), sino que se les asigna un directorio de la jerarquía del directorio raíz (/), como por ejemplo: "/media/floppy". Es práctica común en el sistema de ficheros de Linux, utilizar varias sub-jerarquías de directorios, según las diferentes funciones y estilos de utilización de los archivos.9 Estos directorios pueden clasificarse en:
  • Estáticos: Contiene archivos que no cambian sin la intervención del administrador (root), sin embargo, pueden ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)
  • Dinámicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor aún, deberían ser montados en una partición aparte en el mismo disco, como por ejemplo, montar el directorio /home en otra partición del mismo disco, independiente de la partición principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...)
  • Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios.
  • Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock...)


Kernel panic


En Linux, un panic es un error casi siempre insalvable del sistema detectado por el núcleo en oposición a los errores similares detectados en el código del espacio de usuario. Es posible para el código del núcleo indicar estas condiciones mediante una llamada a la función de pánico situada en el archivo header sys/system.h. Sin embargo, la mayoría de las alertas son el resultado de excepciones en el código del núcleo que el procesador no puede manejar, como referencias a direcciones de memorias inválidas. Generalmente esto es indicador de la existencia de un bug en algún lugar de la cadena de alerta. También pueden indicar un fallo en el hardware como un fallo de la RAM o errores en las funciones aritméticas en el procesador, o por un error en el software. En muchas ocasiones es posible reiniciar o apagar adecuadamente el núcleo mediante una combinación de teclas como ALT+SysRq+RSEIUB.

Arquitectura de máquina virtual

El núcleo Linux puede correr sobre muchas arquitecturas de máquina virtual, tanto como host del sistema operativo o como cliente. La máquina virtual usualmente emula la familia de procesadores Intel x86, aunque en algunos casos también son emulados procesadores de PowerPC o AMD.

No hay comentarios:

Publicar un comentario