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



No hay comentarios:
Publicar un comentario