Características Generales:
Posee las siguientes características:
- Es un sistrema operativo multiusuario, con
capacidad de simular multiprocesamiento y procesamiento no interactivo.
- Está escrito en un
lenguaje
de alto nivel : C.
- Dispone de un lenguaje de
control
programable llamado SHELL.
- Ofrece facilidades para la creación de
programas y
sistemas
y el
ambiente
adecuado para las tareas de diseños de
software.
- Tiene capacidad de interconexión de
procesos.
- Tiene facilidad para redireccionamiento de
Entradas/Salidas.
- Garantiza un alto grado de portabilidad.
El sistema se basa en un Núcleo llamado Kernel,
que reside permanentemente en
la
memoria, y que atiende a todas las llamadas del sistema, administra
el acceso a los archivos y el inicio o la suspención de las tareas de los
usuarios.
La comunación con el sistema
UNIX
se da mediante un
programa
de control llamado SHELL. Este es un lenguaje de control, un intérprete, y un
lenguaje de
programación,
cuyas características lo hacen sumamente flexible para las tareas de un
centro
de cómputo. Como lenguaje de programación abarca los siguientes
aspectos:
- Ofrece las
estructuras
de control normales: secuenciación, iteración condicional,
selección
y otras.
- Paso de parámetros.
- Sustitución textual de
variables
y Cadenas.
- Comunicación bidireccional entre órdenes de
shell.
El shell permite modificar en forma
dinámica
las características con que se ejecutan los programas en UNIX:
Las entradas y salidas pueden ser redireccionadas
o redirigidas hacia archivos, procesos y dispositivos;
Es posible interconectar procesos entre sí.
Diferentes usuarios pueden "ver"
versiones distintas del sistema operativo debido a la capacidad del shell para
configurar diversos ambientes de ejecución. Por ejemplo, se puede hacer que un
usuario entre directamente a su sección, ejecute un programa en particular y
salga automáticamente del sistema al terminar de usarlo.
El núcleo del Sistema Operativo
El núcleo del sistema operativo Unix (llamado
Kernel) es un programa escrito casi en su totalidad en
lenguaje
C, con excepción de una parte del manejo de interrupciones,
expresada en
el
lenguaje ensamblador
del
procesador
en el que opera.
Las
funciones
del núcleo son permitir la existencia de un ambiente en el que sea posible
atender a varios usuarios y múltiples tareas en forma concurrente, repartiendo
al procesador entre todos ellos, e intentando mantener en grado óptimo la
atención
individual.
El Kernel opera como asignador de recursos para
cualquier
proceso
que necesite hacer uso de las facilidades de cómputo. Es el componente central
de Unix y tiene las siguientes funciones:
- Creación de procesos, asignación de tiempos de
atención y sincronización.
- Asignación de la atención del procesador a los
procesos que lo requieren.
-
Administración
de espacio en el sistema de archivos, que incluye: acceso, protección y
administración
de usuarios; comunicación entre usuarios v entre procesos, y manipulación de
E/S y administración de periféricos.
El Kernel reside siempre en la memoria central y
tiene el control sobre la computadora, por lo que ningún otro proceso puede
interrumpirlo; sólo pueden llamarlo para que proporcione algún
servicio
de los ya mencionados. Un proceso llama al Kernel mediante módulos especiales
conocidos como llamadas al sistema.
El Kernel consta de dos artes principales: la
sección de control de procesos y la de control de dispositivos. La primera
asigna recursos, programas, procesos y atiende sus requerimientos de servicio;
la segunda, supervisa la transferencia de datos entre la memoria principal y
los dispositivos periféricos. En términos generales, cada vez que algún usuario
oprime una tecla de una terminal, o que se debe leer o escribir
información
del disco magnético, se interrumpe al procesador central y el núcleo se encarga
de efectuar la operación de transferencia.
El sistema Unix ofrece varios
niveles de protección para el sistema de archivos, que consisten en asignar a
cada archivo el número único de identificación de su dueño, junto con nueve
bits de protección, que especifican permisos de
lectura,
escritura
y ejecución para el propietario, para otros miembros de su
grupo
(definido por el
administrador
del sistema) y para el resto de los usuarios. Antes de cualquier acceso se
verifica su validez consultando estos bits, que residen en el nodo-i de todo
archivo. Además, existen otros tres bits que se emplean para manejos
especiales, relacionados con la clave del superusuario.