Windows vs Linux
Diseño de Sistema Operativo Windows
La arquitectura de Windows es altamente modular y se basa en dos capas principales:
- Modo usuario: Cuyos programas y subsistemas están limitados a los recursos del sistema a los que tienen acceso.
- Modo núcleo: Tiene acceso total a la memoria del sistema y los dispositivos externos. Los núcleos de los sistemas operativos de esta línea son todos conocidos como núcleos híbridos, aunque hay que aclarar que este término está en discusión ya que este núcleo es esencialmente un núcleo monolítico que está estructurado al estilo de un micronúcleo. La arquitectura dentro del modo núcleo se compone de lo siguiente:
- Un núcleo híbrido.
- Una Capa de Abstracción de Hardware (HAL).
- Controladores o drivers.
- Executive: Sobre el cual son implementados todos los servicios de alto nivel.
Modo Usuario
El modo usuario está formado por subsistemas que pueden pasar peticiones de E/S a los controladores apropiados del modo núcleo a través del gestor de E/S (que se encuentra en el modo núcleo). Dos subsistemas forman la capa del modo usuario de Windows 2000: el subsistema de Entorno y el subsistema Integral.
Modo núcleo
El modo núcleo de Windows 2000 tiene un acceso completo al hardware y a los recursos del sistema de la computadora y ejecuta su código en un área de memoria protegida. Controla el acceso a la planificación, priorización de hilos, gestión de memoria y la interacción con el hardware. El modo núcleo impide que los servicios y las aplicaciones del modo usuario accedan a áreas críticas del sistema operativo a las que no deberían tener acceso. En lugar de ello, deben pedir al núcleo que realice esas operaciones en su nombre.
Executive
El Executive se relaciona con todos los subsistemas del modo usuario. Se encarga de la Entrada /Salida, la gestión de objetos, la seguridad y la gestión de procesos. Está dividido informalmente en varios subsistemas, entre los que se encuentran el Gestor de Caché, el Gestor de Configuración, el Gestor de Entrada/Salida, las Llamadas a Procedimientos Locales, el Gestor de Memoria, el Gestor de Objetos, la Estructura de Procesos, y el Monitor de Referencias de Seguridad. Todos juntos, los componentes pueden ser llamados Servicios Executive (nombre interno Ex).
Núcleo
El núcleo del sistema operativo se encuentra entre el HAL y el Executive y proporciona sincronización multiprocesador, hilos y envío y planificación de interrupciones, gestión de interrupciones y envío de excepciones. También es responsable de la inicialización de controladores de dispositivos que son necesarios en el arranque para mantener el sistema operativo funcionando. Esto es, el núcleo realiza casi todas las tareas de un micronúcleo tradicional.
Controladores del modo Núcleo
Windows 2000 utiliza cada controlador de dispositivo del modo núcleo para permitirle interactuar con los dispositivos hardware. Cada uno de los controladores tiene rutinas de sistema bien definidas y rutinas internas que exporta al resto de sistemas operativos. Todos los dispositivos son vistos por el modo usuario como un objeto archivo en el gestor de Entrada/Salida. A través del propio gestor de E/S, los dispositivos son vistos como objetos de dispositivo, que él define tanto como objetos archivo, dispositivo o drive.
Capa de Abstracción Hardware
Diseño de 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.
Jerarquía de directorios
En Linux existe un sistema de archivos que carga y contiene todos los directorios, redes, programas, particiones, dispositivos, etc. que el sistema sabe reconocer, o por lo menos, identificar. de los directorios que constituyen todo el sistema.
- 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.
Lenguajes de programación
Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar), junto a unas pequeñas secciones de código escritas con el lenguaje ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo el único compilador capaz de construir correctamente Linux.
0 comentarios:
Publicar un comentario