You are on page 1of 16

INSTITUTO TECNOLÓGICO SUPERIOR DE HUETAMO

Estructura de un Sistema
Operativo, Niveles de
Diseño
REPORTE DE INVESTIGACIÓN
Arana Cabrera Maricela
Galarza Cabrera Karen Beatriz
García Brito Keiri
Hernández Nájera Laura Marysthel
Ruiz Soto Abraham
Solís Macedo Paula
09/09/2010

Breve explicación del diseño por capas de un sistema operativo tradicional, los enfoques
de diseño monolítico y micronúcleo. Análisis de la estructura de los sistemas operativos
Linux, UNIX y Windows.
A
L
Arquitectura de un Sistema Operativo UNIX
Los programas de Usuario. ........................ 15
Clásico ..................................................... 14
Arquitectura de Windows .............................. 7 M

D Modo Núcleo (Kernel Mode) ....................... 12


Modo Usuario................................................ 9
Diferencias................................................... 16
Diseño en Capas ........................................... 4 N

E Niveles de planificación ................................ 5

El Hardware ................................................. 14 P
El Núcleo ..................................................... 14 Planificación del procesador ......................... 5
El Shell ........................................................ 15
El sistema de archivos ................................ 15 S
El Subsistema OS/2. ................................... 12 Servicios ....................................................... 5
El Subsistema POSIX. ................................ 11 Similitudes ................................................... 16
El Subsistema Win32 .................................. 10 Similitudes y Diferencias entre las
Estructura de un Sistema Operativo ............. 4 arquitecturas de UNIX, Windows y Linux 15
G Sistema Operativo de Micronúcleo ............... 6
Subsistemas de Ambiente Protegido............ 9
Gestión de Archivos y directorios. ................. 6
Gestión de dispositivos de E/S ...................... 6 V
Gestión de memoria ...................................... 5 Visión General de la Arquitectura de
Gestión de procesos ..................................... 5 Windows. .................................................. 7
I
Introducción ................................................... 3
1. Introducción

Un Sistema Operativo (SO) es el software encargado de ejercer el control y coordinar el


uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es
un administrador de los recursos de hardware del sistema.

En una definición informal es un sistema que consiste en ofrecer una distribución


ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los
diversos programas que compiten por ellos.

Los primeros SO’s eran sumamente sencillos, limitados a hacer funcionar el ordenador en
el que estaban montados, a medida que fueron creciendo las necesidades de los usuarios
y se perfeccionaron los sistemas, se hizo necesaria una mayor organización del software,
del sistema operativo, donde una parte del sistema contenía subpartes y esto organizado
en forma de niveles.

Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas
estuviera perfectamente definida y con un claro interface con el resto de elementos.

Se constituyó una estructura jerárquica o de niveles en los sistemas operativos, el primero


de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que
se utilizó con fines didácticos. Se puede pensar también en estos sistemas como si fueran
`multicapa'.

En esta estructura se basan prácticamente la mayoría de los sistemas operativos actuales


y por eso es punto central de este documento.
2. Estructura de un Sistema Operativo
2.1. Diseño en Capas

Edsger Dijkstra fue uno de los científicos y filósofos de la informática de los años 70,
desarrollando sobre todo algoritmos que proponían una solución a problemas que aun no
tenían una respuesta, o bien, dando una solución más optima que las ya existentes. Fue
profesor en la Technische Hogeschool, Eindhoven, en Holanda (Países Bajos) donde
ideó, con fines puramente didácticos, separar el diseño de un sistema operativo en capas
que hiciese mucho más sencilla el desarrollo de cada una de las partes de este dando
como resultado un sistema mucho más estable ya que el ó los programadores pueden
concentrarse en solo una función en particular a la vez, reduciendo en gran medida los
errores de diseño.

En este diseño cada capa ó nivel representa una función del SO, las capas que propuso
Dijkstra son las siguientes:

Capa Nombre
5 Programas de Usuario
4 Gestión de Información (Sistema de Archivos)
3 Gestión de Dispositivos (E/S)
2 Gestión de Procesos
1 Gestión de Memoria
0 Gestión de CPU
1 Hardware

Este esquema también puede verse como un sistema de anillos:

En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa
(trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las
zonas más internas del sistema operativo o núcleo del sistema estarán más protegidas de
accesos indeseados desde las capas más externas. Las capas más internas serán, por
tanto, más privilegiadas que las externas.
2.2. Gestión de memoria

El gestor de memoria es uno de los componentes principales del sistema operativo. Su


actividad se centra fundamentalmente en la categoría de gestión de recursos, puesto que
tiene por objetivo casi exclusivo la gestión del recurso memoria, en este sentido se
encarga de:

 Asignar memoria a los procesos para crear su imagen de memoria.


 Proporcionar memoria a los procesos cuando la soliciten y liberarla cuando así lo
requieran.
 Tratar los posibles errores de acceso a memoria, evitando que unos procesos
interfieran en la memoria de otros.
 Permitir que los procesos puedan compartir memoria entre ellos. De esta forma los
procesos podrán comunicarse entre ellos.
 Gestionar la jerarquía de memoria y tratar los fallos de página en los sistemas con
memoria virtual.

2.2.1. Servicios

El gestor de memoria ofrece una serie de servicios a los procesos. Estos son:

 Solicitar memoria
 Liberar memoria
 Compartir memoria.

2.3. Gestión de procesos

Uno de los módulos más importantes de un sistema operativo es la de administrar los


procesos y tareas del sistema de cómputo. En esta sección se revisarán dos temas que
componen o conciernen a este módulo: la planificación del procesador y los problemas de
concurrencia.

2.3.1. Planificación del procesador

La planificación del procesador se refiere a la manera o técnicas que se usan para decidir
cuánto tiempo de ejecución y cuando se le asignan a cada proceso del sistema.
Obviamente, si el sistema es monousuario y monotarea no hay mucho que decidir, pero
en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema.

2.3.2. Niveles de planificación

En los sistemas de planificación generalmente se identifican tres niveles: el alto, el medio


y el bajo. El nivel alto decide que trabajos (conjunto de procesos) son candidatos a
convertirse en procesos compitiendo por los recursos del sistema; el nivel intermedio
decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento
mientras que el planificador de bajo nivel es el que decide que proceso, de los que ya
están listos (y que en algún momento paso por los otros dos planificadores) es al que le
toca ahora estar ejecutándose en la unidad central de procesamiento. En este trabajo se
revisaran principalmente los planificadores de bajo nivel porque son los que finalmente
eligen al proceso en ejecución.

2.4. Gestión de dispositivos de E/S

Una de las principales funciones de un sistema operativo es la gestión de los recursos de


la computadora y, en concreto, de los dispositivos periféricos. El gestor de E/S debe
controlar el funcionamiento de todos los dispositivos de E/S para alcanzar los siguientes
objetivos:

 Facilitar el manejo de los dispositivos periféricos. Para ello ofrecer una interfaz
sencilla, uniforme y fácil de utilizar entre los dispositivos, y gestionar los errores que
se pueden producir en el acceso a los mismos.
 Ofrecer mecanismos de protección que impidan a los usuarios acceder sin control a
los dispositivos periféricos.

El código destinado a manejar la entrada y salida de los diferentes periféricos en un


sistema operativo es de una extensión considerable y sumamente complejo. Resuelve las
necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los
programadores.

2.5. Gestión de Archivos y directorios.

El servidor de archivos es la parte del sistema operativo que cubre una de las cuatro
clases de funciones que tiene este en su faceta de máquina extendida. Los Objetivos
fundamentales del servidor de archivos son los dos siguientes:

 Facilitar el manejo de los dispositivos periféricos. Para ello ofrece una visión lógica
simplificada de los mismos en forma de archivos.
 Proteger a los usuarios, poniendo limitaciones a los archivos que es capaz de
manipular cada usuario.

Los servicios que se engloban en el servidor de archivos son de dos tipos:

 Los servicios dirigidos al manejo de datos, o archivos.


 Los dirigidos al manejo de los nombres o directorios.

Un sistema de archivos ( file system ) es una estructura de directorios con algún tipo de
organización el cual nos permite almacenar, crear y borrar archivos en diferentes
formatos.

3. Sistema Operativo de Micronúcleo

El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede


ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito general y
cumple con las mismas actividades que los sistemas operativos convencionales.

El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores.
Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de
aplicación normal es un cliente que llama al servidor correspondiente para acceder a un
archivo o realizar una operación de entrada/salida sobre un dispositivo concreto. A su vez,
un proceso cliente puede actuar como servidor para otro." [Alcal92]. Este paradigma
ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el
núcleo provee solamente funciones muy básicas de memoria, entrada/salida, archivos y
procesos, dejando a los servidores proveer la mayoría que el usuario final o programador
puede usar. Estos servidores deben tener mecanismos de seguridad y protección que, a
su vez, serán filtrados por el núcleo que controla el hardware. Actualmente se está
trabajando en una versión de UNIX que contempla en su diseño este paradigma.

4. Arquitectura de Windows
4.1. Visión General de la Arquitectura de Windows.
Un Sistema Operativo serio, capaz de competir en el mercado con otros como Unix que
ya tienen una posición privilegiada, en cuanto a resultados, debe tener una serie de
características que le permitan ganarse ese lugar. Algunas de estas son:

 Que corra sobre múltiples arquitecturas de hardware y plataformas.


 Que sea compatible con aplicaciones hechas en plataformas anteriores, es
decir que corrieran la mayoría de las aplicaciones existentes hechas sobre
versiones anteriores a la actual, nos referimos en este caso particular a las de
16-bit de MS-DOS y Microsoft Windows 3.1.
 Reúna los requisitos gubernamentales para POSIX (Portable Operating System
Interface for Unix).
 Reúna los requisitos de la industria y del gobierno para la seguridad del
Sistema Operativo.
 Sea fácilmente adaptable al mercado global soportando código Unicode.
 Sea un sistema que corra y balancee los procesos de forma paralela en varios
procesadores a la vez.
 Sea un Sistema Operativo de memoria virtual.

Uno de los pasos más importantes que revolucionó los Sistemas Operativos de la
Microsoft fue el diseño y creación de un Sistema Operativo extensible, portable, fiable,
adaptable, robusto, seguro y compatible con sus versiones anteriores (Windows NT).

Y para ello crearon la siguiente arquitectura modular:


La cual está compuesta por una serie de componentes separados donde cada cual es
responsable de sus funciones y brindan servicios a otros componentes. Esta arquitectura
es del tipo cliente – servidor ya que los programas de aplicación son contemplados por el
sistema operativo como si fueran clientes a los que hay que servir, y para lo cual viene
equipado con distintas entidades servidoras.

Ya creado este diseño las demás versiones que le sucedieron a Windows NT fueron
tomando esta arquitectura como base y le fueron adicionando nuevos componentes.

Uno de las características que Windows comparte con el resto de los Sistemas Operativos
avanzados es la división de tareas del Sistema Operativo en múltiples categorías, las
cuales están asociadas a los modos actuales soportados por los microprocesadores.
Estos modos proporcionan a los programas que corren dentro de ellos diferentes niveles
de privilegios para acceder al hardware o a otros programas que están corriendo en el
sistema. Windows usa un modo privilegiado (Kernel) y un modo no privilegiado (Usuario).

Uno de los objetivos fundamentales del diseño fue el tener un núcleo tan pequeño como
fuera posible, en el que estuvieran integrados módulos que dieran respuesta a aquellas
llamadas al sistema que necesariamente se tuvieran que ejecutar en modo privilegiado
(modo kernel). El resto de las llamadas se expulsarían del núcleo hacia otras entidades
que se ejecutarían en modo no privilegiado (modo usuario), y de esta manera el núcleo
resultaría una base compacta, robusta y estable.

El Modo Usuario es un modo menos privilegiado de funcionamiento, sin el acceso directo


al hardware. El código que corre en este modo sólo actúa en su propio espacio de
dirección. Este usa las APIs (System Application Program Interfaces) para pedir los
servicios del sistema.

El Modo Kernel es un modo muy privilegiado de funcionamiento, donde el código tiene el


acceso directo a todo el hardware y toda la memoria, incluso a los espacios de dirección
de todos los procesos del modo usuario. La parte de WINDOWS que corre en el modo
Kernel se llama Ejecutor de Windows, que no es más que un conjunto de servicios
disponibles a todos los componentes del Sistema Operativo, donde cada grupo de
servicios es manipulado por componentes que son totalmente independientes (entre ellos
el Núcleo) entre sí y se comunican a través de interfaces bien definidas.

Todos los programas que no corren en Modo Kernel corren en Modo Usuario. La mayoría
del código del Sistema Operativo corre en Modo Usuario, así como los subsistemas de
ambiente (Win32 y POSIX que serán explicados en capítulos posteriores) y aplicaciones
de usuario. Estos programas solamente acceden a su propio espacio de direcciones e
interactúan con el resto del sistema a través de mensajes Cliente/Servidor.

4.2. Modo Usuario


4.2.1. Subsistemas de Ambiente Protegido

Dos de los objetivos de WINDOWS son personalidad y compatibilidad. Esto ha sido


logrado a través de los subsistemas de ambiente protegido.
La personalidad esencialmente significa que WINDOWS expone múltiples conjuntos de
interfaces de programas de aplicación (APIs) y puede actuar eficazmente como si fuera
un sistema operativo diferente. WINDOWS viene con una personalidad POSIX y OS/2
además de sus personalidades Win32, Win16 y DOS.

En WINDOWS, hay tres subsistemas de ambiente protegido:

 El subsistema de Win32
 El subsistema de POSIX
 El subsistema de OS/2

Aunque algunas veces se muestran las personalidades Win16 y DOS incluidas en una
lista de subsistemas de ambiente protegido, ellas realmente son parte del subsistema
Win32.

Los subsistemas de ambiente protegido actúan como los mediadores entre las
aplicaciones del Modo Usuario y el Ejecutor de Windows.

Recuerde que el Ejecutor de Windows y todos sus componentes viven en el Modo


Privilegiado o Modo Kernel, mientras que todos los demás viven en el Modo Usuario, esto
incluye todos los subsistemas de ambiente. Cuando una aplicación hace una llamada a un
subsistema de ambiente, este es pasado a través de una capa de servicios del Ejecutor
de Windows.

Cada subsistema de ambiente guarda huella de sus propios procesos y trabaja


independientemente de los otros subsistemas. Cada aplicación sólo puede correr en el
subsistema para el cual fue diseñado. Cuando usted inicia una aplicación en WINDOWS,
mira el encabezamiento representado por el archivo y determina en cuál subsistema
ejecutar la aplicación.

4.2.1.1. El Subsistema Win32

Win32 es el subsistema nativo y primario de WINDOWS. Las bases para este subsistema
es el conjunto de APIs de Win32. Muchos de estas API son extensiones directas de sus
homólogas Win16.

Este subsistema actúa como un servidor para todos los otros subsistemas de ambiente
soportados en WINDOWS, los que actúan como clientes y traducen sus llamadas API
hacia las API apropiadas de Win32.

El subsistema Win32 es responsable de toda la entrada y salida. Este posee el control de


la pantalla, el teclado, y el ratón. Cuando otros subsistemas, como OS/2 o POSIX,
necesitan beneficiarse de estos dispositivos, ellos piden los servicios al subsistema de
Win32.

Algunos de los objetivos que se trazaron para mantener la compatibilidad con las
aplicaciones hechas en versiones anteriores fueron:
 Permitir que los programas hechos sobre DOS pudieran correr sin modificación.
 Suministrar la capacidad para ejecutar la mayoría de las aplicaciones Windows de
16 bits sin modificación
 Proteger al sistema y otras aplicaciones de 32 bits de la interferencia de las
aplicaciones de 16 bits y DOS.
 Permitir a las plataformas RISC (Reduced Instruction set Computer,
microprocesador cuyo número de instrucciones es reducido para lograr una
frecuencia más alta de trabajo) ejecutar aplicaciones Windows de 16 bits y DOS.
 Suministrar un mecanismo para compartir datos entre aplicaciones Windows de 32
y 16 bits.

Muchas personas piensan en Windows 3.x como un Sistema Operativo. Técnicamente, no


es un verdadero Sistema Operativo, sino una interfaz de usuario que es miembro del
DOS, el verdadero Sistema Operativo.

Así que, el primer paso en proporcionar compatibilidad fue crear un ambiente de DOS. El
ambiente de DOS en WINDOWS se llama la máquina virtual de DOS (Machine DOS
Virtual o VDM). El VDM es una aplicación de modo usuario de 32 bits el cual solicita los
servicios del subsistema de Win32 y en ocasiones directamente a la capa de servicios del
sistema. Es basado en DOS 5.0.

WINDOWS permite ejecutar tantas aplicaciones de DOS como uno desee, donde cada
aplicación corre en su propio VDM. Puesto que los VDMs son nada más que procesos
normales bajo WINDOWS, ellos también son multitarea preventiva al igual que otros
procesos en el sistema. Por consiguiente, puede decirse que WINDOWS permite la
multitarea preventiva de programas de DOS.

Uno de los rasgos adicionales del VDM es que le da 620 KB de memoria "convencional"
libre al usuario. Lo milagroso sobre esto es que también da a las aplicaciones de DOS
soporte de ratón, red, y CD-ROM.

El Subsistema Win32 es el más importante, ya que atiende no sólo a las aplicaciones


nativas de Windows, sino que para aquellos programas no Win32, reconoce su tipo y los
lanza hacia el subsistema correspondiente. En el caso de que la aplicación sea MS-DOS
o Windows de 16 bits (Windows 3.11 e inferiores), lo que hace es crear un nuevo
subsistema protegido. Así, la aplicación DOS o Win16 se ejecutaría en el contexto de un
proceso llamado VDM (Virtual DOS Machine, máquina virtual DOS), que no es más que
un simulador de un ordenador funcionando bajo MS-DOS. El subsistema soporta una
buena parte del API Win32. Así, se encarga de todo lo relacionado con la interfaz gráfica
con el usuario (GUI), controlando las entradas del usuario y salidas de la aplicación.

4.2.1.2. El Subsistema POSIX.

Microsoft prestó mucha atención a los diferentes estándares de sistemas abiertos cuando
Windows NT estaba en vía de desarrollo. Ellos reconocieron el valor de soportar sistemas
abiertos como un método para ganar aceptación de su nuevo sistema operativo avanzado
dentro del mercado.
Uno de los estándares más frecuentemente citados soportados por Windows es el POSIX
(Interfaz de Sistema operativo Portable Basado en Unix), el cual representa la interfaz del
Sistema Operativo portable y fue desarrollado por el IEEE (Instituto de Ingenieros en
Electricidad y Electrónica) como un método de proporcionar portabilidad a las aplicaciones
hechas sobre plataformas UNIX. No obstante, POSIX se ha integrado en muchos
sistemas no UNIX.

Existen muchos niveles de obediencia con POSIX. Estos niveles representan un conjunto
de evoluciones de propuestas, aunque no todas han sido aprobadas como estándares.

El subsistema de POSIX requiere un mínimo de servicios que son proporcionados por


WINDOWS. Cuando una aplicación de POSIX corre en WINDOWS, el subsistema es
cargado y traduce las llamadas API del lenguaje C, requeridas para soportarlo en
llamadas a APIs de Win32 las que son servidas por el subsistema Win32.

Debido a la naturaleza limitada, el subsistema de POSIX en WINDOWS no suministra


soporte para gestión de redes o sistema de seguridad.

El Subsistema POSIX interacciona con el Ejecutor de Windows. Se encarga de definir


aspectos específicos del Sistema Operativo UNIX, como pueden ser las relaciones
jerárquicas entre procesos padres e hijos (las cuales no existen en el subsistema Win32,
por ejemplo, y que por consiguiente no aparecen implementadas directamente en el
Ejecutor de Windows).

4.2.1.3. El Subsistema OS/2.

El subsistema de OS/2 está implementado como un subsistema de ambiente protegido,


parecido al subsistema POSIX. Este traduce las llamadas API de OS/2 en llamadas a
APIs de Win32 que son servidas por el subsistema de Win32.

El subsistema y sus aplicaciones corren en su propio espacio de memoria protegido de 32


bits y constituyen multitarea preventiva unas respecto a otras y respecto a otras
aplicaciones que corren en el sistema.

Además de un conjunto de motores APIs de OS/2, el subsistema implementa muchos


APIs gestores de LAN (Red de Área Local), incluyendo tuberías, NETBIOS y mailslots. De
esta manera difiere del subsistema POSIX ya que este no posee soporte para gestión de
redes.

El Subsistema OS/2 igual que el subsistema POSIX proporciona un entorno para


aplicaciones UNIX, este subsistema da soporte a las aplicaciones OS/2. Proporciona la
interfaz gráfica y las llamadas al sistema; las llamadas son servidas con ayuda del
Ejecutor de Windows.

4.3. Modo Núcleo (Kernel Mode)


1. Capa de Abstracción de Hardware (HAL):
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.

2. Micronúcleo:
La principal tarea de este componente es la planificación de ejecución de hilos
(segmento de código perteneciente a un proceso particular). Es el responsable de
todas las funciones que se realizan en el sistema.

3. El Administrador de Objetos:
Es usado para crear, modificar y eliminar objetos usados por todos los sistemas
que conforman el Ejecutor de Windows. Se aseguran de que los objetos no
consuman muchos recursos (por lo regular en la memoria).

4. El Administrador de Procesos:
Es el responsable de crear, quitar y modificar los estados de todos los procesos.
Así como también de proporcionar información de los estados de todos los
procesos.

5. Servicios de Llamadas a Procedimientos Locales:


Se integran al diseño cliente/servidor de Windows. Este es la interfaz entre el
cliente y servidor que corren localmente en el sistema

6. El Administrador de Memoria Virtual:


Es un esquema que permite usar los recursos del disco en lugar de la memoria
física del sistema.

7. El Ejecutor de Windows:
Provee los fundamentos del sistema operativo que serán suministradas a todas las
aplicaciones que corren sobre el sistema.

8. El Administrador de Entrada-Salida:
El Administrador de Entrada-Salida (I/O Manager) es responsable de gestionar la
comunicación entre los distintos drivers de dispositivo
5. Arquitectura de un Sistema Operativo UNIX Clásico

Unix es un sistema operativo multiusuario y multitarea diseñado para correr en distintos


tipos de máquinas. Su estructura está conformada por un conjunto de capas, las que son,
desde la capa interior a la exterior, las siguientes:

 El Hardware,
 El Núcleo o Kernel,
 El Intérprete de comandos o Shell,
 El Sistema de Archivos
 Los Programas de Usuario.

5.1. El Hardware

El Hardware es toda la parte física del sistema, ya sea el terminal o consola, el


procesador, los dispositivos periféricos, etc. Unix se puede ejecutar, en teoría, en casi
cualquier máquina, con cualquier configuración de hardware, desde un simple PC de
sobremesa hasta una supercomputadora, pasando por microcomputadores,
minicomputadores, mainframes, etc.

5.2. El Núcleo

El núcleo es el componente de Unix que interactúa directamente con el hardware.


Contiene un conjunto de rutinas que hacen posible la ejecución de los programas y la
comunicación entre ellos y el Hardware. En otras palabras, el núcleo es el que gestiona la
entrada y salida del sistema, adaptándolas al hardware del sistema.

5.3. El Shell

El Shell, o intérprete de comandos es la parte del Unix a través de la cual se controlan los
recursos del sistema. Es un programa interpretador de comandos que lee los comandos
que se le introducen y dispone lo necesario para que éstos se ejecuten.

También el Shell se puede utilizar como lenguaje de programación para crear programas
llamados guiones o scripts. Unix SVR4 provee de cuatro programas shell: El shell Bourne
o shell del sistema (sh), el shell job o shell de trabajos (jsh), el shell C (csh), y el shell Korn
(ksh). Sistemas Unix más modernos proveen de versiones más avanzadas del shell, como
el shell Tenex C (tcsh), que agrega a csh características provenientes de TENEX/TOPS-
20 como completación de comandos, y el shell Bourne Again (bash) de GNU, que agrega
al shell estándar características adicionales provenientes de csh y ksh.

5.4. El sistema de archivos

Es un sistema de almacenamiento de datos que mantiene organizada la información en


forma de archivos. Un archivo es la unidad básica para almacenar información en Unix.
Técnicamente es una secuencia de bytes almacenados en un dispositivo de memoria, y
se puede comparar con un documento en papel. También se le puede llamar fichero. Los
archivos están agrupados en directorios formando una estructura jerárquica, como la
estructura de ramas y hojas en un árbol. Otras características del sistema de archivos
Unix son:

 Tratamiento consistente de los archivos de datos.


 Capacidad para crear y eliminar archivos.
 Crecimiento dinámico de los archivos.
 Mecanismo de protección de los archivos
 Tratamiento de los dispositivos periféricos (tales como: impresora, mouse, puertos
de comunicación...) como archivos.

5.5. Los programas de Usuario.

El Unix proporciona diferentes herramientas y utilidades que sirven para realizar una gran
variedad de trabajos. Algunas son órdenes simples cuyo propósito es realizar tareas
específicas, y otros son como pequeños lenguajes de programación. Estas herramientas
pueden funcionar por separado o unidas entre sí. Existen diversos programas de
aplicación que usan estos comandos para llevar a cabo diferentes tareas, ya sea tareas
generales o específicas de cada caso.

6. Similitudes y Diferencias entre las arquitecturas de UNIX, Windows y Linux


6.1. Similitudes

 Todos los sistemas son monolíticos porque son pesados en cuanto al núcleo que
lo realiza.

 Los sistemas Unix y Linux y Windows tienen la misma estructura

 Son sistemas operativos que admite múltiples usuarios, así como también
múltiples tareas, lo que significa que permite que en un único equipo o
multiprocesador se ejecuten simultáneamente varios programas a cargo de uno o
varios usuarios.

 Se pueden instalar en cualquier arquitectura.

6.2. Diferencias

 Linux: Todos los entornos los maneja a alto nivel exigiendo a cada uno de los
procesos el máximo. Ya que es robusto en el manejo de ficheros y de información.

 Unix: Es un sistema de código puro el cual necesita para que exista una
comunicación la programación de cada una de sus interfaces para hacer la
petición con el kernel además de contar con las bibliotecas que permitan
establecer la comunicación entre el núcleo del sistema y el usuario final. El usuario
es el que hace la administración y control del hardware.

 Windows: Los procesos del sistema, servicios, aplicaciones y subsistemas se


comunican por medio de la API y los archivos con extensión NTDLL para poder
establecer comunicación con el kernel y el hardware necesita de la librería HAL
para dar de alta todos sus dispositivos.

You might also like