Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

M16T5 Windows y GNU

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

Windows y GNU/LINUX

Sistemas operativos avanzados


CONTENIDO
1. Objetivos

2. Introducción

3. Estructura de Windows

4. Estructura de GNU/Linux

5. Resumen

6. Bibliografía
Windows y GNU/LINUX | 3

Objetivos Existen otros ejemplos de sistemas operativos en


la actualidad. La alternativa más conocida a los dos
• Describir la estructura de los sistemas operativos grandes productos de Microsoft y Apple es Linux.
Windows y GNU/Linux. Muchos usuarios han escuchado acerca de este sistema
operativo, pero, en la práctica, pocos lo han utilizado, en
• Reconocer las diferencias entre la estructura del
cierta medida, porque, en ocasiones, ha sido etiquetado
sistema operativo Windows y GNU/Linux.
como complicado en comparación con su equivalente
• Ilustrar los componentes que integran ambas Windows. Linux en sí es, solamente, el núcleo que se
estructuras. integra en diferentes distribuciones. Entre las más
conocidas se tiene Ubuntu, Debian, Fedora o CentOS.
Introducción En las siguientes secciones se estudiarán las
Los sistemas operativos, con el paso de los años, estructuras de estos dos sistemas operativos, con el
han tenido una evolución gradual en su estructura y objetivo de aprender sobre cómo están estructurado
capacidades. Sin embargo, en los últimos tiempos se ambos sistemas operativos e intentar comprender el
han introducido un cierto número de nuevos elementos funcionamiento interno del mismo.
de diseño en las versiones más recientes de los sistemas
operativos. Estos sistemas modernos responden al
desarrollo y evolución de nuevos hardware y nuevas Estructura de Windows
aplicaciones.
Uno de los pasos más importantes que revolucionó
Entre estos dispositivos de hardware están las máquinas los sistemas operativos de Microsoft fue el diseño y
multiprocesador, incrementos enormes de la velocidad creación de un sistema operativo extensible, portable,
de la máquina, alta velocidad en los enlaces de las redes fiable, adaptable, robusto, seguro y compatible con sus
de comunicación e incremento en el tamaño y variedad versiones anteriores. Para ello, se dieron a la tarea de
de los dispositivos de almacenamiento de memoria. En crear una estructura modular como la que se presenta
los campos de aplicación que han influido en el diseño en la figura 1.
de los sistemas operativos están las aplicaciones
El nivel central es el mismo kernel que se carga desde
multimedia, el acceso a internet, páginas web y la
ntoskrnl.exe cuando Windows inicia. NTOS tiene dos
ejecución cliente/servidor. Estos cambios requieren no
niveles: el ejecutivo, que contiene la mayoría de los
solo modificaciones en las demandas, sino también una
servicios, y un nivel más pequeño que también se conoce
mejora en las arquitecturas ya existentes.
como kernel, el que implementa las abstracciones de
El sistema operativo de Microsoft, probablemente, es el programación y sincronización de hilos subyacentes;
sistema operativo más famoso del mercado y, con sus también implementa los manejadores de trampas, las
más de treinta años, uno de los más antiguos: seguro interrupciones y otros aspectos sobre la forma en que
que casi todo el mundo ha trabajado con algún ordenador se administra la CPU [2]. El sistema operativo Windows
con Windows, debido, principalmente, al hecho de que consiste en muchos niveles.
muchos de los ordenadores que se comercializan ya
En la figura 1 se muestran los niveles en modo kernel del
llevan instalado el producto de Microsoft. A intervalos
sistema operativo.
regulares, se publica una nueva versión de este sistema
operativo [1].

Figura 1. Organización de Windows en modo kernel [2].


Windows y GNU/LINUX | 4

El nivel más superior en la figura anterior es la biblioteca La capa de abstracciones del hardware
del sistema ntdll.dll, que, en realidad, se ejecuta en modo
de usuario. La biblioteca del sistema incluye varias Uno de los objetivos de Windows es lograr la portabilidad
funciones de soporte para las bibliotecas en tiempo de entre varias plataformas de hardware. En teoría, para
ejecución y de bajo nivel del compilador. llevar un sistema operativo a un nuevo tipo de sistema
computacional solo habría que recompilar el sistema
La biblioteca ntdll.dll también contiene puntos de entrada operativo con un compilador para el nuevo equipo y
de código especiales que el kernel utiliza para inicializar hacer que lo ejecutara la primera vez. Por desgracia, no
hilos y despachar las excepciones y las Asynchronous es tan simple. Aunque muchos de los componentes, en
Procedure Calls, llamadas a procedimientos asíncronas algunos niveles del sistema operativo, pueden ser, en
(APC) en modo de usuario. Como la biblioteca del gran parte, portables, otros niveles deben lidiar con los
sistema es tan integral para la operación del kernel, registros de dispositivos, las interrupciones, el DMA y
cada proceso, en modo de usuario, creado por NTOS, otras características del hardware que difieren de manera
tiene asignada la biblioteca ntdll en la misma dirección considerable entre una máquina y otra [2].
fija. Cuando NTOS inicializa el sistema, crea un objeto
de sección para emplearlo al asignar ntdll, y registra El trabajo del HAL es presentar al resto del sistema
las direcciones de los puntos de entrada de ntdll que el operativo el hardware abstracto que oculta los detalles
kernel utiliza. específicos sobre la versión del procesador, el conjunto de
chips de soporte y otras variaciones de la configuración.
Debajo de los niveles kernel y ejecutivo del sistema
operativo, hay un software conocido como Hardware Dentro de las funciones o características del HAL pueden
Abstraction Layer, nivel de abstracción de hardware mencionarse:
(HAL), que abstrae los detalles del hardware de bajo
nivel, como el acceso a los registros de dispositivos 1. Los drivers y el kernel requieren menos cambios
y las operaciones de DMA, así como la forma en que al portarse a nuevos procesadores. En muchas
el firmware del BIOS representa la información de versiones, Microsoft proporcionaba un kit de
configuración y lidia con las diferencias en los chips de desarrollo del HAL, el cual permitía a los fabricantes
soporte de la CPU y varios controladores de interrupción. de sistemas construir su propio HAL para
El BIOS está disponible a través de varias empresas y se posibilitar que los demás componentes del kernel
integra en memoria persistente (EEPROM) que reside en funcionaran en los nuevos sistemas sin necesidad
la tarjeta principal del ordenador. de modificarlos.
2. El HAL proporciona un servicio para identificar
Los otros componentes principales en modo de kernel dispositivos mediante la asignación de direcciones
son los drivers de dispositivos. Windows los utiliza para de dispositivos relativos del bus a direcciones
cualquier herramienta en modo de kernel que no forma lógicas a nivel del sistema. De esta forma, los drivers
parte del NTOS o del HAL. Esto incluye a los sistemas de no tienen que llevar la cuenta de qué dispositivo está
archivos, las pilas del protocolo de red y las extensiones conectado a cuál bus. Las interrupciones tienen un
del kernel, como el software antivirus y Digital Rights problema similar: también son dependientes del
Management, administración de los derechos digitales bus.
(DRM), así como drivers para administrar los dispositivos
físicos o actuar como interfaz para los buses del 3. Proporciona servicios para denominar las
hardware, por ejemplo. interrupciones de una forma que sea a nivel del
sistema y otros para permitir que los drivers
Los componentes de E/S y de memoria virtual cooperan adjunten rutinas de servicio de interrupciones a
para cargar y descargar controladores de dispositivos a las detenciones de una manera portable, sin tener
la memoria del kernel y enlazarlos a los niveles del NTOS que saber nada sobre cuál vector de interrupción
y HAL. El administrador de E/S proporciona interfaces corresponde a cuál bus.
que permiten descubrir, organizar y operar dispositivos
(incluyendo los arreglos para cargar el driver de 4. Administra los relojes y temporizadores, de una
dispositivo apropiado). Gran parte de la información de manera portable, y proporciona primitivas para
configuración para administrar dispositivos y drivers se administrar esta sincronización como la espera
mantiene en el grupo masivo de archivos del registro activa, en la que una CPU, simplemente, espera la
llamado SYSTEM. El subcomponente de plug-and-play liberación de un recurso retenido por otra CPU, en
del administrador de E/S mantiene la información sobre especial, en situaciones donde el recurso se retiene,
el hardware detectado dentro del volátil grupo masivo por lo general, por unas cuantas instrucciones de
de archivos HARDWARE que se mantiene en memoria máquina.
en vez de en el disco, ya que se recrea por completo
cada vez que se inicia el sistema.

Ahora, se examinarán con un poco más de detalle los


diversos componentes del sistema operativo.
Windows y GNU/LINUX | 5

5. Por último, una vez que se inicia el sistema, el Después, esta información se coloca en el registro.
HAL se comunica con el BIOS e inspecciona En la figura 2 se muestra un resumen de algunas de las
la configuración del sistema para averiguar cosas que hace el HAL.
los buses y dispositivos de E/S que contiene
y la forma en que se han configurado.

Figura 2. Algunas de las funciones de hardware que maneja el HAL.

La capa del kernel Además de proporcionar un mayor nivel de abstracción


del hardware y manejar los cambios de hilos, el nivel del
Por encima del nivel de abstracción de hardware está kernel también tiene otra función clave: proporcionar
el NTOS, el cual consiste en dos niveles: el kernel y el soporte de nivel bajo para dos clases de mecanismos
ejecutivo [2]. En el sistema operativo Windows, la capa de sincronización, los objetos de control y los objetos
del kernel proporciona un conjunto de abstracciones despachador.
para administrar la CPU. La abstracción más central
es la de los hilos, pero el kernel también implementa Los objetos de control son las estructuras de datos que la
el manejo de excepciones, las trampas y varios tipos capa del kernel proporciona como abstracciones al nivel
de interrupciones. La creación y destrucción de las ejecutivo para administrar la CPU. El ejecutivo los asigna,
estructuras de datos que dan soporte a los hilos se pero se manipulan mediante las rutinas que proporciona
implementan en el nivel ejecutivo. La capa del kernel la capa del kernel. Los objetos despachadores son la
es responsable de la planificación y sincronización de clase de objetos ejecutivos ordinarios que utilizan una
los subprocesos. Al tener soporte para los hilos en un estructura de datos común para la sincronización [2].
nivel separado, el nivel ejecutivo se puede implementar
mediante el uso del mismo modelo multihilo preferente Llamadas a procedimientos diferidas
que se utiliza para escribir código concurrente en modo Los objetos de control incluyen objetos primitivos para
de usuario, aunque las primitivas de sincronización son hilos, interrupciones, temporizadores, sincronización,
mucho más especializadas. creación de perfiles y dos objetos especiales para
El planificador de hilos del kernel es responsable de implementar DPC y APC. Los objetos Deferred Procedure
determinar cuál hilo se ejecuta en cada CPU del sistema, Call, llamada a procedimiento diferido (DPC) se utilizan
esto puede resumirse en los siguientes pasos. para reducir el tiempo requerido para ejecutar Interrupt
Service Routines, rutinas de servicio de interrupción
1. Cada hilo se ejecuta hasta que una interrupción del (ISR), en respuesta a una interrupción de un dispositivo
temporizador indique que es tiempo de cambiar a específico [2].
otro hilo (expiró su quantum) o hasta que el hilo
Para reducir el tiempo que se invierte en el procesamiento
tenga que esperar a que ocurra algo. Al cambiar de
de las ISR, se realizan solo las operaciones críticas.
un hilo a otro, el planificador se ejecuta en la CPU y
El objeto DPC se utiliza para representar el trabajo
se asegura de guardar el estado de los registros y
posterior a realizar y la ISR llama a la capa del kernel con
demás hardware.
el fin de poner en cola la DPC en la lista de DPC para un
2. Después, el planificador selecciona otro hilo para procesador específico. Si la DPC es la primera de la lista,
ejecutarlo en la CPU y restaura el estado que se el kernel registra una petición especial con el hardware
había guardado antes, desde la última vez que se para interrumpir la CPU en la prioridad 2 (a lo cual NT le
ejecutó ese hilo. llama el nivel DISPATCH).
- Si el siguiente hilo a ejecutar está en un espacio
de direcciones distinto (es decir, otro proceso)
que el hilo con el que se va a realizar el cambio,
el planificador también debe cambiar de espacios
de direcciones.
Windows y GNU/LINUX | 6

La técnica de usar interrupciones de software para diferir Objeto despachador


el procesamiento de las interrupciones es un método
bien establecido para reducir la latencia de las ISR. El objeto despachador es otro tipo de objeto de
Como las DPC se ejecutan en el nivel 2, no evitan que se sincronización. Es cualquiera de los objetos ordinarios
ejecuten las ISR, pero previenen que se ejecute cualquier en modo de kernel (el tipo al que los usuarios pueden
hilo hasta que se completen las DPC puestas en cola hacer referencia mediante manejadores) que contienen
y se reduzca el nivel de prioridad de la CPU a un nivel una estructura de datos llamada dispatcher_header,
menor de 2. Los drivers de dispositivos y el sistema en sí como se muestra en la figura 3.
deben tener cuidado de no ejecutar ISR o DPC por mucho
tiempo. Como no se permite la ejecución de los hilos, Encabezado del objeto
las ISR y las DPC pueden hacer que el sistema parezca Bandera de notificación/sincronización DISPATCHER_
Objeto
lento y producir fallas al reproducir música, debido al Estado señalado HEADER
ejecutivo
atascamiento de los hilos que escriben en el búfer de Encabezado de lista para los hilos en espera
música al dispositivo de sonido. Datos específicos del objeto

Llamadas a procedimientos asíncronas


Figura 3. La estructura de datos dispatcher_header [2].
El otro objeto de control especial del kernel es el objeto
APC (llamada a procedimiento asíncrona). Las APC son
como las DPC, en cuanto a que difieren el procesamiento Estos objetos incluyen semáforos, mutexes, eventos,
de una rutina del sistema, pero a diferencia de las DPC temporizadores con espera y otros objetos que los hilos
que operan en el contexto de CPU específicas, las APC se pueden esperar para sincronizar la ejecución con otros
ejecutan en el contexto de un hilo determinado. Cuando hilos. También incluyen objetos que representan archivos
se procesa una tecla que se oprimió, no importa en qué abiertos, procesos, hilos y puertos IPC. La estructura
contexto se ejecute la DPC, ya que esta es solo otra parte de datos del despachador contiene una bandera que
del procesamiento de interrupciones y las interrupciones representa el estado señalado del objeto y una cola de
solo necesitan manejar el dispositivo físico y realizar hilos que esperan a que se señale el objeto. Al igual
operaciones independientes de los hilos, como grabar que los semáforos, las primitivas de sincronización
los datos en un búfer en espacio de kernel. La rutina de son objetos despachadores naturales. Adeás, los
la DPC se ejecuta en el contexto de cualquier hilo que temporizadores, archivos, puertos, hilos y procesos
haya estado en ejecución cuando ocurrió la interrupción utilizan los mecanismos de objetos despachadores
original [2]. para las notificaciones. En Windows hay una API similar
llamada WaitForMultipleObjects, pero permite que un hilo
Una APC está diseñada para tener la apariencia de una espere sobre cualquier tipo de objeto despachador para
llamada inesperada a un procedimiento, algo parecido a el que tenga un manejador [2].
los manejadores de señales en UNIX. La APC en modo
de kernel para completar la E/S se ejecuta en el contexto En realidad, el kernel utiliza dos procedimientos distintos
del hilo que inició la operación de E/S, pero en modo de para hacer que los hilos esperen a un objeto despachador
kernel. Esto permite a la APC el acceso al búfer en modo ejecutable. Al señalar un objeto de notificación, todos los
de kernel y también a todo el espacio de direcciones en hilos que estén en espera serán ejecutables. Los objetos
modo de usuario, que pertenece al proceso que contiene de sincronización solo hacen que el primer hilo en espera
el hilo. sea ejecutable y se utilizan para objetos despachadores
que implementan primitivas de bloqueo, como los
El momento exacto en el que se entregará una APC mutexes. La diferencia entre los objetos despachadores
depende de lo que esté haciendo el hilo en ese que utilizan sincronización, en comparación con la
momento e, incluso, del tipo del sistema. En un sistema notificación, es una bandera en la estructura dispatcher_
multiprocesador, el hilo que recibe la APC puede empezar header. Como información adicional, los mutexes en
a ejecutarse, incluso, antes de que la DPC termine su Windows se conocen como “mutantes” en el código,
ejecución. debido a que tienen que implementar la semántica
de OS/2 de no desbloquearse a sí mismos en forma
El nivel ejecutivo también utiliza APC para operaciones automática cuando termine un hilo que contenga uno de
distintas de la compleción de E/S. Debido a que el estos mutexes.
mecanismo de la APC está diseñado con cuidado para
entregar APC solo cuando es seguro hacerlo, se puede
utilizar para terminar hilos en forma segura. Si no es
un buen momento para terminar el hilo, este habrá
declarado que estaba entrando en una región crítica y
difirió las entregas de APC hasta que salga de ella. Los
hilos del kernel se marcan a sí mismos cuando entran a
regiones críticas para diferir las APC antes de adquirir
bloqueos u otros recursos, de manera que no puedan
terminar mientras siguen reteniendo el recurso.
Windows y GNU/LINUX | 7

El nivel ejecutivo Las versiones recientes de Windows tienen mucho más


soporte para ejecutar drivers de dispositivos en modo
Como se muestra en la figura 2, el ejecutivo contiene de usuario y este es el modelo preferido para los nuevos
varios componentes distintos, los cuales se ejecutan drivers de dispositivos. Hay cientos de miles de drivers de
mediante las abstracciones de control que proporciona dispositivos distintos para Windows Los errores en los
la capa del kernel. Las características de cada uno de los drivers de dispositivos en modo de kernel son la principal
componentes que integran este nivel son descritas en fuente de la temida Blue Screen of Death, pantalla azul de
[2], como se muestra a continuación. la muerte (BSOD), donde Windows detecta un error fatal
dentro del modo de kernel y apaga o reinicia el sistema
Cada componente se divide en estructuras de datos e
interfaces internas y externas. Los aspectos internos Plug-and-play entra en acción cuando se detectan nuevos
de cada componente están ocultos y se utilizan solo dispositivos en el sistema.
dentro del mismo componente, mientras que los
aspectos externos están disponibles para todos los Primero, se notifica al subcomponente de plug-and-
demás componentes dentro del ejecutivo. Se exporta play. Funciona con un servicio (el administrador de
un subconjunto de las interfaces externas del ejecutable plug-and-play en modo de usuario) para buscar el driver
ntoskrnl.exe y los drivers de dispositivos pueden crear de dispositivo apropiado y cargarlo en el sistema. La
vínculos a ellas, como si el ejecutivo fuera una biblioteca. administración de energía reduce el consumo de esta en
donde sea posible, extiende la vida de las baterías en las
Microsoft llama “gerentes” a muchos de los componentes portátiles y ahorra energía en los equipos de escritorio
del ejecutivo, ya que cada uno está a cargo de administrar y servidores. Puede ser difícil administrar la energía en
cierto aspecto de los servicios operativos, como la E/S, forma correcta, ya que hay muchas dependencias sutiles
la memoria, los procesos, los objetos, etcétera. Al igual entre los dispositivos y los buses que los conectan a la
que con la mayoría de los sistemas operativos, gran CPU y la memoria. El consumo de energía no solo se
parte de la funcionalidad en el ejecutivo de Windows ve afectado por los dispositivos que están encendidos,
es como el código de biblioteca, excepto porque se sino también por la velocidad del reloj de la CPU, que el
ejecuta en modo kernel para compartir sus estructuras administrador de energía también controla.
de datos y protegerse del acceso del código en modo
de usuario y, por lo tanto, acceder al estado del hardware El administrador de procesos se encarga de la creación
privilegiado, como los registros de control de la MMU. y terminación de los procesos e hilos, incluyendo el
Pero, aparte de eso, el ejecutivo, simplemente, ejecuta establecimiento de las directivas y parámetros que los
funciones del sistema operativo a beneficio del que lo gobiernan. Los procesos contienen hilos, un espacio
llama y, por ende, se ejecuta en el hilo del proceso que de direcciones y una tabla con los manejadores que el
lo llamó. El administrador de objetos. Las herramientas proceso puede utilizar para hacer referencia a los objetos
que proporciona el administrador de objetos incluyen: en modo de kernel. Los procesos también incluyen la
administrar la asignación y liberación de memoria para información que necesita el planificador para cambiar
los objetos, contabilizar las cuotas, dar soporte al acceso entre un espacio de direcciones y otro, y para administrar
a los objetos mediante el uso de manejadores, mantener la información de hardware específica de cada proceso,
conteos de referencia para las referencias a apuntadores como los descriptores de segmentos.
y las referencias a manejadores, dar nombres a los objetos
y proveer un mecanismo extensible para administrar El administrador de memoria del ejecutivo implementa
el ciclo de vida para cada objeto. El administrador de la arquitectura de memoria virtual con paginación
objetos administra las estructuras de datos del kernel, bajo demanda. Administra la asignación de las
las cuales necesitan algunas de estas herramientas. Hay páginas virtuales a los marcos de páginas físicas, la
otras estructuras de datos, como los objetos de control, administración de los marcos físicos disponibles y la
que utilizan la capa del kernel o los objetos que son solo administración del archivo de paginación en el disco que
extensiones de los objetos en modo de kernel, que no se utiliza para respaldar las instancias privadas de las
son administradas por ellos. páginas virtuales que ya no se cargan en memoria. El
administrador de memoria también provee herramientas
El administrador de E/S proporciona el marco de trabajo especiales para aplicaciones de servidor extensas,
para implementar los drivers de los dispositivos de como las bases de datos y los componentes en tiempo
E/S y un número de servicios del ejecutivo específicos de ejecución de los lenguajes de programación.
para configurar, utilizar y realizar operaciones en los
dispositivos. En Windows, los drivers de dispositivos no
solo manejan los dispositivos físicos, sino que también
ofrecen una extensibilidad para el sistema operativo.
Muchas funciones que se compilan en el kernel en otros
sistemas se cargan de manera dinámica y se vinculan
mediante el kernel en Windows, incluyendo las pilas de
protocolos y los sistemas de archivos.
Windows y GNU/LINUX | 8

El administrador de la caché optimiza el rendimiento Los drivers de dispositivos


de la E/S para el sistema de archivos, para lo cual
mantiene una caché de páginas del sistema de archivos La parte final de la figura 2 consiste en los drivers de
en el espacio de direcciones virtuales del kernel. El dispositivos. En Windows, estos drivers son bibliotecas de
administrador de la caché utiliza caché con direcciones vínculos dinámicos que se cargan mediante el ejecutivo
virtuales; es decir, organiza las páginas de la caché con de NTOS. Aunque su principal uso es implementar
base en su ubicación en sus archivos. La administración los drivers para el hardware específico, como los
de la caché se implementa mediante el uso de la dispositivos físicos y los buses de E/S, el mecanismo del
asignación en memoria de los archivos: el uso actual de driver de dispositivo también se utiliza como mecanismo
la caché lo hace mediante el administrador de memoria. de extensibilidad general para el modo de kernel. El
administrador de E/S organiza una ruta de flujo de datos
El monitor de referencia de seguridad implementa los para cada instancia de un dispositivo, como se muestra
elaborados mecanismos de seguridad de Windows, en la figura 4. A esta ruta se le conoce como pila de
los cuales aplican los estándares internacionales para dispositivos y consiste en instancias privadas de objetos
seguridad computacional, conocidos como criterios de dispositivo del kernel que se asignan para la ruta.
comunes. Estos estándares especifican una gran Cada objeto de dispositivo en la pila de dispositivos se
cantidad de reglas que debe cumplir un sistema para estar vincula con un objeto driver específico, el cual contiene la
en conformidad, como el inicio de sesión autenticado, tabla de rutinas a utilizar para los paquetes de peticiones
las auditorías, la puesta a cero de la memoria asignada de E/S que fluyen a través de la pila de dispositivos.
y muchas más. Una de las reglas requiere que todas las
comprobaciones de acceso se implementen mediante
un solo módulo dentro del sistema. En Windows, este
módulo es el monitor de referencia de seguridad en el
kernel.

Figura 4. Representación de las pilas de dispositivos para dos volúmenes de archivo [2].
Windows y GNU/LINUX | 9

Los sistemas de archivos se cargan como drivers. Para Es uno de los sistemas operativos dominantes en las
cada instancia de un volumen para un sistema de archivos estaciones de trabajo y servidores de alto rendimiento,
se crea un objeto de dispositivo como parte de la pila de pero también se utiliza en sistemas que varían desde
dispositivos para ese volumen. Este objeto de dispositivo teléfonos celulares, hasta supercomputadoras [3].
se vinculará al objeto de driver para el sistema de archivos
que sea apropiado para el formato de ese volumen. Los La mayoría de los núcleos de Linux son monolíticos.
drivers de filtros especiales, conocidos como drivers de Todos los componentes funcionales del núcleo tienen
filtros del sistema de archivos, pueden insertar objetos acceso a todas las estructuras internas de datos y
de dispositivo antes del objeto de dispositivo del sistema rutinas. Linux está estructurado como una colección
de archivos, para aplicar la funcionalidad a las peticiones de módulos, algunos de los cuales pueden cargarse y
de E/S que se envían a cada volumen, como la inspección descargarse automáticamente bajo demanda [4].
de los datos que se leen o escriben con el fin de asegurar
Un sistema Linux se puede considerar un tipo de
que no tengan virus.
pirámide, como se ilustra en la figura 5. En la parte inferior
está el hardware, que consiste en CPU, memoria, discos,
Estructura de GNU/Linux un monitor, teclado y otros dispositivos. En el hardware
básico se ejecuta el sistema operativo. Su función es
GNU/Linux es un sistema operativo derivado de controlar el hardware y proveer una interfaz de llamadas
UNIX que se distribuye en forma libre. Linux también al sistema para todos los programas. Estas llamadas
se considera una variante popular de UNIX, que se al sistema permiten a los programas de usuario crear y
ejecuta en una amplia variedad de computadoras. administrar procesos, archivos y otros recursos [2].

Figura 5. Los niveles en un sistema Linux, el sistema operativo se encuentra en el modo kernel [2].

Para hacer las llamadas al sistema, los programas Además del sistema operativo y la biblioteca de llamadas
colocan los argumentos en registros y emiten al sistema, todas las versiones de Linux proporcionan
instrucciones trampa para cambiar del modo de usuario una gran cantidad de programas estándar, algunos de
al modo kernel. los cuales se especifican en el estándar POSIX 1003.2
y otros difieren de una versión de Linux a otra. Entre
Los sistemas de ficheros de Linux y Unix se organizan ellos se incluyen el procesador de comandos (shell), los
en una estructura jerárquica de tipo árbol. El nivel más compiladores, editores, programas de procesamiento de
alto del sistema de ficheros es/o directorio raíz. Todos texto y herramientas de manipulación de archivos.
los demás ficheros y directorios están bajo el directorio
raíz [5]. Se puede hablar de tres interfaces distintas para Linux:
la verdadera interfaz de llamadas al sistema, la interfaz
de la biblioteca y la interfaz formada por el conjunto de
programas utilitarios estándar [2].
Windows y GNU/LINUX | 10

Por lo general, la mayoría de las distintas distribuciones Cuando el usuario escribe una línea de comandos, el
de Linux han reemplazado esta interfaz de usuario shell extrae la primera palabra, asume que es el nombre
orientada al teclado con una interfaz gráfica de usuario de un programa a ejecutar, busca este programa y, si lo
orientada al ratón, sin modificar el sistema operativo en encuentra, lo ejecuta. Después, el shell se suspende a sí
sí. Esta flexibilidad es lo que hace al sistema operativo mismo hasta que el programa termina, momento en el
tan popular. cual trata de leer el siguiente comando. Lo importante
aquí es tan solo la observación de que el shell es un
Linux trabaja por medio de una interfaz gráfica, donde programa de usuario ordinario. Todo lo que requiere es
los usuarios pueden ejecutar los clics del ratón para la habilidad de leer del teclado y escribir en el monitor, y
ejecutar aplicaciones o abrir archivos, arrastrar y soltar el poder de ejecutar otros programas.
para copiar archivos de una ubicación a otra, etcétera.
Además, los usuarios pueden invocar un programa Estructura del kernel
emulador de terminales, o xterm, el cual proporciona la
interfaz básica de línea de comandos para el sistema El kernel se posiciona, directamente, en el hardware y
operativo. permite las interacciones con los dispositivos de E/S
y la unidad de administración de la memoria; además,
Aunque los sistemas Linux tienen una interfaz gráfica controla el acceso de la CPU a estos dispositivos.
de usuario, la mayoría de los programadores y usuarios Como se muestra en la figura 6, en el nivel más bajo se
sofisticados aún prefieren una interfaz de línea de contienen manejadores de interrupciones, los cuales
comandos, conocida como shell. A menudo, inician son la forma principal de interactuar con los dispositivos
una o más ventanas de shell desde la interfaz gráfica y el mecanismo de despachamiento de bajo nivel.
de usuario y se ponen a trabajar en ellas. La interfaz de Este despachamiento ocurre cuando se produce una
línea de comandos del shell es más rápida de utilizar, interrupción.
más poderosa, se extiende con facilidad y no hace que el
usuario contraiga una lesión por esfuerzo repetitivo por Aquí, el código de bajo nivel detiene el proceso en
tener que usar un ratón todo el tiempo. ejecución, guarda su estado en las estructuras de
los procesos del kernel e inicia el driver apropiado. El
A continuación, se ve una breve descripción del bash despachamiento de procesos también ocurre cuando
shell. Este shell se basa, en gran parte, en el shell original el kernel completa ciertas operaciones y es tiempo de
de UNIX. También se utilizan muchos otros shells, pero iniciar un proceso de usuario otra vez. El código de
bashes el shell predeterminado en la mayoría de los despachamiento está en ensamblador y es distinto de la
sistemas Linux [2]. planificación de procesos.

Figura 6. Estructura del kernel de Linux [2].


Windows y GNU/LINUX | 11

El componente de E/S en la figura 7 contiene todas La implementación de red de Linux admite sockets BSD
las piezas del kernel responsables de interactuar con y todos los protocolos TCP / IP. La parte de red del kernel
los dispositivos y realizar operaciones de E/S de red y de Linux consta de sockets BSD, capas de protocolo de
almacenamiento. red y controladores de dispositivos de red. El controlador
del dispositivo de red es responsable de comunicarse
En el nivel más alto, todas las operaciones de E/S están con el dispositivo de hardware y cada dispositivo de
integradas bajo un nivel de sistema de archivos virtuales. hardware posible tiene un controlador de dispositivo
Es decir, en el nivel superior es lo mismo realizar una correspondiente [6].
operación de lectura en un archivo (ya sea que se
encuentre en memoria o en el disco) que obtener un El programador de E/S está por encima de los drivers
carácter de la entrada de una terminal. de disco. Este componente es responsable de ordenar y
emitir peticiones para operar el disco, de una forma que
En el nivel más bajo, todas las operaciones de E/S pasan trate de evitar que se desperdicie el movimiento de la
a través de cierto driver de dispositivo. Todos los drivers cabeza del disco, o de cumplir con alguna otra directiva
de Linux se clasifican como drivers de dispositivos del sistema.
de caracteres o drivers de dispositivos de bloques: la
principal diferencia es que en los dispositivos de bloques En la parte superior de la columna de dispositivos de
se permiten los accesos aleatorios y las búsquedas, bloques están los sistemas de archivos. Linux puede
pero no en los dispositivos de caracteres. Técnicamente, tener y, de hecho, tiene varios sistemas de archivos
los dispositivos de red son, en realidad, dispositivos de que coexisten en forma concurrente. Para ocultar las
caracteres, pero se manejan de una manera algo distinta, diferencias arquitectónicas de los diversos dispositivos
por lo que tal vez sea más claro separarlos, como se de hardware de la implementación del sistema de
realizó en la figura. archivos, un nivel de dispositivos de bloques genéricos
ofrece una abstracción que utilizan todos los sistemas
Arriba del nivel del driver de dispositivos, el código de archivos [2].
del kernel es distinto para cada tipo de dispositivo.
Los dispositivos de caracteres se pueden utilizar de A diferencia de los sistemas operativos como DOS, el
dos maneras. Algunos programas, como los editores sistema de archivos individual en el sistema operativo
visuales vi y emacs, requieren cada pulsación de tecla Linux no se identifica por la letra de la unidad o el nombre
a medida que se escribe. La E/S de terminal cruda (tty) de la unidad (como A: o C:, entre otros). Por el contrario, al
hace esto posible. Otros programas, como el shell, son igual que el sistema operativo UNIX, el sistema operativo
orientados a líneas y permiten a los usuarios editar Linux combina sistemas de archivos independientes en
toda la línea completa antes de oprimir INTRO para una estructura de árbol jerárquica y una sola entidad
enviarla al programa. En este caso, el flujo de caracteres representa este sistema de archivos [6].
del dispositivo de terminal se pasa a través de lo que
se conoce como una disciplina de línea y se aplica el Linux monta el nuevo sistema de archivos en un directorio
formato apropiado. determinado mediante una operación denominada
"montaje", de modo que los diferentes sistemas de
A menudo, el software de red es modular y admite archivos se combinan en un todo. Una característica
distintos dispositivos y protocolos. El nivel por encima importante del sistema operativo Linux es que admite
de los drivers de red maneja un tipo de función de muchos tipos diferentes de sistemas de archivos. El
enrutamiento, para asegurar que el paquete correcto sistema de archivos más utilizado en Linux es Ext2, que
llegue al dispositivo o manejador de protocolo correcto. también es un sistema de archivos nativo de Linux. Sin
La mayoría de los sistemas Linux contienen toda la embargo, Linux también puede admitir diferentes tipos
funcionalidad de un enrutador de hardware dentro de sistemas de archivos, como FAT, VFAT, FAT32 y MINIX,
del kernel, aunque el rendimiento es menor que el de para que pueda intercambiar datos fácilmente con otros
un enrutador de hardware. Por encima del código del sistemas operativos, porque Linux admite muchos
enrutador se encuentra la pila de protocolos actual, sistemas de archivos diferentes y los organiza en un
que siempre incluye a IP y TCP, pero también muchos sistema de archivos virtual unificado.
protocolos adicionales. La interfaz de sockets cubre
toda la red y permite que los programas creen sockets
para redes y protocolos específicos, para lo cual obtiene
de vuelta un descriptor de archivos con el fin de que cada
socket lo utilice más tarde [2].
Windows y GNU/LINUX | 12

Sistema de archivos virtual (VirtualFileSystem, VFS): los Por último, en la parte superior está la interfaz de
detalles específicos de varios hardware están ocultos, llamadas al sistema que van al kernel. Todas las llamadas
la operación del sistema de archivos y los detalles al sistema llegan aquí y producen una interrupción
de implementación específicos de los diferentes que cambia la ejecución del modo de usuario al modo
sistemas de archivos están separados, y se proporciona de kernel protegido y pasa el control a uno de los
una interfaz unificada para todos los dispositivos. componentes del kernel antes descritos.
VFS proporciona docenas de sistemas de archivos
diferentes. El sistema de archivos virtual se puede dividir
en un sistema de archivos lógico y un controlador de Resumen
dispositivo. El sistema de archivos lógico se refiere al
sistema de archivos compatible con Linux, como ext2, En Linux existen tres interfaces: el shell, la biblioteca de
fat, entre otros, y el controlador de dispositivo se refiere C y las llamadas al sistema. A menudo, se utiliza una
al módulo de controlador de dispositivo escrito para interfaz gráfica de usuario para simplificar la interacción
cada controlador de hardware. del usuario con el sistema. El shell permite a los usuarios
escribir comandos para ejecutarlos, los mismos pueden
A la derecha, en la figura 7, están los otros dos ser comandos simples, tuberías o estructuras más
componentes clave del kernel de Linux. Estos complejas. Los conceptos clave en Linux incluyen el
son responsables de la memoria y de las tareas proceso, el modelo de memoria, la E/S y el sistema de
de administración de los procesos. Las tareas de archivos. Los procesos pueden bifurcar subprocesos,
administración de la memoria incluyen el mantenimiento con lo cual se produce un árbol de procesos.
de las asignaciones entre la memoria virtual y la
memoria física, el mantenimiento de una caché de La administración de procesos en Linux considera a
páginas de acceso reciente y la implementación de una cada entidad como una tarea distinguible, por lo que un
buena directiva de reemplazo de páginas, y el proceso proceso es representado mediante dos componentes
de traer a la memoria nuevas páginas de código y datos claves: la estructura de tarea y la información adicional
necesarias, según la demanda. que describe el espacio de direcciones del usuario. La
programación se realiza mediante el uso de un algoritmo
La responsabilidad clave del componente de basado en prioridades, que favorece a los procesos
administración de procesos es la creación y terminación interactivos.
de los procesos. También incluye el planificador de
procesos que selecciona cuál proceso o hilo debe El sistema de archivos es jerárquico con archivos y
ejecutar a continuación, el kernel de Linux considera directorios. Todos los discos se montan en un solo
a los procesos e hilos simplemente como entidades árbol de directorios que empieza en una raíz única. Los
ejecutables, y las planifica con base en una directiva de archivos individuales se pueden vincular en un directorio
planificación global. Por último, el código para el manejo desde cualquier parte del sistema de archivos. Los
de señales también pertenece a este componente. directorios y dispositivos también se representan como
archivos, junto con otros archivos especiales.
Aunque los tres componentes se representan por
separado en la figura, son muy interdependientes. El modo de kernel en Windows está estructurado en el
HAL, en los niveles del kernel y del ejecutivo de NTOS,
Por lo general, los sistemas de archivos acceden a los y en un gran número de drivers de dispositivos que
archivos por medio de los dispositivos de bloques. implementan todo, desde los servicios de dispositivos,
Sin embargo, para ocultar las grandes latencias de los hasta los sistemas de archivos, las redes y los gráficos.
accesos al disco, los archivos se copian en la caché de EL HAL oculta ciertas diferencias en el hardware de
páginas en la memoria principal. Algunos archivos se los demás componentes. El nivel del kernel administra
pueden, incluso, crear en forma dinámica y pueden tener las CPU para posibilitar la operación multihilo y la
solo una representación dentro de la memoria, como sincronización, y el ejecutivo implementa la mayoría de
los archivos que proporcionan cierta información sobre los servicios en modo de kernel. El ejecutivo se basa
el uso de recursos en tiempo de ejecución. Además, en los objetos en modo de kernel que representan las
el sistema de memoria virtual puede depender de una estructuras de datos clave del ejecutivo, incluyendo
partición de disco o de un área de intercambio dentro los procesos, hilos, secciones de memoria, drivers,
de un archivo, para respaldar las partes de la memoria dispositivos y objetos de sincronización
principal cuando necesite liberar ciertas páginas y, por lo
tanto, depende del componente de E/S. Existen muchas
otras interdependencias.

Además de los componentes estáticos dentro del kernel,


Linux acepta módulos que se cargan en forma dinámica.
Estos módulos se pueden utilizar para agregar o
reemplazar los drivers de dispositivos predeterminados,
el sistema de archivos, los componentes de red u otros
códigos del kernel.
Windows y GNU/LINUX | 13

Los objetos más importantes en Windows son


los procesos, los hilos y las secciones. Windows
Bibliografía
proporciona memoria virtual con paginación bajo [1] Konw How, “¿Qué es un sistema operativo?”, 2020.
demanda. El algoritmo de paginación se basa en el Digital Guide IONOS. [En línea]. Disponible: https://
concepto de conjunto de trabajo. El administrador de www.ionos.es/digitalguide/servidores/know-how/
la caché maneja las direcciones virtuales en el kernel el-sistema-operativo/ [Último acceso: 21 de marzo,
que se pueden utilizar para asignar archivos en la 2022].
memoria, con lo cual se mejora, en forma dramática,
[2] A. S. Tanenbaum, “Sistemas operativos modernos”,
el rendimiento de las operaciones de E/S para muchas
3ra Edición ed., 2009.
aplicaciones, debido a que las operaciones de lectura se
pueden satisfacer sin necesidad de acceder al disco. Las [3] M. Patzi Velarde, “Modelo de optimización para
operaciones de E/S se realizan mediante los drivers de mejorar el rendimiento de memoria virtual en
dispositivos, los cuales siguen el modelo de drivers de servidores GNU/LINUX”, 2016.
Windows. La E/S es asíncrona en forma inherente y los [4] W. Stalling, “Sistemas operativos. Aspectos internos
drivers, por lo común, ponen en cola las peticiones para y principos de diseño”, 3ra Edición ed., Pearson
seguir trabajando y regresar al proceso que los llamó. Educación, 2005.
Los volúmenes del sistema de archivos se implementan [5] “Directorios y sistemas de archivos”. Fundamentos
como dispositivos en el sistema de E/S. de Linux. [En línea]. Disponible: https://help.ubuntu.
com/kubuntu/desktopguide/es/directories-file-
systems.html [Último acceso: 22 de marzo, 2022].
[6] “Composición y estructura del sistema Linux”. [En
línea]. Disponible: https://programmerclick.com/
article/74491891799/ [Último acceso: 22 de marzo,
2022].

También podría gustarte